user-delete.jsp 4.67 KB
Newer Older
Derek DeMoro's avatar
Derek DeMoro committed
1
<%--
Matt Tucker's avatar
Matt Tucker committed
2 3
  -	$Revision$
  -	$Date$
Bill Lynch's avatar
Bill Lynch committed
4
  -
5
  - Copyright (C) 2004-2008 Jive Software. All rights reserved.
Bill Lynch's avatar
Bill Lynch committed
6
  -
7 8 9 10 11 12 13 14 15 16 17
  - 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.
Matt Tucker's avatar
Matt Tucker committed
18 19
--%>

20
<%@ page import="org.jivesoftware.openfire.security.SecurityAuditManager,
21 22
                 org.jivesoftware.openfire.session.ClientSession,
                 org.jivesoftware.openfire.user.User"
Bill Lynch's avatar
Bill Lynch committed
23
    errorPage="error.jsp"
Matt Tucker's avatar
Matt Tucker committed
24
%>
25 26
<%@ page import="org.jivesoftware.openfire.user.UserManager" %>
<%@ page import="org.jivesoftware.util.ParamUtils" %>
Sven Tantau's avatar
Sven Tantau committed
27
<%@ page import="org.jivesoftware.util.StringUtils" %>
28 29 30
<%@ page import="org.xmpp.packet.JID" %>
<%@ page import="org.xmpp.packet.StreamError" %>
<%@ page import="java.net.URLEncoder" %>
Bill Lynch's avatar
Bill Lynch committed
31

32 33
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
34

Derek DeMoro's avatar
Derek DeMoro committed
35 36
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager" />
<% webManager.init(request, response, session, application, out ); %>
Matt Tucker's avatar
Matt Tucker committed
37 38 39 40

<%  // Get parameters //
    boolean cancel = request.getParameter("cancel") != null;
    boolean delete = request.getParameter("delete") != null;
41
    String username = ParamUtils.getParameter(request,"username");
Matt Tucker's avatar
Matt Tucker committed
42 43 44

    // Handle a cancel
    if (cancel) {
45
        response.sendRedirect("user-properties.jsp?username=" + URLEncoder.encode(username, "UTF-8"));
Matt Tucker's avatar
Matt Tucker committed
46 47 48 49
        return;
    }

    // Load the user object
Derek DeMoro's avatar
Derek DeMoro committed
50
    User user = webManager.getUserManager().getUser(username);
Matt Tucker's avatar
Matt Tucker committed
51 52 53

    // Handle a user delete:
    if (delete) {
54
        // Delete the user
Derek DeMoro's avatar
Derek DeMoro committed
55
        webManager.getUserManager().deleteUser(user);
56

57 58
        if (!SecurityAuditManager.getSecurityAuditProvider().blockUserEvents()) {
            // Log the event
59
            JID userAddress = new JID(username, webManager.getServerInfo().getXMPPDomain(), null);
60 61
            webManager.logEvent("deleted user "+username, "full jid was "+userAddress);
        }
62 63 64 65 66 67 68
        // Close the user's connection
        final StreamError error = new StreamError(StreamError.Condition.not_authorized);
        for (ClientSession sess : webManager.getSessionManager().getSessions(user.getUsername()) )
        {
            sess.deliverRawText(error.toXML());
            sess.close();
        }
Matt Tucker's avatar
Matt Tucker committed
69
        // Deleted your own user account, force login
Derek DeMoro's avatar
Derek DeMoro committed
70
        if (username.equals(webManager.getAuthToken().getUsername())){
Matt Tucker's avatar
Matt Tucker committed
71 72 73 74 75
            session.removeAttribute("jive.admin.authToken");
            response.sendRedirect("login.jsp");
        }
        else {
            // Done, so redirect
Bill Lynch's avatar
Bill Lynch committed
76
            response.sendRedirect("user-summary.jsp?deletesuccess=true");
Matt Tucker's avatar
Matt Tucker committed
77 78 79 80 81
        }
        return;
    }
%>

82 83 84 85 86 87 88 89
<html>
    <head>
        <title><fmt:message key="user.delete.title"/></title>
        <meta name="subPageID" content="user-delete"/>
        <meta name="extraParams" content="<%= "username="+URLEncoder.encode(username, "UTF-8") %>"/>
        <meta name="helpPage" content="remove_a_user_from_the_system.html"/>
    </head>
    <body>
Matt Tucker's avatar
Matt Tucker committed
90

91 92 93 94 95 96
<% if (UserManager.getUserProvider().isReadOnly()) { %>
<div class="error">
    <fmt:message key="user.read_only"/>
</div>
<% } %>

Matt Tucker's avatar
Matt Tucker committed
97
<p>
98
<fmt:message key="user.delete.info" />
Sven Tantau's avatar
Sven Tantau committed
99
<b><a href="user-properties.jsp?username=<%= URLEncoder.encode(user.getUsername(), "UTF-8") %>"><%= StringUtils.escapeHTMLTags(JID.unescapeNode(user.getUsername())) %></a></b>
100
<fmt:message key="user.delete.info1" />
Matt Tucker's avatar
Matt Tucker committed
101 102
</p>

103
<c:if test="${webManager.user.username == param.username}">
Matt Tucker's avatar
Matt Tucker committed
104
    <p class="jive-warning-text">
105
    <fmt:message key="user.delete.warning" /> <b><fmt:message key="user.delete.warning2" /></b> <fmt:message key="user.delete.warning3" />
Matt Tucker's avatar
Matt Tucker committed
106 107 108 109
    </p>
</c:if>

<form action="user-delete.jsp">
Sven Tantau's avatar
Sven Tantau committed
110
<input type="hidden" name="username" value="<%= StringUtils.escapeForXML(username) %>">
111 112
<input type="submit" name="delete" value="<fmt:message key="user.delete.delete" />">
<input type="submit" name="cancel" value="<fmt:message key="global.cancel" />">
Matt Tucker's avatar
Matt Tucker committed
113 114
</form>

115 116
<%  // Disable the form if a read-only user provider.
    if (UserManager.getUserProvider().isReadOnly()) { %>
117 118 119 120 121 122 123 124 125 126 127 128

<script language="Javascript" type="text/javascript">
  function disable() {
    var limit = document.forms[0].elements.length;
    for (i=0;i<limit;i++) {
      document.forms[0].elements[i].disabled = true;
    }
  }
  disable();
</script>
    <% } %>

129 130
    </body>
</html>