Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/CleanupPreviewLessonsController.java =================================================================== diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/CleanupPreviewLessonsController.java (.../CleanupPreviewLessonsController.java) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/CleanupPreviewLessonsController.java (.../CleanupPreviewLessonsController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -68,7 +68,7 @@ @RequestMapping(path = "/start") public String unspecified(HttpServletRequest request, HttpServletResponse response) throws IOException { - if (!securityService.isAppadmin(getUserID(), "display cleanup preview lessons", false)) { + if (!securityService.isAppadmin(getUserID(), "display cleanup preview lessons")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not an appadmin"); return null; } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/OrgManageController.java =================================================================== diff -u -r85121f2d5a0394c96ef2ad1859c22b82391279b7 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/OrgManageController.java (.../OrgManageController.java) (revision 85121f2d5a0394c96ef2ad1859c22b82391279b7) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/OrgManageController.java (.../OrgManageController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -99,7 +99,7 @@ if (!request.isUserInRole(Role.APPADMIN) && !userManagementService.isUserGlobalGroupManager() && !(isRootOrganisation ? request.isUserInRole(Role.GROUP_MANAGER) : securityService.hasOrgRole(orgId, userId, new String[] { Role.GROUP_MANAGER }, - "manage courses", false))) { + "manage courses"))) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a manager or admin in the organisation"); return null; } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/OrgPasswordChangeController.java =================================================================== diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/OrgPasswordChangeController.java (.../OrgPasswordChangeController.java) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/OrgPasswordChangeController.java (.../OrgPasswordChangeController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -114,7 +114,7 @@ UserDTO userDTO = getUserDTO(); Integer currentUserId = userDTO.getUserID(); - if (!securityService.isAppadmin(currentUserId, "get grid users for org password change", false)) { + if (!securityService.isAppadmin(currentUserId, "get grid users for org password change")) { String warning = "User " + currentUserId + " is not an appadmin"; log.warn(warning); response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); @@ -178,7 +178,7 @@ UserDTO userDTO = getUserDTO(); Integer currentUserId = userDTO.getUserID(); // security check - if (!securityService.isAppadmin(currentUserId, "org password change", false)) { + if (!securityService.isAppadmin(currentUserId, "org password change")) { String warning = "User " + currentUserId + " is not an appadmin"; log.warn(warning); response.sendError(HttpServletResponse.SC_FORBIDDEN, warning); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/OrganisationController.java =================================================================== diff -u -rc7c5d74f9c402bdab97bd3fd46436adbfa9202b8 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/OrganisationController.java (.../OrganisationController.java) (revision c7c5d74f9c402bdab97bd3fd46436adbfa9202b8) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/OrganisationController.java (.../OrganisationController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -169,7 +169,7 @@ @RequestMapping(path = "/deleteAllLessonsInit") public String deleteAllLessonsInit(HttpServletRequest request, HttpServletResponse response) throws IOException { - if (!securityService.isAppadmin(getUserID(), "display cleanup preview lessons", false)) { + if (!securityService.isAppadmin(getUserID(), "display cleanup preview lessons")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not an appadmin"); return null; } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/PortraitBatchUploadController.java =================================================================== diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/PortraitBatchUploadController.java (.../PortraitBatchUploadController.java) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/PortraitBatchUploadController.java (.../PortraitBatchUploadController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -40,8 +40,6 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; /** * Looks for [login].png images in /tmp/portraits of user IDs within given range and starting with the given prefix @@ -59,7 +57,7 @@ @RequestMapping("/uploadPortraits") @ResponseBody public String execute(HttpServletRequest request, HttpServletResponse response) throws IOException { - if (!securityService.isAppadmin(getUserID(), "batch upload portraits", false)) { + if (!securityService.isAppadmin(getUserID(), "batch upload portraits")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not an appadmin"); return null; } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserSaveController.java =================================================================== diff -u -rc7c5d74f9c402bdab97bd3fd46436adbfa9202b8 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserSaveController.java (.../UserSaveController.java) (revision c7c5d74f9c402bdab97bd3fd46436adbfa9202b8) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserSaveController.java (.../UserSaveController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -302,7 +302,7 @@ Integer loggeduserId = ((UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER)).getUserID(); // check if logged in User is Appadmin - if (!securityService.isAppadmin(loggeduserId, "Change Password of User " + userId, true)) { + if (!securityService.isAppadmin(loggeduserId, "change password for user " + userId)) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "Only Appadmin has edit permisions"); return null; } Index: lams_central/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -ra13b927ed895f8e3eeaf559371262665e04ff07a -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision a13b927ed895f8e3eeaf559371262665e04ff07a) +++ lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -1134,4 +1134,4 @@ label.grouping.general.instructions.line1 = Choose a course grouping to use in this lesson or create a new one. You are working with copies, so any changes made here have no influence on the original course groupings. Grouping with zero groups are not listed here. Once a grouping is chosen, the only way to come back to the grouping list is to manually remove all groups. label.grouping.general.instructions.line2 = Place the lesson participants in their groups. Initially you can add and remove learners, but once a groups is used (that is, a participant starts an activity that uses the grouping) you will not be able to remove learners from it. Even if a group is in use you can still add learners. The changes are saved immediately. label.branching.general.instructions = Place the lesson participants in their branches. Initially you can add and remove learners, but once a participant starts one of the branches then you will not be able to remove learners from any branches. If you try to remove someone from a branch and they will not remove then check their progress - if they start using the branch while you are on this screen you will not get any errors but you will not be able to remove them from the branch. You will still be able to add learners to branches. -label.grouping.popup.viewmode.message = You are presently in group view mode. Groups can not be modified. \ No newline at end of file +label.grouping.popup.viewmode.message = You are presently in group view mode. Groups can not be modified. Index: lams_central/conf/language/lams/ApplicationResources_de_DE.properties =================================================================== diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/conf/language/lams/ApplicationResources_de_DE.properties (.../ApplicationResources_de_DE.properties) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69) +++ lams_central/conf/language/lams/ApplicationResources_de_DE.properties (.../ApplicationResources_de_DE.properties) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -234,3 +234,9 @@ advanced.tab.form.individual.not.entire.group.label = Individuel und nicht für die gesamte Gruppe label.start.lesson = Lektion starten label.qb.collection.qti = IMS QTI +label.grouping.general.instructions.heading = Allgemeine Anweisungen +label.grouping.general.instructions.line1 = Ordnen Sie die Teilnehmer/innen Gruppen zu. Zunächst können sie TN einer Gruppe zuordnen und aus dieser wieder entfernene. Ab dem Moment, in dem TN eine Gruppenaktivität begonnen ahben, können sie zwar TN noch derGruppe hinzufügen, jedoch nicht aus der Gruppe löschen. +label.grouping.general.instructions.line2 = Geben Sie zum Anlegen einer Gruppe einen Gruppennanmen ein und klicken Sie auf 'Hinzufügen'. Wiederholen Sie diesen Schritt für jede Gruppe, die Sie neu anlegen wollen. Wählen Sie nun eine Gruppe aus, markieren Sie die Teilnehmer/innen in der zweiten Spalte, die Sie der Gruppe hinzufügen wollen und klicken Sie auf 'Ausgewählte zur Gruppe hinzufügen'. Um Teilnehmer/innen wieder aus einer Gruppe zu entfernen, klicken siesie in der driten Splate an und wählen Sie 'Entfernen'. Die Änderungen werden gespeichert wenn Sie einen der Buttons anklicken. +label.grouping.general.instructions.branching = Diese Gruppenaktivität benutzt Verzweigungen. Gruppen können daher nicht hinzugefügt oder gelöscht werden. Trotzdem können Teilnehmer zu den Gruppen hinzugefügt werden. Ziehen Sie die Namen der Teilnehmer einfach in den passenden Gruppenchanlle. Die Änderungen werden mit sofortiger Wirkung gespeichert. +label.branching.general.instructions = Ordnet Nutzer ihren Zweigen zu. Zunächst können Sie Nutzer hinzufügen und wieder löschen. Wenn ein Nutzer jedoch im Zweig begonnen hat, ist für alle Nutzer aller Zweige eine Veränderung gesperrt. Falls Sie jemanden nichta us einem zweig löschen können, prüfen Sie den Bearbeitungsstand für diese Person. Wenn eine person die Bearbeitung beginnt während Sie diesen Bildschirm bearbeiten, wird Ihnen keine Fehlermeldung angezeigt. Zusätzliche Nutzer können Sie jederzeit hinzufügen. +label.grouping.popup.viewmode.message = Sie sind zur Zeit in dem Gruppen Anzeigemodus. Gruppen können nicht modifiziert werden. Index: lams_central/conf/language/lams/ApplicationResources_el_GR.properties =================================================================== diff -u -re57933d5f4b215e037a34229c3d479f707cf5156 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/conf/language/lams/ApplicationResources_el_GR.properties (.../ApplicationResources_el_GR.properties) (revision e57933d5f4b215e037a34229c3d479f707cf5156) +++ lams_central/conf/language/lams/ApplicationResources_el_GR.properties (.../ApplicationResources_el_GR.properties) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -1123,3 +1123,9 @@ label.vsa.allocate.button = Εκχώρηση VSAs label.vsa.allocate.description = Κατανομή των απαντήσεων των εκπαιδευόμενων με σύρσιμο και απόθεση των σωστών επιλογών signup.email.verify.subject = LAMS επιβεβαιώστε τη διεύθυνση ηλεκτρονικού ταχυδρομείου +label.grouping.general.instructions.heading = Γενικές Οδηγίες +label.grouping.general.instructions.line1 = Παρακαλώ, τοποθετήστε τους συμμετέχοντες του μαθήματος στις ομάδες που θέλετε. Αρχικά μπορείτε να προσθέσετε και να απομακρύνετε εκπαιδευόμενους, αλλά μόλις χρησιμοποιηθεί η ομαδοποίηση (δηλαδή ένας εκπαιδευόμενος αρχίσει μια δραστηριότητα που χρησιμοποιεί την ομαδοποίηση) δεν θα μπορείτε να αλλάξετε τις ομάδες. Εάν προσπαθήσετε να απομακρύνετε κάποιον από μια ομάδα και δεν θα αφαιρεθεί ο έλεγχος της προόδου του - εάν αρχίσουν την ομάδα ενώ είστε σε αυτήν την οθόνη - δεν θα πάρετε οποιαδήποτε λάθη αλλά δεν θα είστε σε θέση να τους αφαιρέσετε από την ομάδα τους. Θα είστε σε θέση να προσθέσετε χρήστες στις ομάδες. +label.grouping.general.instructions.line2 = Για να δημιουργήσετε μια ομάδα, πληκτρολογείστε ένα όνομα ομάδας και κάντε κλικ στο Προσθήκη Ομάδας. Επαναλάβετε όπως απαιτείται. Επιλέξτε μια ομάδα, και επιλέξτε τους σπουδαστές από τη Στήλη 2 και τον κάντε κλικ στο Προσθήκη επιλεγμένων στην ομάδα.. Επιλέξτε τους σπουδαστές στη Στήλη 3 και κάντε κλικ στο Απομάκρυνση επιλεγμένων μελών από την ομάδα για να τους αφαιρέσει την ιδιότητα μέλους της ομάδας. Οι αλλαγές αποθηκεύονται όταν κάντε κλικ σε οποιοδήποτε από τα κουμπιά. +label.grouping.general.instructions.branching = Αυτή η δραστηριότητα ομαδοποίησης χρησιμοποιείται για τη διακλάδωση. Οι ομάδες δεν μπορούν επομένως να προστεθούν ή να διαγραφούν. Εντούτοις, μπορούν ακόμη να συμπεριληφθούν εκπαιδεύομενοι στις ομάδες. Σύρετε απλά τα ονόματά τους στο τμήμα της κατάλληλης ομάδας. Οι αλλαγές αποθηκεύονται αμέσως. +label.branching.general.instructions = Τοποθετήστε τους συμμετέχοντες του μαθήματος στους κλάδους που θέλετε. Αρχικά μπορείτε να προσθέσετε και να απομακρύνετε εκπαιδευόμενους, αλλά μόλις αρχίσει ένας εκπαιδευόμενος να εκπονεί την πρώτη δραστηριότητα του κλάδου που τον τοποθετήσατε, δεν θα μπορείτε να αλλάξετε κάτι σε οποιοδήποτε κλάδο. Εάν προσπαθήσετε να απομακρύνετε κάποιον συμμετέχοντα από έναν κλάδο και δεν μπορείτε ελέγξτε την πρόοδό του - μήπως ήδη έχει αρχίσει να χρησιμοποιεί τον κλάδο ενώ είστε σε αυτήν την οθόνη οπότε και δεν θα έχετε πάρετε οποιαδήποτε ένδειξη λάθους, ούτε θα μπορετε να αφαιρέσετε εκπαιδευόμενους από αυτό τον κλάδο. Μπορείτε μόνο να προσθέσετε εκπαιδευόμενους στους κλάδους. +label.grouping.popup.viewmode.message = Αυτή τη στιγμή είστε σε λειτουργία Προβολής Ομάδας. Οι ομάδες δεν μπορούν να τροποποιηθούν. Index: lams_central/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r3f3f34c22194aeaf302e1fd332925dffd35019aa -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 3f3f34c22194aeaf302e1fd332925dffd35019aa) +++ lams_central/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -1130,3 +1130,9 @@ label.qb.advanced.search.same.ld.tip = Show only questions which were already used in this sequence's activities. label.authoring.short.answer.exact.match = Learner answer must exactly match expected answer signup.email.verify.subject = LAMS confirm email address +label.grouping.general.instructions.heading = General instructions: +label.grouping.general.instructions.line1 = Choose a course grouping to use in this lesson or create a new one. You are working with copies, so any changes made here have no influence on the original course groupings. Grouping with zero groups are not listed here. Once a grouping is chosen, the only way to come back to the grouping list is to manually remove all groups. +label.grouping.general.instructions.line2 = Place the lesson participants in their groups. Initially you can add and remove learners, but once a groups is used (that is, a participant starts an activity that uses the grouping) you will not be able to remove learners from it. Even if a group is in use you can still add learners. The changes are saved immediately. +label.grouping.general.instructions.branching = This grouping activity is used for branching. Groups can therefore not be added or deleted. +label.branching.general.instructions = Place the lesson participants in their branches. Initially you can add and remove learners, but once a participant starts one of the branches then you will not be able to remove learners from any branches. If you try to remove someone from a branch and they will not remove then check their progress - if they start using the branch while you are on this screen you will not get any errors but you will not be able to remove them from the branch. You will still be able to add learners to branches. +label.grouping.popup.viewmode.message = You are presently in group view mode. Groups can not be modified. Index: lams_central/conf/language/lams/ApplicationResources_es_ES.properties =================================================================== diff -u -r3f3f34c22194aeaf302e1fd332925dffd35019aa -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/conf/language/lams/ApplicationResources_es_ES.properties (.../ApplicationResources_es_ES.properties) (revision 3f3f34c22194aeaf302e1fd332925dffd35019aa) +++ lams_central/conf/language/lams/ApplicationResources_es_ES.properties (.../ApplicationResources_es_ES.properties) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -1130,3 +1130,9 @@ label.qb.advanced.search.same.ld.tip = Muestre solo las preguntas que ya se usaron en las actividades de esta secuencia. label.authoring.short.answer.exact.match = La respuesta del alumno debe coincidir exactamente con la respuesta esperada. signup.email.verify.subject = [LAMS] Confirmación de correo electrónico +label.grouping.general.instructions.heading = Instrucciones Generales +label.grouping.general.instructions.line1 = Ponga a los estudiantes en sus grupos. Inicialmente usted puede agregar o eliminar estudiantes, pero una ves estos grupos han sido usados (cuando el estudiante empiece una actividad que utilice estos grupos) no podrá eliminar estudiantes de sus grupos. +label.grouping.general.instructions.line2 = Para crear un grupo, simplemente presione el botón de "+". Para remover un grupo en el botón de "'-". Para asignar estudiantes a grupos, tome el nombre del estudiante y arrástrelo al grupo deseado. Los cambios serán guardados ni bien se realicen. +label.grouping.general.instructions.branching = Esta actividad de grupo se utiliza en una o más ramificaciones. Por lo tanto los grupos no se pueden modificar o borrar. Sin embargo, estudiantes pueden ser asignados a grupos. Para realizar esto, simplemente tome el nombre del estudiante y superponga el mismo sobre el grupo a asignarlo. Los cambios serán guardados inmediatamente. +label.branching.general.instructions = Coloque a los estudiantes en sus respectivas ramas. Inicialmente puedes añadir y eliminar estudiantes, pero una vez que el estudiante comience una de las ramas, no podrá cambiar de rama. Si intentas eliminar a alguien de una rama y no se elimina, verifique su progreso. Se podrá añadir grupos a las ramificaciones +label.grouping.popup.viewmode.message = Viendo grupos. La asignación de estudiantes a grupos no se puede modificar. Index: lams_central/conf/language/lams/ApplicationResources_fr_FR.properties =================================================================== diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/conf/language/lams/ApplicationResources_fr_FR.properties (.../ApplicationResources_fr_FR.properties) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69) +++ lams_central/conf/language/lams/ApplicationResources_fr_FR.properties (.../ApplicationResources_fr_FR.properties) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -318,3 +318,9 @@ label.tab.conditions.timelimit.desc = Définissez le nombre de jours où la leçon sera disponible pour les apprenants. Après cette période, la leçon ne sera plus affichée. Si le temps devrait compter à partir du moment où l'apprenant commence la leçon, sélectionnez l'option . label.tab.conditions.timelimit.days = Nombre de jours: label.qb.collection.qti = IMS QTI +label.grouping.general.instructions.heading = Instructions générales: +label.grouping.general.instructions.line1 = Veuillez répartir les participants à la leçon dans leurs groupes. Initialement, vous pouvez ajouter et supprimer des utilisateurs, mais une fois le regroupement effectué (c-a-d qu'un participant commence une activité par groupes), il sera impossible de supprimer des utilisateurs des groupes. Si vous essayez de supprimer une personne d'un groupe et que cela semble impossible, veuillez consulter leur progression - si elles commencent à utiliser le groupe au moment même où vous vous trouvez sur cette écran, il n'y aura pas de message d'erreur mais vous ne pourrez pas les supprimer. Vous pourrez cependant continuer à ajouter de nouveaux membres aux groupes. +label.grouping.general.instructions.line2 = Pour créer un groupe, cliquez simplement sur le bouton "+" dans les fonctions de groupe. Pour supprimer un groupe, cliquez sur le bouton "-" soit sur le panneau de groupe lui-même ou dans les fonctions de groupe (supprime le dernier groupe ajouté). Répéter au besoin. Pour attribuer les apprenants à des groupes, faites simplement glisser leur nom dans le panneau du groupe approprié. Les modifications sont enregistrées immédiatement. +label.grouping.general.instructions.branching = Cette activité de constitution de groupes est utilisé pour un branchement. Vous ne pouvez pas ajouter ou supprimer des groupes. Toutefois, les apprenants peuvent encore être attribuées à des groupes. Pour ce faire, faites simplement glisser leur nom dans le panneau du groupe approprié. Les modifications sont enregistrées immédiatement. +label.branching.general.instructions = Placez les participants à la leçon dans leurs branches. Préalablement, vous pouvez ajouter et supprimer des utilisateurs.
Toutefois, une fois que l'un d'eux aura commencé une branche, vous ne pourrez plus supprimer aucun utilisateur d'aucune branche. Si vous essayez de supprimer quelqu'un d'une branche et qu'il ne s'efface pas, vérifiez la progression de l'ensemble. Si un membre a commencé à utiliser la branche pendant que vous utilisiez cette écran, il n'y aura aucune erreur mais vous ne serez pas autoriser à enlever quelqu'un de cette branche. Vous pourrez toujours ajouter des utilisateurs aux branches. +label.grouping.popup.viewmode.message = Vous êtes actuellement en mode de vue du groupe. Les groupes ne peuvent pas être modifiés. Index: lams_central/conf/language/lams/ApplicationResources_no_NO.properties =================================================================== diff -u -r3f3f34c22194aeaf302e1fd332925dffd35019aa -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/conf/language/lams/ApplicationResources_no_NO.properties (.../ApplicationResources_no_NO.properties) (revision 3f3f34c22194aeaf302e1fd332925dffd35019aa) +++ lams_central/conf/language/lams/ApplicationResources_no_NO.properties (.../ApplicationResources_no_NO.properties) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -1130,3 +1130,9 @@ label.qb.advanced.search.same.ld.tip = Vis kun spørsmål som allerede ble brukt i denne sekvensens aktiviteter. label.authoring.short.answer.exact.match = Elevens svar må samsvare nøyaktig med forventet svar signup.email.verify.subject = LAMS bekrefte e-postadresse +label.grouping.general.instructions.heading = Generell informasjon: +label.grouping.general.instructions.line1 = Velg en kurs gruppe for å bruke i denne leksjonen eller opprett en ny. Du jobber med kopier, så de endringer som gjøres her, har ingen innflytelse på de opprinnelige gruppene. Gruppering med null-grupper er ikke oppført her. Når en gruppering er valgt, er den eneste måten å komme tilbake til listen over grupper, er å manuelt fjerne alle gruppene. +label.grouping.general.instructions.line2 = Legg leksjonens deltakere i gruppene sine. I utgangspunktet kan du legge til og fjerne studentene, men når en gruppe er brukt (det vil si en deltaker starter en aktivitet som bruker gruppen), vil du ikke kunne fjerne studenter fra den. Selv om en gruppe er i bruk, kan du fortsatt legge til studenter. Endringene lagres umiddelbart. +label.grouping.general.instructions.branching = Denne gruppe aktiviteten benyttes til forgrening. Grupper kan derfor ikke legges til eller fjernes. Derimot kan studenter bli tilordnet til en gruppe. For å gjøre dette, trekk navnet inn i det aktelle gruppe panelet. Endringen lagres umiddelbart. +label.branching.general.instructions = Legg deltagerne i leksjonen til forgreningene. Du kan legge til og fjerne brukere, men så snart en student begynner i en forgrening så kan du ikke fjerne studenter fra forgreningene. Hvis du forsøker å fjerne noen fra en forgrening, så kontroller fremdriften deres i leksjonen--- hvis de har påbegynt en forgrening mens du arbeider med dette skjermbildet, så vil du ikke få noen filmelding og du får ikke fjernet dem fra forgreningen. Du kan fremdeles tilføye til studenter til en forgrening. +label.grouping.popup.viewmode.message = Du er nå i gruppe visnings modus. Grupper kan ikke modifiseres. Index: lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringController.java =================================================================== diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringController.java (.../AuthoringController.java) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringController.java (.../AuthoringController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -309,7 +309,7 @@ } Integer userID = getUserId(); - if (!securityService.isGroupMonitor(organisationID, userID, "create single activity lesson", false)) { + if (!securityService.isGroupMonitor(organisationID, userID, "create single activity lesson")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a monitor in the organisation"); return null; } Index: lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupController.java =================================================================== diff -u -rad80b813ce57fb0277896d5ba213d15b559af004 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupController.java (.../DisplayGroupController.java) (revision ad80b813ce57fb0277896d5ba213d15b559af004) +++ lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupController.java (.../DisplayGroupController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -88,8 +88,7 @@ if (org != null) { User user = getUser(request.getRemoteUser()); if (!securityService.hasOrgRole(orgId, user.getUserId(), - new String[] { Role.GROUP_MANAGER, Role.LEARNER, Role.MONITOR, Role.AUTHOR }, "display group", - false)) { + new String[] { Role.GROUP_MANAGER, Role.LEARNER, Role.MONITOR, Role.AUTHOR }, "display group")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "The user is not a part of the organisation"); return null; } Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeController.java =================================================================== diff -u -ra13b927ed895f8e3eeaf559371262665e04ff07a -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/src/java/org/lamsfoundation/lams/web/HomeController.java (.../HomeController.java) (revision a13b927ed895f8e3eeaf559371262665e04ff07a) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeController.java (.../HomeController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -141,7 +141,7 @@ return "errorContent"; } - if (!securityService.isLessonLearner(lessonId, user.getUserID(), "access lesson", false)) { + if (!securityService.isLessonLearner(lessonId, user.getUserID(), "access lesson")) { res.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a learner in the lesson"); return null; } @@ -257,7 +257,7 @@ public String addLesson(HttpServletRequest req, HttpServletResponse res, @RequestParam Integer organisationID) throws IOException, UserAccessDeniedException, RepositoryCheckedException { UserDTO userDTO = getUser(); - if (!securityService.isGroupMonitor(organisationID, userDTO.getUserID(), "add lesson", false)) { + if (!securityService.isGroupMonitor(organisationID, userDTO.getUserID(), "add lesson")) { res.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a monitor in the organisation"); return null; } Index: lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupController.java =================================================================== diff -u -ra13b927ed895f8e3eeaf559371262665e04ff07a -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupController.java (.../OrganisationGroupController.java) (revision a13b927ed895f8e3eeaf559371262665e04ff07a) +++ lams_central/src/java/org/lamsfoundation/lams/web/OrganisationGroupController.java (.../OrganisationGroupController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -131,7 +131,7 @@ // check if user is allowed to view and edit groupings if (!securityService.hasOrgRole(organisationId, userId, - new String[] { Role.GROUP_MANAGER, Role.MONITOR, Role.AUTHOR }, "view organisation groupings", false)) { + new String[] { Role.GROUP_MANAGER, Role.MONITOR, Role.AUTHOR }, "view organisation groupings")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a participant in the organisation"); return null; } @@ -206,7 +206,7 @@ // check if user is allowed to view and edit groups if (!securityService.hasOrgRole(organisationId, userId, - new String[] { Role.GROUP_MANAGER, Role.MONITOR, Role.AUTHOR }, "view organisation groups", false)) { + new String[] { Role.GROUP_MANAGER, Role.MONITOR, Role.AUTHOR }, "view organisation groups")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a participant in the organisation"); return null; } @@ -370,7 +370,7 @@ int organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID); // check if user is allowed to save grouping if (!securityService.hasOrgRole(organisationId, userId, new String[] { Role.GROUP_MANAGER }, - "save organisation grouping", false)) { + "save organisation grouping")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a manager or admin in the organisation"); } @@ -439,7 +439,7 @@ Integer userId = getUserDTO().getUserID(); int organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID); if (!securityService.hasOrgRole(organisationId, userId, new String[] { Role.GROUP_MANAGER }, - "remove organisation grouping", false)) { + "remove organisation grouping")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a manager or admin in the organisation"); return null; } Index: lams_central/src/java/org/lamsfoundation/lams/web/outcome/OutcomeController.java =================================================================== diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/src/java/org/lamsfoundation/lams/web/outcome/OutcomeController.java (.../OutcomeController.java) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69) +++ lams_central/src/java/org/lamsfoundation/lams/web/outcome/OutcomeController.java (.../OutcomeController.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -28,7 +28,6 @@ import java.util.Set; import javax.servlet.ServletOutputStream; -import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @@ -94,7 +93,7 @@ @RequestMapping("/outcomeManage") public String outcomeManage(HttpServletRequest request, HttpServletResponse response) throws Exception { UserDTO user = OutcomeController.getUserDTO(); - securityService.isAppadmin(user.getUserID(), "import outcomes", true); + securityService.ensureAppadmin(user.getUserID(), "import outcomes"); List outcomes = outcomeService.getOutcomes(); request.setAttribute("outcomes", outcomes); @@ -105,7 +104,7 @@ public String outcomeEdit(@ModelAttribute OutcomeForm outcomeForm, HttpServletRequest request, HttpServletResponse response) throws Exception { UserDTO user = OutcomeController.getUserDTO(); - securityService.isAppadmin(user.getUserID(), "import outcomes", true); + securityService.ensureAppadmin(user.getUserID(), "import outcomes"); Long outcomeId = WebUtil.readLongParam(request, "outcomeId", true); Outcome outcome = outcomeId == null ? null : (Outcome) userManagementService.findById(Outcome.class, outcomeId); @@ -177,7 +176,7 @@ @RequestMapping(path = "/outcomeRemove", method = RequestMethod.POST) public String outcomeRemove(HttpServletRequest request, HttpServletResponse response) throws Exception { UserDTO user = OutcomeController.getUserDTO(); - securityService.isAppadmin(user.getUserID(), "import outcomes", true); + securityService.ensureAppadmin(user.getUserID(), "import outcomes"); Long outcomeId = WebUtil.readLongParam(request, "outcomeId", false); Outcome outcome = (Outcome) userManagementService.findById(Outcome.class, outcomeId); @@ -330,7 +329,7 @@ lessonId = lessonService.getLessonByToolContentId(outcomeMapping.getToolContentId()).getLessonId(); } Integer userId = OutcomeController.getUserDTO().getUserID(); - securityService.isLessonMonitor(lessonId, userId, "set outcome result", true); + securityService.ensureLessonMonitor(lessonId, userId, "set outcome result"); OutcomeResult result = outcomeService.getOutcomeResult(userId, mappingId); if (result == null) { @@ -380,7 +379,7 @@ @RequestMapping("/outcomeExport") public void outcomeExport(HttpServletRequest request, HttpServletResponse response) throws Exception { UserDTO user = OutcomeController.getUserDTO(); - securityService.isAppadmin(user.getUserID(), "export outcomes", true); + securityService.ensureAppadmin(user.getUserID(), "export outcomes"); List sheets = outcomeService.exportOutcomes(); @@ -402,7 +401,7 @@ public String outcomeImport(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception { UserDTO user = OutcomeController.getUserDTO(); - securityService.isAppadmin(user.getUserID(), "import outcomes", true); + securityService.ensureAppadmin(user.getUserID(), "import outcomes"); try { int importCount = outcomeService.importOutcomes(file); @@ -550,7 +549,7 @@ @RequestMapping("/scaleExport") public void scaleExport(HttpServletRequest request, HttpServletResponse response) throws Exception { UserDTO user = OutcomeController.getUserDTO(); - securityService.isAppadmin(user.getUserID(), "export outcome scales", true); + securityService.ensureAppadmin(user.getUserID(), "export outcome scales"); List sheets = outcomeService.exportScales(); @@ -572,7 +571,7 @@ public String scaleImport(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception { UserDTO user = OutcomeController.getUserDTO(); - securityService.isAppadmin(user.getUserID(), "import outcome scales", true); + securityService.ensureAppadmin(user.getUserID(), "import outcome scales"); try { int importCount = outcomeService.importScales(file); Index: lams_central/src/java/org/lamsfoundation/lams/webservice/UserRoleServlet.java =================================================================== diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/src/java/org/lamsfoundation/lams/webservice/UserRoleServlet.java (.../UserRoleServlet.java) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/UserRoleServlet.java (.../UserRoleServlet.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -69,7 +69,7 @@ return; } ExtUserUseridMap appadminUserMap = integrationService.getExtUserUseridMap(extServer, username); - if (!securityService.isAppadmin(appadminUserMap.getUser().getUserId(), "set user role", false)) { + if (!securityService.isAppadmin(appadminUserMap.getUser().getUserId(), "set user role")) { log.error("Appadmin role check failed while trying to set role for user: " + targetUsername); response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Authentication failed, user is not appadmin"); return; Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java =================================================================== diff -u -r5b9f590b301c276f8df06b30c26981b0eb634e69 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 5b9f590b301c276f8df06b30c26981b0eb634e69) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -24,10 +24,12 @@ package org.lamsfoundation.lams.workspace.service; import java.io.IOException; +import java.text.DateFormat; import java.util.Collections; import java.util.Date; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.Vector; import java.util.regex.Pattern; @@ -50,6 +52,7 @@ import org.lamsfoundation.lams.usermanagement.exception.UserException; import org.lamsfoundation.lams.usermanagement.exception.WorkspaceFolderException; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.workspace.WorkspaceFolderContent; @@ -171,7 +174,7 @@ * @throws IOException */ private void deleteFolder(Integer folderID, Integer userID) throws IOException { - WorkspaceFolder workspaceFolder = (WorkspaceFolder) baseDAO.find(WorkspaceFolder.class, folderID); + WorkspaceFolder workspaceFolder = baseDAO.find(WorkspaceFolder.class, folderID); User user = (User) userMgmtService.findById(User.class, userID); deleteFolder(workspaceFolder, user, isSysAuthorAdmin(user)); } @@ -244,20 +247,20 @@ @Override public WorkspaceFolder getWorkspaceFolder(Integer workspaceFolderID) { - return (WorkspaceFolder) baseDAO.find(WorkspaceFolder.class, workspaceFolderID); + return baseDAO.find(WorkspaceFolder.class, workspaceFolderID); } @Override public Vector getFolderContentsExcludeHome(Integer userID, WorkspaceFolder folder, Integer mode) throws UserAccessDeniedException, RepositoryCheckedException { - User user = (User) baseDAO.find(User.class, userID); + User user = baseDAO.find(User.class, userID); return getFolderContentsInternal(user, folder, mode, "getFolderContentsExcludeHome", user.getWorkspaceFolder()); } @Override public Vector getFolderContents(Integer userID, WorkspaceFolder folder, Integer mode) throws UserAccessDeniedException, RepositoryCheckedException { - User user = (User) baseDAO.find(User.class, userID); + User user = baseDAO.find(User.class, userID); return getFolderContentsInternal(user, folder, mode, "getFolderContents", null); } @@ -392,7 +395,7 @@ Collections.sort(folderContents); } - User user = (User) baseDAO.find(User.class, userID); + User user = baseDAO.find(User.class, userID); // fill JSON object with folders and LDs for (FolderContentDTO folderContent : folderContents) { @@ -423,6 +426,8 @@ learningDesignJSON.put("learningDesignId", folderContent.getResourceID()); JsonUtil.putOpt(learningDesignJSON, "type", folderContent.getDesignType()); learningDesignJSON.put("date", folderContent.getLastModifiedDateTime().toString()); + learningDesignJSON.put("formattedDate", DateUtil.convertToStringForJSON( + folderContent.getLastModifiedDateTime(), DateFormat.SHORT, Locale.getDefault())); learningDesignJSON.put("canModify", WorkspaceFolder.OWNER_ACCESS.equals(folderContent.getPermissionCode()) || ((user != null) && isSysAuthorAdmin(user))); @@ -623,7 +628,7 @@ public void copyFolder(Integer folderID, Integer targetFolderID, Integer userID) throws IOException, WorkspaceFolderException, LearningDesignException, UserAccessDeniedException, UserException { if (isUserAuthorizedToModifyFolderContents(targetFolderID, userID)) { - WorkspaceFolder workspaceFolder = (WorkspaceFolder) baseDAO.find(WorkspaceFolder.class, folderID); + WorkspaceFolder workspaceFolder = baseDAO.find(WorkspaceFolder.class, folderID); if (workspaceFolder != null) { WorkspaceFolder newFolder = createFolder(targetFolderID, workspaceFolder.getName(), userID); copyRootContent(workspaceFolder, newFolder, userID); @@ -654,9 +659,9 @@ @Override public boolean isUserAuthorizedToModifyFolderContents(Integer folderID, Integer userID) throws UserException, WorkspaceFolderException { - User user = (User) baseDAO.find(User.class, userID); + User user = baseDAO.find(User.class, userID); if (user != null) { - WorkspaceFolder targetParent = (WorkspaceFolder) baseDAO.find(WorkspaceFolder.class, folderID); + WorkspaceFolder targetParent = baseDAO.find(WorkspaceFolder.class, folderID); if (targetParent != null) { Integer permissions = getPermissions(targetParent, user); return !permissions.equals(WorkspaceFolder.NO_ACCESS) @@ -671,7 +676,7 @@ public void copyRootContent(WorkspaceFolder workspaceFolder, WorkspaceFolder targetWorkspaceFolder, Integer userID) throws UserException, LearningDesignException, UserAccessDeniedException, WorkspaceFolderException { - User user = (User) baseDAO.find(User.class, userID); + User user = baseDAO.find(User.class, userID); if (user == null) { throw new UserException(messageService.getMessage("no.such.user", new Object[] { userID })); } @@ -690,7 +695,7 @@ @Override public WorkspaceFolder createFolder(Integer parentFolderID, String name, Integer userID) throws UserException, WorkspaceFolderException { - WorkspaceFolder parentFolder = (WorkspaceFolder) baseDAO.find(WorkspaceFolder.class, parentFolderID); + WorkspaceFolder parentFolder = baseDAO.find(WorkspaceFolder.class, parentFolderID); if (parentFolder != null) { @@ -708,7 +713,7 @@ Integer newWorkspaceFolderType = parentFolder.getWorkspaceFolderType().equals( WorkspaceFolder.PUBLIC_SEQUENCES) ? WorkspaceFolder.PUBLIC_SEQUENCES : WorkspaceFolder.NORMAL; - User user = (User) baseDAO.find(User.class, userID); + User user = baseDAO.find(User.class, userID); if (user != null) { WorkspaceFolder workspaceFolder = new WorkspaceFolder(name, parentFolder, userID, new Date(), new Date(), newWorkspaceFolderType); @@ -775,7 +780,7 @@ * @throws IOException */ private void deleteLearningDesign(Long learningDesignID, Integer userID) throws IOException { - User user = (User) baseDAO.find(User.class, userID); + User user = baseDAO.find(User.class, userID); if (user == null) { throw new IOException("User could not be found, ID: " + userID); } @@ -803,8 +808,7 @@ * @throws Exception */ private void deleteWorkspaceFolderContent(Long folderContentID) throws IOException { - WorkspaceFolderContent workspaceFolderContent = (WorkspaceFolderContent) baseDAO - .find(WorkspaceFolderContent.class, folderContentID); + WorkspaceFolderContent workspaceFolderContent = baseDAO.find(WorkspaceFolderContent.class, folderContentID); if (workspaceFolderContent != null) { baseDAO.delete(workspaceFolderContent); } @@ -889,7 +893,7 @@ */ @Override public FolderContentDTO getUserWorkspaceFolder(Integer userID) throws IOException { - User user = (User) baseDAO.find(User.class, userID); + User user = baseDAO.find(User.class, userID); if (user != null) { WorkspaceFolder workspaceFolder = user.getWorkspaceFolder(); @@ -913,7 +917,7 @@ */ @Override public FolderContentDTO getPublicWorkspaceFolder(Integer userID) throws IOException { - User user = (User) baseDAO.find(User.class, userID); + User user = baseDAO.find(User.class, userID); if (user != null) { WorkspaceFolder publicFolder = null; @@ -985,7 +989,7 @@ */ public void renameWorkspaceFolder(Integer workspaceFolderID, String newName, Integer userID) throws IOException, UserException, WorkspaceFolderException { - WorkspaceFolder folder = (WorkspaceFolder) baseDAO.find(WorkspaceFolder.class, workspaceFolderID); + WorkspaceFolder folder = baseDAO.find(WorkspaceFolder.class, workspaceFolderID); if (folder != null) { WorkspaceFolder parent = folder.getParentWorkspaceFolder(); if ((parent != null) && isUserAuthorizedToModifyFolderContents(workspaceFolderID, userID)) { Index: lams_central/web/authoring/authoring.jsp =================================================================== diff -u -r50ec98b952706c4943a826a2a5e796ec956e02d8 -ra40a77e307317e8038ed9e6b8699c18386286497 --- lams_central/web/authoring/authoring.jsp (.../authoring.jsp) (revision 50ec98b952706c4943a826a2a5e796ec956e02d8) +++ lams_central/web/authoring/authoring.jsp (.../authoring.jsp) (revision a40a77e307317e8038ed9e6b8699c18386286497) @@ -547,8 +547,9 @@ + -