%--
- $Revision$
- $Date$
-
- Copyright (C) 2004-2008 Jive Software. All rights reserved.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--%>
<%@ page import="org.jivesoftware.util.*,
java.util.*,
org.xmpp.packet.*,
org.jivesoftware.openfire.muc.MultiUserChatService"
errorPage="error.jsp"
%>
<%@ page import="java.net.URLEncoder" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
<% webManager.init(request, response, session, application, out ); %>
<% // Get parameters
String userJID = ParamUtils.getParameter(request,"userJID");
boolean add = request.getParameter("add") != null;
boolean save = request.getParameter("save") != null;
boolean success = request.getParameter("success") != null;
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 mucname = ParamUtils.getParameter(request,"mucname");
if (!webManager.getMultiUserChatManager().isServiceRegistered(mucname)) {
// The requested service name does not exist so return to the list of the existing rooms
response.sendRedirect("muc-service-summary.jsp");
return;
}
// Get muc server
MultiUserChatService mucService = webManager.getMultiUserChatManager().getMultiUserChatService(mucname);
// Handle a save
Map errors = new HashMap();
if (save) {
if (openPerms) {
// Remove all users who have the ability to create rooms
List removeables = new ArrayList();
for (JID user : mucService.getUsersAllowedToCreate()) {
removeables.add(user);
}
for (JID user : removeables) {
mucService.removeUserAllowedToCreate(user);
}
mucService.setRoomCreationRestricted(false);
// Log the event
webManager.logEvent("set MUC room creation to restricted for service "+mucname, null);
response.sendRedirect("muc-create-permission.jsp?success=true&mucname="+URLEncoder.encode(mucname, "UTF-8"));
return;
}
else {
mucService.setRoomCreationRestricted(true);
// Log the event
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, "UTF-8"));
return;
}
}
JID bareJID = null;
try {
if (userJID != null && userJID.trim().length() > 0) {
// do validation
bareJID = new JID(new JID(userJID.trim()).toBareJID());
}
} catch (java.lang.IllegalArgumentException ex) {
errors.put("userJID","userJID");
}
if (errors.size() == 0) {
// Handle an add
if (add) {
mucService.addUserAllowedToCreate(bareJID);
// Log the event
webManager.logEvent("added MUC room creation permission to "+userJID+" for service "+mucname, null);
response.sendRedirect("muc-create-permission.jsp?addsuccess=true&mucname="+URLEncoder.encode(mucname, "UTF-8"));
return;
}
if (delete) {
// Remove the user from the allowed list
mucService.removeUserAllowedToCreate(bareJID);
// Log the event
webManager.logEvent("removed MUC room creation permission from "+userJID+" for service "+mucname, null);
// done, return
response.sendRedirect("muc-create-permission.jsp?deletesuccess=true&mucname="+URLEncoder.encode(mucname, "UTF-8"));
return;
}
}
%>
"/>