user-create.jsp 6.73 KB
Newer Older
1
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
Bill Lynch's avatar
Bill Lynch committed
2
<%--
Matt Tucker's avatar
Matt Tucker committed
3 4 5
  -	$RCSfile$
  -	$Revision$
  -	$Date$
Bill Lynch's avatar
Bill Lynch committed
6 7 8 9 10
  -
  - Copyright (C) 2004 Jive Software. All rights reserved.
  -
  - This software is published under the terms of the GNU Public License (GPL),
  - a copy of which is included in this distribution.
Matt Tucker's avatar
Matt Tucker committed
11 12 13 14 15 16
--%>
<%@ page import="org.jivesoftware.util.*,
                 java.util.HashMap,
                 java.util.Map,
                 org.jivesoftware.messenger.user.UserManager,
                 org.jivesoftware.messenger.user.*,
Derek DeMoro's avatar
Derek DeMoro committed
17
                 org.jivesoftware.messenger.user.spi.*,
Matt Tucker's avatar
Matt Tucker committed
18 19
                 java.util.*,
                 org.jivesoftware.messenger.*,
Derek DeMoro's avatar
Derek DeMoro committed
20
                 org.jivesoftware.admin.*,
Matt Tucker's avatar
Matt Tucker committed
21 22 23 24 25 26 27
                 java.io.StringWriter,
                 java.io.StringWriter,
                 java.io.IOException,
                 org.jivesoftware.messenger.auth.UnauthorizedException,
                 java.io.PrintStream,
                 org.dom4j.xpath.DefaultXPath,
                 org.dom4j.*"
Bill Lynch's avatar
Bill Lynch committed
28
    errorPage="error.jsp"
Matt Tucker's avatar
Matt Tucker committed
29
%>
30 31 32 33 34 35 36 37

<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>

<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager"  />
<jsp:useBean id="errors" class="java.util.HashMap" />
<% webManager.init(request, response, session, application, out ); %>

<%  // Get parameters //
Matt Tucker's avatar
Matt Tucker committed
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
    boolean create = request.getParameter("create") != null;
    boolean cancel = request.getParameter("cancel") != null;
    String username = ParamUtils.getParameter(request,"username");
    String name = ParamUtils.getParameter(request,"name");
    String email = ParamUtils.getParameter(request,"email");
    String password = ParamUtils.getParameter(request,"password");
    String passwordConfirm = ParamUtils.getParameter(request,"passwordConfirm");

    // Handle a cancel
    if (cancel) {
        response.sendRedirect("user-summary.jsp");
        return;
    }

    // Handle a request to create a user:
    if (create) {
        // Validate
        if (username == null) {
            errors.put("username","");
        }
        if (password == null) {
            errors.put("password","");
        }
        if (passwordConfirm == null) {
            errors.put("passwordConfirm","");
        }
        if (password != null && passwordConfirm != null && !password.equals(passwordConfirm)) {
            errors.put("passwordMatch","");
        }

        // do a create if there were no errors
        if (errors.size() == 0) {
            try {
Derek DeMoro's avatar
Derek DeMoro committed
71
                User newUser = webManager.getUserManager().createUser(username, password, email);
Matt Tucker's avatar
Matt Tucker committed
72 73 74 75 76 77
                if (name != null) {
                    newUser.getInfo().setName(name);
                }
                newUser.saveInfo();
                
                // Successful, so redirect
Bill Lynch's avatar
Bill Lynch committed
78
                response.sendRedirect("user-properties.jsp?success=true&username=" + newUser.getUsername());
Matt Tucker's avatar
Matt Tucker committed
79 80 81
                return;
            }
            catch (UserAlreadyExistsException e) {
Derek DeMoro's avatar
Derek DeMoro committed
82
                e.printStackTrace();
Matt Tucker's avatar
Matt Tucker committed
83 84 85
                errors.put("usernameAlreadyExists","");
            }
            catch (Exception e) {
Derek DeMoro's avatar
Derek DeMoro committed
86
                e.printStackTrace();
Matt Tucker's avatar
Matt Tucker committed
87 88 89 90 91 92
                errors.put("general","");
                Log.error(e);
            }
        }
    }
%>
Derek DeMoro's avatar
Derek DeMoro committed
93 94
<jsp:useBean id="pageinfo" scope="request" class="org.jivesoftware.admin.AdminPageBean"/>
<%   // Title of this page and breadcrumbs
Derek DeMoro's avatar
Derek DeMoro committed
95 96
    String title = "Create User";
    pageinfo.setTitle(title);
Bill Lynch's avatar
Bill Lynch committed
97
    pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb("Main", "index.jsp"));
Derek DeMoro's avatar
Derek DeMoro committed
98 99 100
    pageinfo.getBreadcrumbs().add(new AdminPageBean.Breadcrumb(title, "user-create.jsp"));
    pageinfo.setPageID("user-create");
%>
Derek DeMoro's avatar
Derek DeMoro committed
101 102 103 104 105 106 107
<jsp:include page="top.jsp" flush="true"/>
<jsp:include page="title.jsp" flush="true"/>
<c:set var="submit" value="${param.create}"/>
<c:set var="errors" value="${errors}"/>
<%   if (errors.get("general") != null) { %>
<div class="jive-success">
  <table cellpadding="0" cellspacing="0" border="0">
Bill Lynch's avatar
Bill Lynch committed
108
    <tbody>
Derek DeMoro's avatar
Derek DeMoro committed
109 110 111 112 113 114
      <tr>
        <td class="jive-icon">
          <img src="images/success-16x16.gif" width="16" height="16" border="0"/>
        </td>
        <td class="jive-icon-label">Error creating the user account. Please check your error logs.</td>
      </tr>
Bill Lynch's avatar
Bill Lynch committed
115
    </tbody>
Derek DeMoro's avatar
Derek DeMoro committed
116 117 118 119
  </table>
</div>
<br/>
<%   } %>
Derek DeMoro's avatar
Derek DeMoro committed
120
<form name="f" action="user-create.jsp" method="post">
Derek DeMoro's avatar
Derek DeMoro committed
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
<fieldset><legend>Create New User</legend>
<table  cellpadding="3" cellspacing="1" border="0">

   <tr><td class="c1">* Required fields</td></tr>
    <tr>
      <td width="1%" class="c1">Username: *</td>
      <td class="c2">
        <input type="text" name="username" size="30" maxlength="75" value="<%= ((username!=null) ? username : "") %>"/>
        <%   if (errors.get("username") != null) { %>
        <span class="jive-error-text">Invalid username. </span>
        <%   } else if (errors.get("usernameAlreadyExists") != null) { %>
        <span class="jive-error-text">Username already exists - please choose a different one. </span>
        <%   } %>
      </td>
    </tr>
    <tr>
      <td width="1%" class="c1">Name:</td>
      <td class="c2">
        <input type="text" name="name" size="30" maxlength="75" value="<%= ((name!=null) ? name : "") %>"/>
        <%   if (errors.get("name") != null) { %>
        <span class="jive-error-text">Invalid name. </span>
        <%   } %>
      </td>
    </tr>
    <tr>
      <td width="1%" class="c1">Email:</td>
      <td class="c2">
        <input type="text" name="email" size="30" maxlength="75" value="<%= ((email!=null) ? email : "") %>"/>
        <%   if (errors.get("email") != null) { %>
        <span class="jive-error-text">Invalid email. </span>
        <%   } %>
      </td>
    </tr>
    <tr>
      <td class="c1">Password: *</td>
      <td class="c2">
        <input type="password" name="password" value="" size="20" maxlength="75"/>
        <%   if (errors.get("password") != null) { %>
        <span class="jive-error-text">Invalid password. </span>
        <%   } else if (errors.get("passwordMatch") != null) { %>
        <span class="jive-error-text">Passwords don't match. </span>
        <%   } %>
      </td>
    </tr>
    <tr>
      <td width="1%" class="c1">Confirm Password: *</td>
      <td class="c2">
        <input type="password" name="passwordConfirm" value="" size="20" maxlength="75"/>
        <%   if (errors.get("passwordConfirm") != null) { %>
        <span class="jive-error-text">Invalid password confirmation. </span>
        <%   } %>
      </td>
    </tr>
    <tr>
      <td colspan="2" nowrap><input type="submit" name="create" value="Create User"/><input type="submit" name="cancel" value="Cancel"/>
      </tr></td></fieldset>
  </form>
  <script language="JavaScript" type="text/javascript">
     document.f.username.focus();
     function checkFields() {
     }
</script>
Matt Tucker's avatar
Matt Tucker committed
183

Derek DeMoro's avatar
Derek DeMoro committed
184
  <jsp:include page="bottom.jsp" flush="true"/>
Matt Tucker's avatar
Matt Tucker committed
185 186 187
</table>