Index: lams_admin/conf/language/ApplicationResources.properties
===================================================================
diff -u -r7438d2e4ba424efcb191f015b5882aaeb4ac64d0 -r014f8d44ccd74d20a8c00442ee9dd013521f4aea
--- lams_admin/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 7438d2e4ba424efcb191f015b5882aaeb4ac64d0)
+++ lams_admin/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 014f8d44ccd74d20a8c00442ee9dd013521f4aea)
@@ -196,5 +196,6 @@
label.show.all.users =Show all users
msg.group.organisation_id = The organisation_id of this group is
msg.subgroup.organisation_id = The organisation_id of this subgroup is
+msg.remove.from.subgroups = Removed users will also be removed from subgroups.
#======= End labels: Exported 188 labels for en AU =====
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgSaveAction.java
===================================================================
diff -u -r7d91e93ee10b2f84a9a7cc6b83b0cacde0f7affc -r014f8d44ccd74d20a8c00442ee9dd013521f4aea
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgSaveAction.java (.../UserOrgSaveAction.java) (revision 7d91e93ee10b2f84a9a7cc6b83b0cacde0f7affc)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgSaveAction.java (.../UserOrgSaveAction.java) (revision 014f8d44ccd74d20a8c00442ee9dd013521f4aea)
@@ -110,6 +110,8 @@
userUos.remove(uo);
user.setUserOrganisations(userUos);
log.debug("removed userId="+userId+" from orgId="+orgId);
+ // remove from subgroups
+ service.deleteChildUserOrganisations(uo.getUser(), uo.getOrganisation());
}
}
// add UserOrganisations that are in form data
Index: lams_admin/web/userorg.jsp
===================================================================
diff -u -r5a434572e8771eb9253a4b2f09efbf0c53b5f261 -r014f8d44ccd74d20a8c00442ee9dd013521f4aea
--- lams_admin/web/userorg.jsp (.../userorg.jsp) (revision 5a434572e8771eb9253a4b2f09efbf0c53b5f261)
+++ lams_admin/web/userorg.jsp (.../userorg.jsp) (revision 014f8d44ccd74d20a8c00442ee9dd013521f4aea)
@@ -27,6 +27,10 @@
+
+
+
+
Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -rb48554300478401909b92cf4d8e0ba4e0e7a9d69 -r014f8d44ccd74d20a8c00442ee9dd013521f4aea
Binary files differ
Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java
===================================================================
diff -u -r68eab07e7b1947fed0f85b75d1856e7674ddebf7 -r014f8d44ccd74d20a8c00442ee9dd013521f4aea
--- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 68eab07e7b1947fed0f85b75d1856e7674ddebf7)
+++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 014f8d44ccd74d20a8c00442ee9dd013521f4aea)
@@ -352,5 +352,11 @@
*/
public boolean hasRoleInOrganisation(User user, Integer roleId, Organisation organisation);
-
+ /**
+ * Given a user and a group, removes user from subgroups.
+ * @param user
+ * @param org
+ */
+ public void deleteChildUserOrganisations(User user, Organisation org);
+
}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java
===================================================================
diff -u -r68eab07e7b1947fed0f85b75d1856e7674ddebf7 -r014f8d44ccd74d20a8c00442ee9dd013521f4aea
--- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 68eab07e7b1947fed0f85b75d1856e7674ddebf7)
+++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 014f8d44ccd74d20a8c00442ee9dd013521f4aea)
@@ -734,4 +734,27 @@
else
return false;
}
+
+ public void deleteChildUserOrganisations(User user, Organisation org) {
+ if (!org.getOrganisationType().getOrganisationTypeId().equals(OrganisationType.COURSE_TYPE))
+ return;
+ Set childOrgs = org.getChildOrganisations();
+ Iterator iter = childOrgs.iterator();
+ while (iter.hasNext()) {
+ Organisation childOrg = (Organisation)iter.next();
+ Set childOrgUos = childOrg.getUserOrganisations();
+ UserOrganisation uo = getUserOrganisation(user.getUserId(), childOrg.getOrganisationId());
+ if (uo != null) {
+ // remove user's membership of this subgroup
+ childOrgUos.remove(uo);
+ childOrg.setUserOrganisations(childOrgUos);
+ save(childOrg);
+ // remove User's link to this subgroup
+ Set userUos = user.getUserOrganisations();
+ userUos.remove(uo);
+ user.setUserOrganisations(userUos);
+ log.debug("removed userId="+user.getUserId()+" from orgId="+childOrg.getOrganisationId());
+ }
+ }
+ }
}
\ No newline at end of file