Index: lams_admin/conf/language/lams/ApplicationResources.properties
===================================================================
diff -u -r2fbf5cd0355af8ea46cf304ba448431486c79b77 -r1e56f3aea99f6dd9c95b548e73d4696a992c25d7
--- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 2fbf5cd0355af8ea46cf304ba448431486c79b77)
+++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 1e56f3aea99f6dd9c95b548e73d4696a992c25d7)
@@ -530,7 +530,7 @@
admin.org.password.change.title =Reset password for course members
admin.org.password.change.button =Password reset
admin.org.password.change.is.staff =Authors/monitors
-admin.org.password.change.is.learners =Students
+admin.org.password.change.is.learner =Students
admin.org.password.change.generate =Generate new password
admin.org.password.change.email =Email new password
admin.org.password.change.force =Force change password after login
@@ -540,5 +540,8 @@
admin.org.password.change.grid.email =Email
admin.org.password.change.grid.error.load =Error while loading users into grid
admin.org.password.change.choose =Change password for
-
+admin.org.password.change.submit =Change password
+admin.org.password.change.error.prefix.staff =Authors/monitors password
+admin.org.password.change.error.prefix.learners =Authors/monitors password
+admin.org.password.change.success =Passwords successfully changed
#======= End labels: Exported 511 labels for en AU =====
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/OrgPasswordChangeAction.java
===================================================================
diff -u -ra031d818f691be81b838500d20f61a17f257e7f9 -r1e56f3aea99f6dd9c95b548e73d4696a992c25d7
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/OrgPasswordChangeAction.java (.../OrgPasswordChangeAction.java) (revision a031d818f691be81b838500d20f61a17f257e7f9)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/OrgPasswordChangeAction.java (.../OrgPasswordChangeAction.java) (revision 1e56f3aea99f6dd9c95b548e73d4696a992c25d7)
@@ -24,6 +24,7 @@
package org.lamsfoundation.lams.admin.web.action;
import java.io.IOException;
+import java.security.InvalidParameterException;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -44,8 +45,10 @@
import org.lamsfoundation.lams.integration.security.RandomPasswordGenerator;
import org.lamsfoundation.lams.usermanagement.Organisation;
import org.lamsfoundation.lams.usermanagement.Role;
+import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
+import org.lamsfoundation.lams.util.ValidationUtil;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
@@ -67,7 +70,7 @@
passForm.set("staffPass", RandomPasswordGenerator.nextPasswordValidated());
passForm.set("learnerPass", RandomPasswordGenerator.nextPasswordValidated());
- return mapping.findForward("start");
+ return mapping.findForward("display");
}
public ActionForward generatePassword(ActionMapping mapping, ActionForm form, HttpServletRequest request,
@@ -141,8 +144,46 @@
return null;
}
+ public ActionForward changePassword(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) throws IOException, JSONException {
+ UserDTO userDTO = getUserDTO();
+ Integer currentUserId = userDTO.getUserID();
+ if (!AdminServiceProxy.getSecurityService(getServlet().getServletContext()).isSysadmin(currentUserId,
+ "org password change", false)) {
+ String warning = "User " + currentUserId + " is not a sysadmin";
+ log.warn(warning);
+ response.sendError(HttpServletResponse.SC_FORBIDDEN, warning);
+ return null;
+ }
+
+ DynaActionForm passForm = (DynaActionForm) form;
+ Integer organisationID = (Integer) passForm.get(AttributeNames.PARAM_ORGANISATION_ID);
+ Boolean email = (Boolean) passForm.get("email");
+ Boolean force = (Boolean) passForm.get("force");
+
+ Boolean isStaffChange = (Boolean) passForm.get("isStaffChange");
+ Boolean isLearnerChange = (Boolean) passForm.get("isLearnerChange");
+ if (isStaffChange) {
+ JSONArray excludedStaff = new JSONArray((String) passForm.get("excludedStaff"));
+ String staffPass = (String) passForm.get("staffPass");
+ }
+ if (isLearnerChange) {
+ JSONArray excludedLearners = new JSONArray((String) passForm.get("excludedLearners"));
+ String learnerPass = (String) passForm.get("learnerPass");
+ }
+
+ request.setAttribute("success", true);
+ return mapping.findForward("display");
+ }
+
+ private void changePassword(String password, List