Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserOrgRoleSaveController.java =================================================================== diff -u -r399fafea8d30e59f81414f332a7e8a5ed527aee4 -r74f5181ce3ce7949669ac12999797880a2af0b0c --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserOrgRoleSaveController.java (.../UserOrgRoleSaveController.java) (revision 399fafea8d30e59f81414f332a7e8a5ed527aee4) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserOrgRoleSaveController.java (.../UserOrgRoleSaveController.java) (revision 74f5181ce3ce7949669ac12999797880a2af0b0c) @@ -105,6 +105,12 @@ } List userRolesList = Arrays.asList(roleIds); + if (userRolesList.contains(Role.ROLE_SYSADMIN.toString()) + && !userRolesList.contains(Role.ROLE_APPADMIN.toString())) { + //all sysadmins are also appadmins + userRolesList = new ArrayList<>(userRolesList); + userRolesList.add(Role.ROLE_APPADMIN.toString()); + } userManagementService.setRolesForUserOrganisation(user, orgId, userRolesList); if (userRolesList.contains(Role.ROLE_APPADMIN.toString()) Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserRolesSaveController.java =================================================================== diff -u -r399fafea8d30e59f81414f332a7e8a5ed527aee4 -r74f5181ce3ce7949669ac12999797880a2af0b0c --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserRolesSaveController.java (.../UserRolesSaveController.java) (revision 399fafea8d30e59f81414f332a7e8a5ed527aee4) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserRolesSaveController.java (.../UserRolesSaveController.java) (revision 74f5181ce3ce7949669ac12999797880a2af0b0c) @@ -23,6 +23,7 @@ package org.lamsfoundation.lams.admin.web.controller; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -111,6 +112,12 @@ } List userRolesList = roles == null || roles.length < 1 ? List.of() : Arrays.asList(roles); + if (userRolesList.contains(Role.ROLE_SYSADMIN.toString()) + && !userRolesList.contains(Role.ROLE_APPADMIN.toString())) { + //all sysadmins are also appadmins + userRolesList = new ArrayList<>(userRolesList); + userRolesList.add(Role.ROLE_APPADMIN.toString()); + } userManagementService.setRolesForUserOrganisation(user, orgId, userRolesList); if (userRolesList.contains(Role.ROLE_APPADMIN.toString())