Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions i18n/src/main/resources/openfire_i18n.properties
Original file line number Diff line number Diff line change
Expand Up @@ -736,6 +736,7 @@ muc.create.permission.user_removed=User/Group removed successfully.
muc.create.permission.policy=Permission Policy
muc.create.permission.anyone_created=Anyone can create a chat room.
muc.create.permission.specific_created=Only specific users/groups can create a chat room.
muc.create.permission.no_one_created=No one can create a chat room.
muc.create.permission.allowed_users=Allowed Users/Groups
muc.create.permission.add_jid=Add User (JID):
muc.create.permission.add_group=Select Group (one or more):
Expand Down
42 changes: 33 additions & 9 deletions xmppserver/src/main/webapp/muc-create-permission.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
boolean addsuccess = request.getParameter("addsuccess") != null;
boolean deletesuccess = request.getParameter("deletesuccess") != null;
boolean delete = ParamUtils.getBooleanParameter(request,"delete");
boolean openPerms = ParamUtils.getBooleanParameter(request,"openPerms");
String openPerms = ParamUtils.getParameter(request,"openPerms");
String mucname = ParamUtils.getParameter(request,"mucname");

if (!webManager.getMultiUserChatManager().isServiceRegistered(mucname)) {
Expand Down Expand Up @@ -73,24 +73,38 @@
// Handle a save
Map<String,String> errors = new HashMap<>();
if (save) {
if (openPerms) {
if ("anyone".equals(openPerms)) {
// Remove all users who have the ability to create rooms
for (JID user : mucService.getUsersAllowedToCreate()) {
mucService.removeUserAllowedToCreate(user);
}
mucService.setRoomCreationRestricted(false);
// Log the event
webManager.logEvent("set MUC room creation to restricted for service "+mucname, null);
webManager.logEvent("set MUC room creation to not restricted for service "+mucname, null);
response.sendRedirect("muc-create-permission.jsp?success=true&mucname="+URLEncoder.encode(mucname, StandardCharsets.UTF_8));
return;
}
else if ("none".equals(openPerms)) {
// Remove all users who have the ability to create rooms
for (JID user : mucService.getUsersAllowedToCreate()) {
mucService.removeUserAllowedToCreate(user);
}
mucService.setRoomCreationRestricted(true);
mucService.setAllRegisteredUsersAllowedToCreate(false);
// Log the event
webManager.logEvent("set MUC room creation to restricted (none) for service "+mucname, null);
response.sendRedirect("muc-create-permission.jsp?success=true&mucname="+URLEncoder.encode(mucname, StandardCharsets.UTF_8));
return;
}
else {
else if ("specific".equals(openPerms)) {
mucService.setRoomCreationRestricted(true);
mucService.setAllRegisteredUsersAllowedToCreate(allowAllRegisteredUsers);
// Log the event
webManager.logEvent("set MUC room creation to not restricted for service "+mucname, null);
webManager.logEvent("set MUC room creation to restricted for service "+mucname, null);
response.sendRedirect("muc-create-permission.jsp?success=true&mucname="+URLEncoder.encode(mucname, StandardCharsets.UTF_8));
return;
}else{
errors.put("openPerms", "openPerms");
}
}

Expand Down Expand Up @@ -227,7 +241,7 @@
<tbody>
<tr>
<td style="width: 1%">
<input type="radio" name="openPerms" value="true" id="rb01"
<input type="radio" name="openPerms" value="anyone" id="rb01"
onchange="toggleAllowedUsers()"
<%= ((!mucService.isRoomCreationRestricted()) ? "checked" : "") %>>
</td>
Expand All @@ -237,14 +251,24 @@
</tr>
<tr>
<td style="width: 1%">
<input type="radio" name="openPerms" value="false" id="restrictedPermissionsRadio"
<input type="radio" name="openPerms" value="specific" id="restrictedPermissionsRadio"
onchange="toggleAllowedUsers()"
<%= ((mucService.isRoomCreationRestricted()) ? "checked" : "") %>>
<%= ((mucService.isRoomCreationRestricted() && (!mucService.getUsersAllowedToCreate().isEmpty() || mucService.isAllRegisteredUsersAllowedToCreate())) ? "checked" : "") %>>
</td>
<td>
<label for="restrictedPermissionsRadio"><fmt:message key="muc.create.permission.specific_created" /></label>
</td>
</tr>
<tr>
<td style="width: 1%">
<input type="radio" name="openPerms" value="none" id="nonePermissionsRadio"
onchange="toggleAllowedUsers()"
<%= ((mucService.isRoomCreationRestricted() && mucService.getUsersAllowedToCreate().isEmpty() && !mucService.isAllRegisteredUsersAllowedToCreate()) ? "checked" : "") %>>
</td>
<td>
<label for="nonePermissionsRadio"><fmt:message key="muc.create.permission.no_one_created" /></label>
</td>
</tr>
</tbody>
</table>
</div>
Expand All @@ -254,7 +278,7 @@

<br>

<div id="allowedUsersContainer" style="display: <%= (mucService.isRoomCreationRestricted() ? "block" : "none") %>">
<div id="allowedUsersContainer" style="display: <%= (mucService.isRoomCreationRestricted() && (!mucService.getUsersAllowedToCreate().isEmpty() || mucService.isAllRegisteredUsersAllowedToCreate()) ? "block" : "none") %>">
<!-- BEGIN 'Allowed Users' -->
<form action="muc-create-permission.jsp?add" method="post">
<input type="hidden" name="csrf" value="${csrf}">
Expand Down
Loading