Index: lams_admin/conf/language/lams/ApplicationResources.properties
===================================================================
diff -u -r489e453a8a4e814ac7edbb0b9ca33997ed7e3bae -r1c496f87123d1d2277609837e427b77c18874a79
--- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 489e453a8a4e814ac7edbb0b9ca33997ed7e3bae)
+++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 1c496f87123d1d2277609837e427b77c18874a79)
@@ -682,3 +682,4 @@
sysadmin.lti.advantage.tool.key.id = Tool key ID
sysadmin.lti.advantage.tool.public.key = Public key
sysadmin.lti.advantage.tool.private.key = Private key
+sysadmin.add.staff.to.all.lessons = On staff login add them to all lessons in course
\ No newline at end of file
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/ExtServerForm.java
===================================================================
diff -u -rf0924238dddb80210e0e088cda5fe967f66ef979 -r1c496f87123d1d2277609837e427b77c18874a79
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/ExtServerForm.java (.../ExtServerForm.java) (revision f0924238dddb80210e0e088cda5fe967f66ef979)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/ExtServerForm.java (.../ExtServerForm.java) (revision 1c496f87123d1d2277609837e427b77c18874a79)
@@ -30,13 +30,15 @@
private String userinfoUrl;
private String extGroupsUrl;
-
+
private String logoutUrl;
-
+
private boolean timeToLiveLoginRequestEnabled = true;
private Integer timeToLiveLoginRequest = 80;
+ private boolean addStaffToAllLessons = false;
+
public String getUserinfoUrl() {
return userinfoUrl;
}
@@ -52,13 +54,13 @@
public void setExtGroupsUrl(String extGroupsUrl) {
this.extGroupsUrl = extGroupsUrl;
}
-
+
public String getLogoutUrl() {
- return logoutUrl;
+ return logoutUrl;
}
public void setLogoutUrl(String logoutUrl) {
- this.logoutUrl = logoutUrl;
+ this.logoutUrl = logoutUrl;
}
public boolean isTimeToLiveLoginRequestEnabled() {
@@ -77,4 +79,11 @@
this.timeToLiveLoginRequest = timeToLiveLoginRequest;
}
-}
+ public boolean isAddStaffToAllLessons() {
+ return addStaffToAllLessons;
+ }
+
+ public void setAddStaffToAllLessons(boolean addStaffToAllLessons) {
+ this.addStaffToAllLessons = addStaffToAllLessons;
+ }
+}
\ No newline at end of file
Index: lams_admin/web/integration/servermaintain.jsp
===================================================================
diff -u -r5f9e583fc8e476f6a5f9e1826332ba3788d7c68c -r1c496f87123d1d2277609837e427b77c18874a79
--- lams_admin/web/integration/servermaintain.jsp (.../servermaintain.jsp) (revision 5f9e583fc8e476f6a5f9e1826332ba3788d7c68c)
+++ lams_admin/web/integration/servermaintain.jsp (.../servermaintain.jsp) (revision 1c496f87123d1d2277609837e427b77c18874a79)
@@ -97,7 +97,7 @@
@@ -109,6 +109,11 @@
+
+
+
Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java
===================================================================
diff -u -r49031fe83af9c2d76636b93275a832994a13fb88 -r1c496f87123d1d2277609837e427b77c18874a79
--- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision 49031fe83af9c2d76636b93275a832994a13fb88)
+++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision 1c496f87123d1d2277609837e427b77c18874a79)
@@ -41,6 +41,7 @@
import org.lamsfoundation.lams.integration.security.RandomPasswordGenerator;
import org.lamsfoundation.lams.integration.service.IntegrationService;
import org.lamsfoundation.lams.integration.util.IntegrationConstants;
+import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.service.ILessonService;
import org.lamsfoundation.lams.security.UniversalLoginModule;
import org.lamsfoundation.lams.usermanagement.User;
@@ -169,22 +170,23 @@
userMap = integrationService.getImplicitExtUserUseridMap(extServer, extUsername, firstName, lastName,
locale, country, email, prefix, isUpdateUserDetails);
}
+ ExtCourseClassMap courseMap = null;
if (!isWorkflowAutomation && extCourseId == null && StringUtils.isNotBlank(lessonId)) {
// derive course ID from lesson ID
- ExtCourseClassMap classMap = integrationService.getExtCourseClassMap(extServer.getSid(),
- Long.parseLong(lessonId));
- if (classMap == null) {
+ courseMap = integrationService.getExtCourseClassMap(extServer.getSid(), Long.parseLong(lessonId));
+ if (courseMap == null) {
log.warn("Lesson " + lessonId + " is not mapped to any course for server "
+ extServer.getServername());
} else {
- extCourseId = classMap.getCourseid();
+ extCourseId = courseMap.getCourseid();
}
}
if (!isWorkflowAutomation && extCourseId != null) {
// check if organisation, ExtCourseClassMap and user roles exist and up-to-date, and if not update them
- integrationService.getExtCourseClassMap(extServer, userMap, extCourseId, courseName, method, prefix);
+ courseMap = integrationService.getExtCourseClassMap(extServer, userMap, extCourseId, courseName, method,
+ prefix);
}
User user = userMap.getUser();
@@ -194,15 +196,22 @@
throw new UserInfoFetchException(error);
}
- //adds users to the lesson with respective roles
- if (!isWorkflowAutomation && StringUtils.isNotBlank(lessonId)) {
- if (IntegrationConstants.METHOD_LEARNER.equals(method)
- || IntegrationConstants.METHOD_LEARNER_STRICT_AUTHENTICATION.equals(method)) {
- lessonService.addLearner(Long.parseLong(lessonId), user.getUserId());
-
+ // adds users to the lesson with respective roles
+ Integer userId = user.getUserId();
+ if (!isWorkflowAutomation) {
+ if (StringUtils.isNotBlank(lessonId) && (IntegrationConstants.METHOD_LEARNER.equals(method)
+ || IntegrationConstants.METHOD_LEARNER_STRICT_AUTHENTICATION.equals(method))) {
+ lessonService.addLearner(Long.parseLong(lessonId), userId);
} else if (IntegrationConstants.METHOD_MONITOR.equals(method)
|| IntegrationConstants.METHOD_AUTHOR.equals(method)) {
- lessonService.addStaffMember(Long.parseLong(lessonId), user.getUserId());
+ if (extServer.isAddStaffToAllLessons() && courseMap != null) {
+ // add staff to all lessons
+ for (Lesson lesson : courseMap.getOrganisation().getLessons()) {
+ lessonService.addStaffMember(lesson.getLessonId(), userId);
+ }
+ } else if (StringUtils.isNotBlank(lessonId)) {
+ lessonService.addStaffMember(Long.parseLong(lessonId), userId);
+ }
}
}
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20220210.sql
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20220210.sql (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20220210.sql (revision 1c496f87123d1d2277609837e427b77c18874a79)
@@ -0,0 +1,15 @@
+-- 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-5286
+
+ALTER TABLE lams_ext_server_org_map ADD COLUMN add_staff_to_all_lessons TINYINT NOT NULL DEFAULT 0 AFTER time_to_live_login_request_enabled;
+
+-- 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/integration/ExtServer.java
===================================================================
diff -u -rca67d3227c5ace010da9afa104645a86c50a004f -r1c496f87123d1d2277609837e427b77c18874a79
--- lams_common/src/java/org/lamsfoundation/lams/integration/ExtServer.java (.../ExtServer.java) (revision ca67d3227c5ace010da9afa104645a86c50a004f)
+++ lams_common/src/java/org/lamsfoundation/lams/integration/ExtServer.java (.../ExtServer.java) (revision 1c496f87123d1d2277609837e427b77c18874a79)
@@ -79,6 +79,9 @@
@Column(name = "time_to_live_login_request")
private int timeToLiveLoginRequest;
+ @Column(name = "add_staff_to_all_lessons")
+ private boolean addStaffToAllLessons;
+
@Column(name = "learner_presence_avail")
private Boolean learnerPresenceAvailable;
@@ -196,6 +199,7 @@
toolReregistrationEnabled = true;
useCoursePrefix = true;
userRegistrationEnabled = true;
+ addStaffToAllLessons = false;
}
public Integer getSid() {
@@ -321,6 +325,14 @@
this.timeToLiveLoginRequest = timeToLiveLoginRequest;
}
+ public boolean isAddStaffToAllLessons() {
+ return addStaffToAllLessons;
+ }
+
+ public void setAddStaffToAllLessons(boolean addStaffToAllLessons) {
+ this.addStaffToAllLessons = addStaffToAllLessons;
+ }
+
public Set getExtCourseClassMaps() {
return this.extCourseClassMaps;
}