Author: ngn
Date: Tue Aug 24 19:54:39 2010
New Revision: 988692
URL: http://svn.apache.org/viewvc?rev=988692&view=rev
Log:
With ad-hoc room creation, the creator should become moderator (VYSPER-244)
Modified:
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/EnterRoomTestCase.java
Modified:
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java?rev=988692&r1=988691&r2=988692&view=diff
==============================================================================
---
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java
(original)
+++
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java
Tue Aug 24 19:54:39 2010
@@ -33,7 +33,6 @@ import org.apache.vysper.xmpp.delivery.f
import org.apache.vysper.xmpp.delivery.failure.IgnoreFailureStrategy;
import org.apache.vysper.xmpp.modules.core.base.handler.DefaultPresenceHandler;
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.MUCStanzaBuilder;
-import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Affiliation;
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Conference;
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Occupant;
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Role;
@@ -129,8 +128,13 @@ public class MUCPresenceHandler extends
private Stanza available(PresenceStanza stanza, Entity roomJid, Entity
newOccupantJid, String nick,
ServerRuntimeContext serverRuntimeContext) {
+ boolean newRoom = false;
// TODO what to use for the room name?
- Room room = conference.findOrCreateRoom(roomJid, roomJid.getNode());
+ Room room = conference.findRoom(roomJid);
+ if(room == null) {
+ room = conference.createRoom(roomJid, roomJid.getNode());
+ newRoom = true;
+ }
if (room.isInRoom(newOccupantJid)) {
// user is already in room, change nick
@@ -193,6 +197,10 @@ public class MUCPresenceHandler extends
} catch(RuntimeException e) {
return createPresenceErrorStanza(roomJid, newOccupantJid,
stanza.getID(), "auth", e.getMessage());
}
+
+ if(newRoom) {
+ newOccupant.setRole(Role.Moderator);
+ }
// relay presence of all existing room occupants to the now joined
occupant
for (Occupant occupant : room.getOccupants()) {
Modified:
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/EnterRoomTestCase.java
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/EnterRoomTestCase.java?rev=988692&r1=988691&r2=988692&view=diff
==============================================================================
---
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/EnterRoomTestCase.java
(original)
+++
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/EnterRoomTestCase.java
Tue Aug 24 19:54:39 2010
@@ -176,6 +176,7 @@ public class EnterRoomTestCase extends A
assertEquals(OCCUPANT1_JID, occupant.getJid());
assertEquals("nick", occupant.getNick());
+ assertEquals(Role.Moderator, occupant.getRole());
}
public void testEnterWithoutNick() throws Exception {