diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d4f2b091f576a7d7468c6aa83bd41a628dcec83..ed1a511c7c79361d9d1f511cd74968a539fc8d76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * `form_elements.make_form_modal` and `form_elements.make_scripting_submission_button` functions to create a form modal and an SSS submission button, respectively. +* `BUILD_MODULE_EXT_ENTITY_ACL_USER_MANAGEMENT_BUTTON` build variable with which + a button to the user management is added to the navbar for users with role + administration if `BUILD_MODULE_EXT_ENTITY_ACL=ENABLED`. ### Changed (for changes in existing functionality) diff --git a/src/core/js/ext_entity_acl.js b/src/core/js/ext_entity_acl.js index ce6d4160afefffa11a346804a565f832a0aca84e..9fef31fac6f4ff27a4da12f4019d49b0e258f87d 100644 --- a/src/core/js/ext_entity_acl.js +++ b/src/core/js/ext_entity_acl.js @@ -32,10 +32,15 @@ * * BUILD_MODULE_EXT_ENTITY_ACL_URI_ROOT=[scheme://host:port]/what/evs * + * Enable/disable the creation of a user-management link that is shown to + * administrators with + * + * BUILD_MODULE_EXT_ENTITY_ACL_USER_MANAGEMENT_BUTTON=ENABLED + * * * @author Timm Fitschen */ -var ext_entity_acl = function ($, connection, getEntityVersion, getEntityID, logger) { +var ext_entity_acl = function ($, connection, getEntityVersion, getEntityID, logger, navbar, userIsAdministrator) { const BUILD_MODULE_EXT_ENTITY_ACL_URI_ROOT = connection.getBasePath() + "webinterface/acm/entityacl/"; const _buttons_list_class = "caosdb-v-entity-header-buttons-list"; @@ -69,6 +74,14 @@ var ext_entity_acl = function ($, connection, getEntityVersion, getEntityID, log $(entity).find(`.${_buttons_list_class} .${_entity_acl_link_class}`).remove(); } + var showUserManagementLink = function () { + if (userIsAdministrator()) { + navbar.add_button($('<a class="nav-link" href="/webinterface/acm/">User Administration</a>')[0], { + title: "Go to user administration" + }); + } + } + var _init = function () { for (let entity of $(".caosdb-entity-panel")) { remove_entity_acl_link(entity); @@ -82,6 +95,10 @@ var ext_entity_acl = function ($, connection, getEntityVersion, getEntityID, log * Removes all respective buttons if present before adding a new one. */ var init = function () { + if ("${BUILD_MODULE_EXT_ENTITY_ACL_USER_MANAGEMENT_BUTTON}" == "ENABLED") { + showUserManagementLink(); + } + _init(); // edit-mode-listener @@ -95,7 +112,7 @@ var ext_entity_acl = function ($, connection, getEntityVersion, getEntityID, log init: init }; -}($, connection, getEntityVersion, getEntityID, log.getLogger("ext_entity_acl")); +}($, connection, getEntityVersion, getEntityID, log.getLogger("ext_entity_acl"), navbar, userIsAdministrator); $(document).ready(function () { if ("${BUILD_MODULE_EXT_ENTITY_ACL}" == "ENABLED") {