Index: lams_admin/conf/language/lams/ApplicationResources.properties
===================================================================
diff -u -reba4bfd253009e2910ee42d7852a05004f14b26d -re275beec5359edfddeab1b17564db7736c5ead0d
--- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision eba4bfd253009e2910ee42d7852a05004f14b26d)
+++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision e275beec5359edfddeab1b17564db7736c5ead0d)
@@ -664,3 +664,4 @@
tool.groups.remove.confirm = Are you sure you want to remove this group?
tool.groups.group.name.error = A group name can not be blank
tool.groups.save.error = Error while saving groups
+config.login.as.enable = Enable Login-as feature for administrators
\ No newline at end of file
Index: lams_admin/web/usersearchlist.jsp
===================================================================
diff -u -r05c00f92856ef13cd90d6fce06acb069418c2512 -re275beec5359edfddeab1b17564db7736c5ead0d
--- lams_admin/web/usersearchlist.jsp (.../usersearchlist.jsp) (revision 05c00f92856ef13cd90d6fce06acb069418c2512)
+++ lams_admin/web/usersearchlist.jsp (.../usersearchlist.jsp) (revision e275beec5359edfddeab1b17564db7736c5ead0d)
@@ -4,6 +4,7 @@
+
@@ -95,10 +96,12 @@
rows += ' ';
rows += '';
rows += ' ';
+
rows += '" href="loginas.do?login=' + orgData["login"] + '" id="loginAs' + orgData["userId"] +'">';
rows += '';
rows += '';
rows += ' ';
+
if (${(useInternalSMTPServer || not empty smtpServer)} && orgData["email"] != null && orgData["email"] != "") {
rows += '" href="emailUser/composeMail.do?returnUrl=/lams/admin/usersearch.do&userID=' + orgData["userId"] + '">';
Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginAsController.java
===================================================================
diff -u -r29a37489a63e5a95f42a5ef5fd8a7daeb65c53c5 -re275beec5359edfddeab1b17564db7736c5ead0d
--- lams_central/src/java/org/lamsfoundation/lams/web/LoginAsController.java (.../LoginAsController.java) (revision 29a37489a63e5a95f42a5ef5fd8a7daeb65c53c5)
+++ lams_central/src/java/org/lamsfoundation/lams/web/LoginAsController.java (.../LoginAsController.java) (revision e275beec5359edfddeab1b17564db7736c5ead0d)
@@ -67,7 +67,7 @@
public String execute(HttpServletRequest request) throws Exception {
String login = WebUtil.readStrParam(request, "login", false);
- if (userManagementService.isUserSysAdmin()) {
+ if (userManagementService.isUserSysAdmin() && Configuration.getAsBoolean(ConfigurationKeys.LOGIN_AS_ENABLE)) {
if ((login != null) && (login.trim().length() > 0)) {
User user = userManagementService.getUserByLogin(login);
if (user != null) {
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20211025.sql
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20211025.sql (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20211025.sql (revision e275beec5359edfddeab1b17564db7736c5ead0d)
@@ -0,0 +1,17 @@
+-- Turn off autocommit, so nothing is committed if there is an error
+SET AUTOCOMMIT = 0;
+SET FOREIGN_KEY_CHECKS=0;
+-- Put all sql statements below here
+
+--LDEV-5253 Make Login As feature configurable
+
+INSERT INTO lams_configuration (config_key, config_value, description_key, header_name, format, required)
+VALUES ('LoginAsEnable', 'true', 'config.login.as.enable', 'config.header.privacy.settings', 'BOOLEAN', 1);
+
+
+-- Put all sql statements above here
+
+-- If there were no errors, commit and restore autocommit to on
+COMMIT;
+SET AUTOCOMMIT = 1;
+SET FOREIGN_KEY_CHECKS=1;
Index: lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java
===================================================================
diff -u -rd4e455d6806b6c48cca0b6e8ee87f256a92f123a -re275beec5359edfddeab1b17564db7736c5ead0d
--- lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java (.../ConfigurationKeys.java) (revision d4e455d6806b6c48cca0b6e8ee87f256a92f123a)
+++ lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java (.../ConfigurationKeys.java) (revision e275beec5359edfddeab1b17564db7736c5ead0d)
@@ -328,4 +328,7 @@
public static String ETHERPAD_SERVER_URL = "EtherpadServerUrl";
public static String ETHERPAD_API_KEY = "EtherpadApiKey";
public static String ETHERPAD_INSTANCE_ID = "EtherpadInstanceID";
+
+ // LDEV-5253 Make Login As feature configurable
+ public static String LOGIN_AS_ENABLE = "LoginAsEnable";
}
\ No newline at end of file