Updates chatroom members permissions retrieval.

cusax-fix
Damian Minkov 12 years ago
parent 415f7691cc
commit 5758aab617

@ -666,20 +666,34 @@ private String getOurDisplayName()
* <tt>Occupant.getRole()</tt>.
* @return ChatRoomMemberRole
*/
static ChatRoomMemberRole smackRoleToScRole(String smackRole)
static ChatRoomMemberRole smackRoleToScRole(String smackRole,
String affiliation)
{
if (smackRole.equalsIgnoreCase("moderator"))
if(affiliation != null)
{
return ChatRoomMemberRole.MODERATOR;
}
else if (smackRole.equalsIgnoreCase("participant"))
{
return ChatRoomMemberRole.MEMBER;
if(affiliation.equals("admin"))
{
return ChatRoomMemberRole.ADMINISTRATOR;
}
else if(affiliation.equals("owner"))
{
return ChatRoomMemberRole.OWNER;
}
}
else
if(smackRole != null)
{
return ChatRoomMemberRole.GUEST;
if (smackRole.equalsIgnoreCase("moderator"))
{
return ChatRoomMemberRole.MODERATOR;
}
else if (smackRole.equalsIgnoreCase("participant"))
{
return ChatRoomMemberRole.MEMBER;
}
}
return ChatRoomMemberRole.GUEST;
}
/**
@ -842,7 +856,7 @@ public ChatRoomMemberRole getUserRole()
if(o == null)
return ChatRoomMemberRole.GUEST;
else
this.role = smackRoleToScRole(o.getRole());
this.role = smackRoleToScRole(o.getRole(), o.getAffiliation());
}
return this.role;
@ -2407,26 +2421,14 @@ public void processPacket(Packet packet)
// this is the presence for our member initial role and
// affiliation, as smack do not fire any initial
// events lets check it and fire events
if(role != null
&& role.equalsIgnoreCase(ChatRoomMemberRole.MODERATOR
.getRoleName().toLowerCase()))
{
setLocalUserRole(ChatRoomMemberRole.MODERATOR);
}
ChatRoomMemberRole jitsiRole =
ChatRoomJabberImpl.smackRoleToScRole(role, affiliation);
if(affiliation != null)
if(jitsiRole == ChatRoomMemberRole.MODERATOR
|| jitsiRole == ChatRoomMemberRole.OWNER
|| jitsiRole == ChatRoomMemberRole.ADMINISTRATOR)
{
if(affiliation.equalsIgnoreCase(ChatRoomMemberRole.OWNER
.getRoleName().toLowerCase()))
{
setLocalUserRole(ChatRoomMemberRole.OWNER);
}
else if(affiliation.equalsIgnoreCase("admin"))
{
setLocalUserRole(ChatRoomMemberRole.ADMINISTRATOR);
}
// by default everyone is member no need of initial
// role change
setLocalUserRole(jitsiRole);
}
}

@ -163,7 +163,8 @@ public ChatRoomMemberRole getRole()
return ChatRoomMemberRole.GUEST;
}
else
role = ChatRoomJabberImpl.smackRoleToScRole(o.getRole());
role = ChatRoomJabberImpl.smackRoleToScRole(
o.getRole(), o.getAffiliation());
}
return role;

Loading…
Cancel
Save