Author: channa
Date: Thu Jan 24 21:39:46 2008
New Revision: 12861

Log:

Added password reset functionality for admin. Secured pages against 
unauthorized direct access.

Modified:
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/userprofile/AddUserBean.java
   trunk/mashup/java/modules/www/add_user.jsp
   trunk/mashup/java/modules/www/delete_user.jsp
   trunk/mashup/java/modules/www/register_admin.jsp

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/userprofile/AddUserBean.java
==============================================================================
--- 
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/userprofile/AddUserBean.java
      (original)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/userprofile/AddUserBean.java
      Thu Jan 24 21:39:46 2008
@@ -217,10 +217,9 @@
             // Get an instance of the secure registry as admin and then get 
it's user manager.
             UserStoreAdmin userStoreAdmin = realm.getUserStoreAdmin();
 
-            // todo: need way for admin to reset password without knowing 
previous one.
-//            if (!"".equals(password)) {
-//                userStoreAdmin.updateUser(userName, password, password);
-//            }
+            if (!password.equals("")) {
+                userStoreAdmin.updateUser(userName, password);
+            }
 
             RegistryUtils.updateUser(registry, userStoreAdmin, userName, 
fullName, emailId, bio);
             created = true;
@@ -250,25 +249,22 @@
             valid = false;
         }
 
-        // These validations are only required when creating a new user.
-        if (!editMode) {
-            if (password.equals("")) {
-                errors.put("password", "Password cannot be empty.");
-                valid = false;
-            } else if (password.length() < 
MashupConstants.MIN_PASSWORD_LENGTH) {
-                errors.put("password", "Password should be atleast " +
-                        MashupConstants.MIN_PASSWORD_LENGTH + " characters.");
+        // Duplicate check is backend call, so done once other data is 
validated and only for add.
+        if (!editMode && valid) {
+            if (ManageUsers.isExistingUser(request, userName)) {
+                errors.put("userName", "User name exists, please select 
another.");
+                userName = "";
                 valid = false;
             }
+        }
 
-            // Expensive operation, so do only once all other data has been 
validated.
-            if (valid) {
-                if (ManageUsers.isExistingUser(request, userName)) {
-                    errors.put("userName", "User name exists, please select 
another.");
-                    userName = "";
-                    valid = false;
-                }
-            }
+        // Password length check done only in add mode or when resetting 
password.
+        if ((!editMode && password.length() < 
MashupConstants.MIN_PASSWORD_LENGTH) ||
+                (editMode && password.length() != 0 && password.length() <
+                        MashupConstants.MIN_PASSWORD_LENGTH)) {
+            errors.put("password", "Password should be atleast " +
+                    MashupConstants.MIN_PASSWORD_LENGTH + " characters.");
+            valid = false;
         }
 
         return valid;

Modified: trunk/mashup/java/modules/www/add_user.jsp
==============================================================================
--- trunk/mashup/java/modules/www/add_user.jsp  (original)
+++ trunk/mashup/java/modules/www/add_user.jsp  Thu Jan 24 21:39:46 2008
@@ -83,21 +83,25 @@
     <jsp:setProperty name="addUserHandler" property="*"/>
 </jsp:useBean>
 <%
-    if (!"true".equals(firstCall)) {
-        if ("true".equals(editMode)) {
-            if (addUserHandler.editUser(request)) {
-                response.sendRedirect(bounceback);
+    if (RegistryUtils.isAdminRole(registry)) {
+        if (!"true".equals(firstCall)) {
+            if ("true".equals(editMode)) {
+                if (addUserHandler.editUser(request)) {
+                    response.sendRedirect(bounceback);
+                }
+            } else {
+                if (addUserHandler.addUser(request)) {
+                    response.sendRedirect(bounceback);
+                }
             }
         } else {
-            if (addUserHandler.addUser(request)) {
-                response.sendRedirect(bounceback);
+            if ("true".equals(editMode)) {
+                title = "Edit User";
+                addUserHandler.loadUserDetails(request, userName);
             }
         }
     } else {
-        if ("true".equals(editMode)) {
-            title = "Edit User";
-            addUserHandler.loadUserDetails(request, userName);
-        }
+        response.sendRedirect(bounceback);
     }
 %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
@@ -143,15 +147,17 @@
                                 <td><input type="text" name="emailId"
                                            
value="<%=addUserHandler.getEmailId()%>"/></td>
                             </tr>
-                            <% if (!"true".equals(editMode)) { %>
                             <tr>
-                                <td><label><strong>Password:<font 
color="#FF0000">*</font></strong></label></td>
+                                <td><label><strong>Password:<% if 
(!"true".equals(editMode)) { %> <font 
color="#FF0000">*</font><%}%></strong></label></td>
                                 <td><input type="password" name="password"
                                            
value="<%=addUserHandler.getPassword()%>"/>
                                     <br><div 
class="login-error"><%=addUserHandler.getErrorMessage("password")%></div>
+                                    <% if ("true".equals(editMode)) { %>
+                                    <br><strong>If a new password is entered 
here it will reset the existing password. Leave empty if this is not your 
intention.</strong>
+                                    <% } %>
                                 </td>
+                                
                             </tr>
-                            <% } %>
                             <tr>
                                 <td><label><strong>Bio:</strong></label></td>
                                 <td><input type="text" name="bio"

Modified: trunk/mashup/java/modules/www/delete_user.jsp
==============================================================================
--- trunk/mashup/java/modules/www/delete_user.jsp       (original)
+++ trunk/mashup/java/modules/www/delete_user.jsp       Thu Jan 24 21:39:46 2008
@@ -72,8 +72,7 @@
                 }
             }
         } else {
-            message = "You are not authorized to manage users!";
-            actionFailed = true;
+            response.sendRedirect(bounceback);
         }
     }
 %>

Modified: trunk/mashup/java/modules/www/register_admin.jsp
==============================================================================
--- trunk/mashup/java/modules/www/register_admin.jsp    (original)
+++ trunk/mashup/java/modules/www/register_admin.jsp    Thu Jan 24 21:39:46 2008
@@ -33,7 +33,7 @@
     <jsp:setProperty name="registrationHandler" property="adminCreation" 
value="true"/>
 </jsp:useBean>
 <%
-    if (MashupUtils.isInitialSetupComplete()) {
+    if (MashupUtils.isInitialSetupComplete() || 
!MashupUtils.isFromLocalHost(request)) {
         response.sendRedirect("index.jsp");
     }
 

_______________________________________________
Mashup-dev mailing list
[email protected]
http://www.wso2.org/cgi-bin/mailman/listinfo/mashup-dev

Reply via email to