diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index a09096cc6..00b346970 100755 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -71,6 +71,7 @@ screen.message.modal.access.opt.feedback=If the error persists please refer to o # Modal Add screen.message.modal.add.deptAccount=One or more departmental accounts are being added. +screen.message.modal.add.deptAccount.admin=Departmental accounts cannot be assigned as admins. screen.message.modal.add.fail=There was an error adding: screen.message.modal.add.ensureValid=Please ensure you have entered a valid UH member and try again. screen.message.modal.add.empty=You must enter a UH member to add or remove. diff --git a/src/main/resources/static/javascript/mainApp/admin.controller.js b/src/main/resources/static/javascript/mainApp/admin.controller.js index 8a25f45df..3c110a4c3 100755 --- a/src/main/resources/static/javascript/mainApp/admin.controller.js +++ b/src/main/resources/static/javascript/mainApp/admin.controller.js @@ -260,6 +260,12 @@ } groupingsService.getMemberAttributeResults([sanitizedAdmin], (res) => { + // Prevent departmental accounts from being added as admins + $scope.isDeptAccount = $scope.checkForDeptAccount(res.results); + if ($scope.isDeptAccount) { + $scope.containsDeptAcc = true; + return; + } $scope.displayAddModal({ membersAttributes: res, uhIdentifiers: sanitizedAdmin, diff --git a/src/main/resources/static/javascript/mainApp/general.controller.js b/src/main/resources/static/javascript/mainApp/general.controller.js index 031c49fb0..c24c3591c 100755 --- a/src/main/resources/static/javascript/mainApp/general.controller.js +++ b/src/main/resources/static/javascript/mainApp/general.controller.js @@ -149,6 +149,7 @@ $scope.emptySelect = false; $scope.containsInput = false; $scope.invalidInput = false; + $scope.containsDeptAcc = false; $scope.addInputError = false; $scope.removeInputError = false; }; @@ -295,6 +296,17 @@ }); }; + /** + * Checks if a member is a departmental account + * A departmental account is characterized by having the same uid as its uhUuid, or having a blank uhUuid + * @param {object[]} membersToAdd - members to add to a group or admin + * @returns {boolean} - True if a member is a departmental account + */ + $scope.checkForDeptAccount = (membersToAdd) => { + return membersToAdd.some(member => + member['uid'] === member['uhUuid'] || member['uhUuid'] === "" + ); + } } UHGroupingsApp.controller("GeneralJsController", GeneralJsController); diff --git a/src/main/resources/static/javascript/mainApp/grouping.controller.js b/src/main/resources/static/javascript/mainApp/grouping.controller.js index fc701238c..b1ab9f747 100644 --- a/src/main/resources/static/javascript/mainApp/grouping.controller.js +++ b/src/main/resources/static/javascript/mainApp/grouping.controller.js @@ -1836,19 +1836,6 @@ $scope.excludeDisable = true; } }; - - /** - * Helper - addMembers, displayAddModal - * Checks if a member is a departmental account - * A departmental account is characterized by having the same uid as its uhUuid, or having a blank uhUuid - * @param {object[]} membersToAdd - members to add to group - * @returns {boolean} - True if a member is a departmental account - */ - $scope.checkForDeptAccount = (membersToAdd) => { - return membersToAdd.some(member => - member['uid'] === member['uhUuid'] || member['uhUuid'] === "" - ); - } } function SyncDestModalController($scope, $uibModalInstance, isSynced, syncDestDescription, Message) { diff --git a/src/main/resources/templates/fragments/admin-error-messages.html b/src/main/resources/templates/fragments/admin-error-messages.html index 36e347c87..daad05e37 100644 --- a/src/main/resources/templates/fragments/admin-error-messages.html +++ b/src/main/resources/templates/fragments/admin-error-messages.html @@ -20,6 +20,12 @@ role="alert">
+ +