Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserSearchController.java
===================================================================
diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -rd13f92ca7aa2afe69ccfc88656fa5e1afe8d5f31
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserSearchController.java (.../UserSearchController.java) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserSearchController.java (.../UserSearchController.java) (revision d13f92ca7aa2afe69ccfc88656fa5e1afe8d5f31)
@@ -34,6 +34,8 @@
import org.lamsfoundation.lams.usermanagement.Role;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
+import org.lamsfoundation.lams.util.Configuration;
+import org.lamsfoundation.lams.util.ConfigurationKeys;
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,7 +55,7 @@
@Controller
public class UserSearchController {
private static Logger log = Logger.getLogger(UserSearchController.class);
-
+
@Autowired
private IUserManagementService userManagementService;
@Autowired
@@ -70,6 +72,10 @@
return "error";
}
+ boolean loginAsEnable = Configuration.getAsBoolean(ConfigurationKeys.LOGIN_AS_ENABLE)
+ && request.isUserInRole(Role.SYSADMIN);
+ request.setAttribute("loginAsEnable", loginAsEnable);
+
return "usersearchlist";
}
Index: lams_admin/web/usersearchlist.jsp
===================================================================
diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -rd13f92ca7aa2afe69ccfc88656fa5e1afe8d5f31
--- lams_admin/web/usersearchlist.jsp (.../usersearchlist.jsp) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69)
+++ lams_admin/web/usersearchlist.jsp (.../usersearchlist.jsp) (revision d13f92ca7aa2afe69ccfc88656fa5e1afe8d5f31)
@@ -4,7 +4,6 @@
-
@@ -96,7 +95,7 @@
rows += ' ';
rows += '';
rows += ' ';
-
+
rows += '" href="loginas.do?login=' + orgData["login"] + '" id="loginAs' + orgData["userId"] +'">';
rows += '';
rows += '';
Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginAsController.java
===================================================================
diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -rd13f92ca7aa2afe69ccfc88656fa5e1afe8d5f31
--- lams_central/src/java/org/lamsfoundation/lams/web/LoginAsController.java (.../LoginAsController.java) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69)
+++ lams_central/src/java/org/lamsfoundation/lams/web/LoginAsController.java (.../LoginAsController.java) (revision d13f92ca7aa2afe69ccfc88656fa5e1afe8d5f31)
@@ -67,7 +67,7 @@
public String execute(HttpServletRequest request) throws Exception {
String login = WebUtil.readStrParam(request, "login", false);
- if (userManagementService.isUserAppAdmin() && Configuration.getAsBoolean(ConfigurationKeys.LOGIN_AS_ENABLE)) {
+ if (request.isUserInRole(Role.SYSADMIN) && Configuration.getAsBoolean(ConfigurationKeys.LOGIN_AS_ENABLE)) {
if ((login != null) && (login.trim().length() > 0)) {
User user = userManagementService.getUserByLogin(login);
if (user != null) {
@@ -118,7 +118,8 @@
for (Set orgRoleSet : orgRoleSets.values()) {
for (Integer role : orgRoleSet) {
if (role.equals(Role.ROLE_AUTHOR) || role.equals(Role.ROLE_MONITOR)
- || role.equals(Role.ROLE_GROUP_MANAGER) || role.equals(Role.ROLE_APPADMIN)) {
+ || role.equals(Role.ROLE_GROUP_MANAGER) || role.equals(Role.ROLE_APPADMIN)
+ || role.equals(Role.ROLE_SYSADMIN)) {
return false;
}
}