graphdb-workbench 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/10.f63a9f9189528238aa8f.bundle.js +2 -0
- package/dist/10.f63a9f9189528238aa8f.bundle.js.map +1 -0
- package/dist/11.3957302d7a301df30dd1.bundle.js +1 -1
- package/dist/11.3957302d7a301df30dd1.bundle.js.map +1 -1
- package/dist/120.80843604737b7c260788.bundle.js +1 -1
- package/dist/120.80843604737b7c260788.bundle.js.map +1 -1
- package/dist/18.44723ea06155c72f46ae.bundle.js +1 -1
- package/dist/18.44723ea06155c72f46ae.bundle.js.map +1 -1
- package/dist/25.9e0925889b3a3f79c7fe.bundle.js +1 -1
- package/dist/25.9e0925889b3a3f79c7fe.bundle.js.map +1 -1
- package/dist/29.9bdb27c21d6eacac1341.bundle.js +1 -1
- package/dist/29.9bdb27c21d6eacac1341.bundle.js.map +1 -1
- package/dist/30.34b74ada583b1b0af913.bundle.js +1 -1
- package/dist/30.34b74ada583b1b0af913.bundle.js.map +1 -1
- package/dist/68.e25480b7770a679a9654.bundle.js +1 -1
- package/dist/68.e25480b7770a679a9654.bundle.js.map +1 -1
- package/dist/{bundle.a8677c75aad1ad7b3b6a.bundle.js → bundle.7d5dd8e4d7cb8ed01086.bundle.js} +3 -3
- package/dist/bundle.7d5dd8e4d7cb8ed01086.bundle.js.map +1 -0
- package/dist/index.html +3 -3
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +4 -4
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +11 -11
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/import.html +1 -1
- package/dist/pages/jdbc-create.html +5 -5
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +2 -2
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/plugins.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +2 -2
- package/dist/pages/repository.html +2 -2
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-template-create.html +5 -5
- package/dist/pages/sparql.html +3 -3
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger/index.html +27 -27
- package/package.json +1 -1
- package/dist/10.eab0a417fa2f2831905e.bundle.js +0 -2
- package/dist/10.eab0a417fa2f2831905e.bundle.js.map +0 -1
- package/dist/bundle.a8677c75aad1ad7b3b6a.bundle.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/security/controllers.js"],"names":["createUniqueKey","repository","location","id","securityCtrl","angular","module","parseAuthorities","authorities","userType","USER","grantedAuthorities","repositories","i","length","role","ROLE_ADMIN","ADMIN","ROLE_REPO_MANAGER","REPO_MANAGER","ROLE_USER","indexOf","index","op","substr","repo","read","write","userTypeDescription","getUserRoleName","controller","$scope","$http","toastr","$jwtAuth","$openIDAuth","$location","$rootScope","$translate","username","password","loginWithOpenID","loginOpenID","search","noaccess","error","instant","expired","isGDBLoginEnabled","passwordLoginEnabled","isOpenIDEnabled","openIDEnabled","login","method","url","encodeURIComponent","headers","success","data","status","authenticate","then","returnToUrl","path","wrongCredentials","msg","getError","$modal","$window","$timeout","ModalService","SecurityRestService","loader","securityEnabled","isSecurityEnabled","hasExternalAuth","getAuthImplementation","freeAccessEnabled","isFreeAccessEnabled","getUsers","users","pa","$on","toggleSecurity","timer","reload","cancel","toggleFreeAccess","updateFreeAccess","getFreeAccess","res","appSettings","open","templateUrl","resolve","defaultAuthorities","repoIds","_","mapKeys","getRepositories","r","each","a","hasOwnProperty","result","editFreeAccess","removeUser","openSimpleModal","title","message","name","warning","deleteUser","$modalInstance","hasActiveLocation","isEmpty","globalLocation","globalRepositories","ok","auth","repositoryCheckError","WRITE_REPO","push","READ_REPO","close","dismiss","passwordPlaceholder","isAdmin","hasRole","hasEditRestrictions","user","isOverrideAuth","isDefaultAuthEnabled","setGrantedAuthorities","pushAuthority","arguments","authority","hasReadPermission","uniqueKey","hasWritePermission","repoOrWildCard","readCheckDisabled","writeCheckDisabled","validatePassword","noPassword","passwordError","confirmPasswordError","confirmpassword","isLocalAuthentication","updateUser","validateForm","updateUserHttp","setNoPassword","$controller","extend","this","mode","saveButtonText","goBack","history","back","pageTitle","submit","createUser","createUserHttp","pass","usernameError","$routeParams","params","userId","defaultUserSettings","getUserData","getUser","userData","external","undefined","getPrincipal","principal","debugMapping","mapping","split","getRolesMapping","getRoles","roleMappings","roles","keys","mappings","permissionsCount","map","filter","reverse","orderBy","p","LocalStorageAdapter","LSKeys","$q","currentUserData","copy","redirectAdmin","initUserData","showWorkbenchSettings","updateCurrentUserData","when","assign","redirectToLogin","scope","updateUserData","set","WORKBENCH_SETTINGS","workbenchSettings","setWorkbenchTheme","rootElement","document","querySelector","theme","classList","add","remove","get"],"mappings":"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","file":"10.eab0a417fa2f2831905e.bundle.js","sourcesContent":["import 'angular/core/services';\nimport 'angular/core/services/jwt-auth.service';\nimport 'angular/core/services/openid-auth.service';\nimport 'angular/rest/security.rest.service';\nimport {UserUtils, UserRole, UserType} from 'angular/utils/user-utils';\n\nconst SYSTEM_REPO = 'SYSTEM';\nconst READ_REPO = 'READ_REPO';\nconst READ_REPO_PREFIX = 'READ_REPO_';\nconst WRITE_REPO = 'WRITE_REPO';\nconst WRITE_REPO_PREFIX = 'WRITE_REPO_';\n\nconst modules = [\n 'ngCookies',\n 'ui.bootstrap',\n 'graphdb.framework.core.services.jwtauth',\n 'graphdb.framework.core.services.openIDService',\n 'graphdb.framework.rest.security.service',\n 'graphdb.framework.utils.localstorageadapter',\n 'toastr'\n];\n\nconst createUniqueKey = function (repository) {\n if (repository.location) {\n return `${repository.id}@${repository.location}`;\n }\n return repository.id;\n}\n\nconst securityCtrl = angular.module('graphdb.framework.security.controllers', modules);\n\nconst setGrantedAuthorities = function ($scope) {\n function pushAuthority() {\n for (let i = 0; i < arguments.length; i++) {\n const authority = arguments[i];\n if (_.indexOf($scope.user.grantedAuthorities, authority) < 0) {\n $scope.user.grantedAuthorities.push(authority);\n }\n }\n }\n\n $scope.user.grantedAuthorities = [];\n\n $scope.repositoryCheckError = true;\n if ($scope.userType === UserType.ADMIN) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_ADMIN);\n } else if ($scope.userType === UserType.REPO_MANAGER) {\n $scope.repositoryCheckError = false;\n pushAuthority(UserRole.ROLE_REPO_MANAGER);\n } else {\n pushAuthority(UserRole.ROLE_USER);\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(WRITE_REPO_PREFIX + index, READ_REPO_PREFIX + index);\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index]) {\n $scope.repositoryCheckError = false;\n pushAuthority(READ_REPO_PREFIX + index);\n }\n }\n }\n};\n\nconst parseAuthorities = function (authorities) {\n let userType = UserType.USER;\n const grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n const repositories = {};\n for (let i = 0; i < authorities.length; i++) {\n const role = authorities[i];\n if (role === UserRole.ROLE_ADMIN) {\n userType = UserType.ADMIN;\n } else if (role === UserRole.ROLE_REPO_MANAGER) {\n if (userType !== UserType.ADMIN) {\n userType = UserType.REPO_MANAGER;\n }\n } else if (role === UserRole.ROLE_USER) {\n userType = UserType.USER;\n } else if (role.indexOf('ROLE_') !== 0) {\n const index = role.indexOf('_', role.indexOf('_') + 1);\n const op = role.substr(0, index);\n const repo = role.substr(index + 1);\n grantedAuthorities[op][repo] = true;\n repositories[repo] = repositories[repo] || {};\n if (op === READ_REPO) {\n repositories[repo].read = true;\n } else if (op === WRITE_REPO) {\n repositories[repo].write = true;\n }\n }\n }\n\n return {\n userType: userType,\n userTypeDescription: UserUtils.getUserRoleName(userType),\n grantedAuthorities: grantedAuthorities,\n repositories: repositories\n };\n};\n\nsecurityCtrl.controller('LoginCtrl', ['$scope', '$http', 'toastr', '$jwtAuth', '$openIDAuth', '$location', '$rootScope', '$translate',\n function ($scope, $http, toastr, $jwtAuth, $openIDAuth, $location, $rootScope, $translate) {\n $scope.username = '';\n $scope.password = '';\n\n $scope.loginWithOpenID = function() {\n $jwtAuth.loginOpenID();\n };\n\n if ($location.search().noaccess) {\n toastr.error($translate.instant('security.no.rights.config.error'), $translate.instant('security.login.error'));\n } else if ($location.search().expired) {\n toastr.error($translate.instant('security.auth.token.expired'), $translate.instant('security.login.error'));\n }\n\n $scope.isGDBLoginEnabled = function() {\n return $jwtAuth.passwordLoginEnabled;\n };\n\n $scope.isOpenIDEnabled = function() {\n return $jwtAuth.openIDEnabled;\n };\n\n $scope.login = function () {\n return $http({\n method: 'POST',\n url: 'rest/login/' + encodeURIComponent($scope.username),\n headers: {\n 'X-GraphDB-Password': $scope.password\n }\n }).success(function (data, status, headers) {\n $jwtAuth.authenticate(data, headers('Authorization'))\n .then(() => {\n if ($rootScope.returnToUrl) {\n // go back to remembered url\n $location.url($rootScope.returnToUrl);\n } else {\n // no remembered url, go to home\n $location.path('/');\n }\n });\n }).error(function (data, status) {\n if (status === 401) {\n toastr.error($translate.instant('security.wrong.credentials'), $translate.instant('common.error'));\n $scope.wrongCredentials = true;\n $scope.username = '';\n $scope.password = '';\n } else {\n const msg = getError(data);\n toastr.error(msg, status);\n }\n });\n };\n }]);\n\nsecurityCtrl.controller('UsersCtrl', ['$scope', '$modal', 'toastr', '$window', '$jwtAuth', '$timeout', 'ModalService', 'SecurityRestService', '$translate',\n function ($scope, $modal, toastr, $window, $jwtAuth, $timeout, ModalService, SecurityRestService, $translate) {\n\n $scope.loader = true;\n $scope.securityEnabled = function () {\n return $jwtAuth.isSecurityEnabled();\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n $scope.getAuthImplementation = function () {\n return $jwtAuth.getAuthImplementation();\n };\n $scope.freeAccessEnabled = function () {\n return $jwtAuth.isFreeAccessEnabled();\n };\n $scope.getUsers = function () {\n SecurityRestService.getUsers()\n .success(function (data) {\n $scope.users = data;\n for (let i = 0; i < $scope.users.length; i++) {\n const pa = parseAuthorities($scope.users[i].grantedAuthorities);\n $scope.users[i].userType = pa.userType;\n $scope.users[i].userTypeDescription = pa.userTypeDescription;\n $scope.users[i].repositories = pa.repositories;\n }\n $scope.loader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.loader = false;\n });\n };\n $scope.getUsers();\n\n $scope.$on('repositoryIsSet', function () {\n $scope.getUsers();\n });\n\n $scope.toggleSecurity = function () {\n $jwtAuth.toggleSecurity(!$jwtAuth.isSecurityEnabled());\n if ($jwtAuth.isSecurityEnabled()) {\n const timer = $timeout(function () {\n $window.location.reload();\n }, 500);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n };\n\n $scope.toggleFreeAccess = function (updateFreeAccess) {\n if (!$jwtAuth.isFreeAccessEnabled() || ($jwtAuth.isFreeAccessEnabled() && updateFreeAccess)) {\n SecurityRestService.getFreeAccess().then(function (res) {\n let authorities = res.data.authorities;\n let appSettings = res.data.appSettings || {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n const modalInstance = $modal.open({\n templateUrl: 'js/angular/security/templates/modal/default-authorities.html',\n controller: 'DefaultAuthoritiesCtrl',\n resolve: {\n data: function () {\n return {\n // converts the array rights to hash ones. why, oh, why do we have both formats?\n defaultAuthorities: function () {\n const defaultAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n // We might have old (no longer existing) repositories so we have to check that\n const repoIds = _.mapKeys($scope.getRepositories(), function (r) {\n return createUniqueKey(r);\n });\n _.each(authorities, function (a) {\n // indexOf works in IE 11, startsWith doesn't\n if (a.indexOf(WRITE_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(11))) {\n defaultAuthorities[WRITE_REPO][a.substr(11)] = true;\n }\n } else if (a.indexOf(READ_REPO_PREFIX) === 0) {\n if (repoIds.hasOwnProperty(a.substr(10))) {\n defaultAuthorities[READ_REPO][a.substr(10)] = true;\n }\n }\n });\n return defaultAuthorities;\n },\n appSettings: appSettings\n };\n }\n }\n });\n modalInstance.result.then(function (data) {\n authorities = data.authorities;\n appSettings = data.appSettings;\n $jwtAuth.toggleFreeAccess(updateFreeAccess || !$jwtAuth.isFreeAccessEnabled(), authorities, appSettings, updateFreeAccess);\n });\n });\n } else {\n $jwtAuth.toggleFreeAccess(!$jwtAuth.isFreeAccessEnabled(), []);\n }\n };\n\n $scope.editFreeAccess = function () {\n $scope.toggleFreeAccess(true);\n };\n\n $scope.removeUser = function (username) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.delete'),\n message: $translate.instant('security.confirm.delete.user', {name: username}),\n warning: true\n }).result.then(function () {\n $scope.loader = true;\n SecurityRestService.deleteUser(username).success(function () {\n $scope.getUsers();\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n\n $scope.loader = false;\n });\n\n });\n };\n\n // Should be able to send the original username to $routeParams\n $scope.encodeURIComponent = function (name) {\n return encodeURIComponent(name);\n };\n }]);\n\nsecurityCtrl.controller('DefaultAuthoritiesCtrl', ['$scope', '$http', '$modalInstance', 'data', '$rootScope',\n function ($scope, $http, $modalInstance, data, $rootScope) {\n $scope.grantedAuthorities = data.defaultAuthorities();\n $scope.appSettings = data.appSettings;\n\n $scope.hasActiveLocation = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return !_.isEmpty($rootScope.globalLocation);\n };\n\n $scope.getRepositories = function () {\n // Hack to get this from root scope to avoid cyclic dependency\n return $rootScope.globalRepositories;\n };\n\n $scope.ok = function () {\n const auth = [];\n $scope.repositoryCheckError = true;\n for (const index in $scope.grantedAuthorities.WRITE_REPO) {\n if ($scope.grantedAuthorities.WRITE_REPO[index]) {\n auth.push(WRITE_REPO_PREFIX + index);\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n for (const index in $scope.grantedAuthorities.READ_REPO) {\n if ($scope.grantedAuthorities.READ_REPO[index] && auth.indexOf(READ_REPO_PREFIX + index) === -1) {\n auth.push(READ_REPO_PREFIX + index);\n $scope.repositoryCheckError = false;\n }\n }\n if (!$scope.repositoryCheckError) {\n $modalInstance.close({authorities: auth, appSettings: $scope.appSettings});\n }\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n }\n }]);\n\nsecurityCtrl.controller('CommonUserCtrl', ['$rootScope', '$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$translate', 'passwordPlaceholder',\n function ($rootScope, $scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $translate, passwordPlaceholder) {\n $rootScope.$on('$translateChangeSuccess', function () {\n $scope.passwordPlaceholder = $translate.instant(passwordPlaceholder);\n });\n $scope.isAdmin = function () {\n return $jwtAuth.hasRole(UserRole.ROLE_ADMIN);\n };\n $scope.hasExternalAuth = function () {\n return $jwtAuth.hasExternalAuth();\n };\n\n $scope.hasEditRestrictions = function () {\n return $scope.user && $scope.user.username === UserType.ADMIN;\n };\n\n $scope.isOverrideAuth = function () {\n return $jwtAuth.isDefaultAuthEnabled();\n };\n\n $scope.setGrantedAuthorities = function () {\n setGrantedAuthorities($scope);\n };\n\n $scope.hasReadPermission = function (repository) {\n const uniqueKey = createUniqueKey(repository);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repository.id !== SYSTEM_REPO\n && ($scope.grantedAuthorities.READ_REPO['*'] || $scope.grantedAuthorities.WRITE_REPO['*'])\n || $scope.grantedAuthorities.READ_REPO[uniqueKey]\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.hasWritePermission = function (repoOrWildCard) {\n const uniqueKey = createUniqueKey(repoOrWildCard);\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.grantedAuthorities.WRITE_REPO[uniqueKey];\n };\n\n $scope.readCheckDisabled = function (repoOrWildCard) {\n return $scope.hasWritePermission(repoOrWildCard)\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.READ_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.writeCheckDisabled = function (repoOrWildCard) {\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repoOrWildCard.id !== SYSTEM_REPO && repoOrWildCard !== '*' && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.createUniqueKey = function (repository) {\n return createUniqueKey(repository);\n }\n\n $scope.userType = UserType.USER;\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n $scope.validatePassword = function() {\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n return true;\n }\n if ($scope.user.password !== $scope.user.confirmpassword) {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n $scope.confirmPasswordError = '';\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n }\n return false;\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n return true;\n };\n\n $scope.isLocalAuthentication = function() {\n return $jwtAuth.getAuthImplementation() === 'Local';\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n if ($scope.isLocalAuthentication()) {\n $scope.setGrantedAuthorities();\n }\n\n if (!$scope.repositoryCheckError) {\n $scope.updateUserHttp();\n }\n };\n\n $scope.setNoPassword = function() {\n if ($scope.noPassword) {\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n }\n }\n }]);\n\nsecurityCtrl.controller('AddUserCtrl', ['$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.password.placeholder'}));\n\n $scope.mode = 'add';\n $scope.saveButtonText = $translate.instant('common.create.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.pageTitle = $translate.instant('view.create.user.title');\n $scope.passwordPlaceholder = $translate.instant('security.password.placeholder');\n\n $scope.user = {\n 'username': '',\n 'password': '',\n 'confirmpassword': '',\n 'grantedAuthorities': [],\n 'appSettings': {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n }\n };\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.create.admin'),\n message: $translate.instant('security.admin.login.warning'),\n warning: true\n }).result.then(function () {\n $scope.createUser();\n });\n } else {\n $scope.createUser();\n }\n };\n\n $scope.createUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.createUser({\n username: $scope.user.username,\n pass: $scope.user.password,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.created', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.createUser = function () {\n if ($scope.validateForm()) {\n $scope.setGrantedAuthorities();\n\n if (!$scope.repositoryCheckError) {\n $scope.createUserHttp();\n }\n }\n };\n\n $scope.validateForm = function () {\n let result = true;\n if (!$scope.user.username) {\n $scope.usernameError = $translate.instant('security.enter.username');\n result = false;\n } else {\n $scope.usernameError = '';\n }\n if ($scope.noPassword) {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '';\n } else {\n if (!$scope.user.password) {\n $scope.passwordError = $translate.instant('security.enter.password');\n result = false;\n } else {\n $scope.passwordError = '';\n }\n if (!$scope.user.confirmpassword || $scope.user.password !== $scope.user.confirmpassword) {\n $scope.confirmPasswordError = $translate.instant('security.confirm.password');\n result = false;\n } else {\n $scope.confirmPasswordError = '';\n }\n }\n\n return result;\n };\n }]);\n\nsecurityCtrl.controller('EditUserCtrl', ['$scope', '$http', 'toastr', '$window', '$routeParams', '$timeout', '$location', '$jwtAuth', '$controller', 'SecurityRestService', 'ModalService', '$translate',\n function ($scope, $http, toastr, $window, $routeParams, $timeout, $location, $jwtAuth, $controller, SecurityRestService, ModalService, $translate) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'edit';\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n $scope.params = $routeParams;\n $scope.pageTitle = $translate.instant('view.edit.user.title', {userId: $scope.params.userId});\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.userType = UserType.USER;\n const defaultUserSettings = {\n 'DEFAULT_SAMEAS': true,\n 'DEFAULT_INFERENCE': true,\n 'EXECUTE_COUNT': true,\n 'IGNORE_SHARED_QUERIES': false,\n 'DEFAULT_VIS_GRAPH_SCHEMA': true\n };\n\n if (!$jwtAuth.hasRole(UserRole.ROLE_ADMIN)) {\n $location.url('settings');\n }\n $scope.getUserData = function () {\n SecurityRestService.getUser($scope.params.userId).success(function (data) {\n $scope.userData = data;\n $scope.user = {username: $scope.userData.username};\n $scope.user.password = '';\n $scope.user.confirmpassword = '';\n $scope.user.external = $scope.userData.external;\n $scope.user.appSettings = data.appSettings || defaultUserSettings;\n $scope.userType = UserType.USER;\n const pa = parseAuthorities(data.grantedAuthorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.getUserData();\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUser({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings,\n grantedAuthorities: $scope.user.grantedAuthorities\n }).success(function () {\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n // if we update the settings of the currently logged user, update the principal\n $jwtAuth.getPrincipal().then((principal) => {\n if ($scope.user.username === principal.username) {\n principal.appSettings = $scope.user.appSettings;\n }\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n }]);\n\nsecurityCtrl.controller('RolesMappingController', ['$scope', 'toastr', 'SecurityRestService', '$translate',\n function ($scope, toastr, SecurityRestService, $translate) {\n\n $scope.debugMapping = function (role, mapping) {\n const method = mapping.split(':');\n SecurityRestService.getRolesMapping({\n role: role,\n method: method[1],\n mapping: method[0]\n });\n };\n\n const loadRoles = function () {\n SecurityRestService.getRoles()\n .success(function (data) {\n $scope.roleMappings = data;\n $scope.roles = _.keys($scope.roleMappings);\n $scope.mappings = _.keys($scope.roleMappings[$scope.roles[0]]);\n const permissionsCount = _.map($scope.roles, function (role) {\n return [role, _.filter($scope.roleMappings[role]).length];\n });\n $scope.roles = _.reverse(_.map(_.orderBy(permissionsCount, function (p) {\n return p[1];\n }), function (p) {\n return p[0];\n }));\n })\n .error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.$on('repositoryIsSet', function () {\n loadRoles();\n });\n}]);\n\nsecurityCtrl.controller('ChangeUserPasswordSettingsCtrl', ['$scope', 'toastr', '$window', '$timeout', '$jwtAuth', '$rootScope', '$controller', 'SecurityRestService', 'ModalService', '$translate', 'LocalStorageAdapter', 'LSKeys', '$q',\n function ($scope, toastr, $window, $timeout, $jwtAuth, $rootScope, $controller, SecurityRestService, ModalService, $translate, LocalStorageAdapter, LSKeys, $q) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope, passwordPlaceholder: 'security.new.password'}));\n\n $scope.mode = 'settings';\n $scope.hasEditRestrictions = function () {\n return true;\n };\n $scope.saveButtonText = $translate.instant('common.save.btn');\n $scope.goBack = function () {\n const timer = $timeout(function () {\n $window.history.back();\n }, 100);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n };\n // Wrapped in a scope function for ease of testing\n $scope.getPrincipal = function () {\n return $jwtAuth.getPrincipal()\n .then((principal) => {\n $scope.currentUserData = angular.copy(principal);\n });\n };\n\n $scope.getPrincipal().then(() => {\n $scope.redirectAdmin();\n initUserData($scope);\n });\n\n $scope.showWorkbenchSettings = true;\n\n $scope.updateCurrentUserData = function () {\n // Using $q.when to proper set values in view\n $q.when($jwtAuth.getPrincipal())\n .then((principal) => _.assign(principal, $scope.userData));\n };\n\n //call it as a function so I can make test on it\n $scope.redirectAdmin = function () {\n if (!$scope.currentUserData) {\n $rootScope.redirectToLogin();\n }\n };\n\n $scope.pageTitle = $translate.instant('view.settings.title');\n $scope.passwordPlaceholder = $translate.instant('security.new.password');\n $scope.grantedAuthorities = {\n [READ_REPO]: {},\n [WRITE_REPO]: {}\n };\n\n const initUserData = function (scope) {\n // Copy needed so that Cancel would work correctly, need to call updateCurrentUserData on OK\n scope.userData = angular.copy(scope.currentUserData);\n scope.user = {username: scope.userData.username};\n scope.user.password = '';\n scope.user.confirmpassword = '';\n scope.user.external = scope.userData.external;\n scope.user.appSettings = scope.userData.appSettings;\n // For backward compatibility\n if (scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] === undefined) {\n scope.user.appSettings['DEFAULT_VIS_GRAPH_SCHEMA'] = true;\n }\n\n const pa = parseAuthorities(scope.userData.authorities);\n $scope.userType = pa.userType;\n $scope.grantedAuthorities = pa.grantedAuthorities;\n };\n\n $scope.loader = false;\n\n $scope.submit = function () {\n if ($scope.noPassword && $scope.userType === UserType.ADMIN) {\n ModalService.openSimpleModal({\n title: $translate.instant('security.save.admin.settings'),\n message: $translate.instant('security.admin.pass.unset'),\n warning: true\n }).result.then(function () {\n $scope.updateUser();\n });\n } else {\n $scope.updateUser();\n }\n };\n\n $scope.updateUserHttp = function () {\n $scope.loader = true;\n SecurityRestService.updateUserData({\n username: $scope.user.username,\n pass: ($scope.noPassword) ? '' : $scope.user.password || undefined,\n appSettings: $scope.user.appSettings\n }).success(function () {\n $scope.updateCurrentUserData();\n toastr.success($translate.instant('security.user.updated', {name: $scope.user.username}));\n const timer = $timeout(function () {\n $scope.loader = false;\n $window.history.back();\n }, 2000);\n LocalStorageAdapter.set(LSKeys.WORKBENCH_SETTINGS, $scope.workbenchSettings);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, $translate.instant('common.error'));\n });\n };\n\n $scope.updateUser = function () {\n if (!$scope.validateForm()) {\n return false;\n }\n\n $scope.updateUserHttp();\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n\n $scope.setWorkbenchTheme = function () {\n const rootElement = document.querySelector(':root');\n if ($scope.workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n };\n\n $scope.workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n if (!$scope.workbenchSettings) {\n $scope.workbenchSettings = {\n theme: 'light'\n };\n }\n $scope.setWorkbenchTheme();\n\n $scope.$on(\"$destroy\", function () {\n const workbenchSettings = LocalStorageAdapter.get(LSKeys.WORKBENCH_SETTINGS);\n const rootElement = document.querySelector(':root');\n if (workbenchSettings && workbenchSettings.theme === 'dark') {\n rootElement.classList.add(\"dark\");\n } else {\n rootElement.classList.remove(\"dark\");\n }\n });\n }]);\n\nsecurityCtrl.controller('DeleteUserCtrl', ['$scope', '$modalInstance', 'username', function ($scope, $modalInstance, username) {\n $scope.username = username;\n\n $scope.ok = function () {\n $modalInstance.close();\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}]);\n"],"sourceRoot":""}
|