graphdb-workbench 1.10.1 → 1.10.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.
Files changed (55) hide show
  1. package/dist/113.2c059fa7d06fd04149eb.bundle.js +1 -1
  2. package/dist/113.2c059fa7d06fd04149eb.bundle.js.map +1 -1
  3. package/dist/12.825d3fc787254f6fa055.bundle.js +2 -0
  4. package/dist/12.825d3fc787254f6fa055.bundle.js.map +1 -0
  5. package/dist/14.c7175f400470b470e034.bundle.js +1 -1
  6. package/dist/14.c7175f400470b470e034.bundle.js.map +1 -1
  7. package/dist/140.8beec5f2af539affa918.bundle.js +2 -0
  8. package/dist/140.8beec5f2af539affa918.bundle.js.map +1 -0
  9. package/dist/22.93d86caa997992a46006.bundle.js +1 -1
  10. package/dist/22.93d86caa997992a46006.bundle.js.map +1 -1
  11. package/dist/28.bbe49746541a2419b9a7.bundle.js +1 -1
  12. package/dist/28.bbe49746541a2419b9a7.bundle.js.map +1 -1
  13. package/dist/30.5ed60b4ae0a67956c66b.bundle.js +1 -1
  14. package/dist/30.5ed60b4ae0a67956c66b.bundle.js.map +1 -1
  15. package/dist/37.571a0ab8fb0508c3f1fe.bundle.js +1 -1
  16. package/dist/37.571a0ab8fb0508c3f1fe.bundle.js.map +1 -1
  17. package/dist/38.c611acd72558ca546c47.bundle.js +1 -1
  18. package/dist/38.c611acd72558ca546c47.bundle.js.map +1 -1
  19. package/dist/{bundle.e7b22d8ef84fbe277d35.bundle.js → bundle.638b1335212351205f4e.bundle.js} +4 -4
  20. package/dist/bundle.638b1335212351205f4e.bundle.js.map +1 -0
  21. package/dist/index.html +3 -3
  22. package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
  23. package/dist/js/angular/security/templates/users.html +3 -3
  24. package/dist/pages/autocomplete.html +1 -1
  25. package/dist/pages/choose-repository-type.html +1 -1
  26. package/dist/pages/clusterInfo.html +1 -1
  27. package/dist/pages/create-index.html +4 -4
  28. package/dist/pages/dependencies.html +1 -1
  29. package/dist/pages/domainRangeInfo.html +2 -2
  30. package/dist/pages/edit.html +1 -1
  31. package/dist/pages/explore.html +1 -1
  32. package/dist/pages/export.html +1 -1
  33. package/dist/pages/find.html +1 -1
  34. package/dist/pages/graph-config/saveGraphConfig.html +11 -11
  35. package/dist/pages/graphs-visualizations.html +7 -7
  36. package/dist/pages/import.html +1 -1
  37. package/dist/pages/jdbc-create.html +5 -5
  38. package/dist/pages/monitor/queries.html +1 -1
  39. package/dist/pages/monitor/resources.html +2 -2
  40. package/dist/pages/namespaces.html +2 -2
  41. package/dist/pages/rdfClassHierarchyInfo.html +7 -7
  42. package/dist/pages/rdfrank.html +2 -2
  43. package/dist/pages/repositories.html +2 -2
  44. package/dist/pages/repository.html +2 -2
  45. package/dist/pages/similarity-indexes.html +1 -1
  46. package/dist/pages/sparql-template-create.html +5 -5
  47. package/dist/pages/sparql.html +3 -3
  48. package/dist/pages/webapi.html +2 -2
  49. package/dist/res/swagger/index.html +25 -25
  50. package/package.json +1 -1
  51. package/dist/12.449fb5148a68a44ba324.bundle.js +0 -2
  52. package/dist/12.449fb5148a68a44ba324.bundle.js.map +0 -1
  53. package/dist/140.e19b5decfc57c4172f5d.bundle.js +0 -2
  54. package/dist/140.e19b5decfc57c4172f5d.bundle.js.map +0 -1
  55. package/dist/bundle.e7b22d8ef84fbe277d35.bundle.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/security/controllers.js"],"names":["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","$timeout","$location","$rootScope","username","password","loginWithOpenID","loginOpenID","search","noaccess","error","expired","isGDBLoginEnabled","passwordLoginEnabled","isOpenIDEnabled","openIDEnabled","login","method","url","encodeURIComponent","headers","success","data","status","authenticate","timer","returnToUrl","path","$on","cancel","wrongCredentials","msg","getError","$modal","$window","ModalService","SecurityRestService","loader","securityEnabled","isSecurityEnabled","hasExternalAuth","getAuthImplementation","freeAccessEnabled","isFreeAccessEnabled","getUsers","users","pa","toggleSecurity","location","reload","toggleFreeAccess","updateFreeAccess","getFreeAccess","then","res","appSettings","open","templateUrl","resolve","defaultAuthorities","repoIds","_","mapKeys","getRepositories","r","id","each","a","hasOwnProperty","result","editFreeAccess","removeUser","openSimpleModal","title","message","warning","deleteUser","name","$modalInstance","hasActiveLocation","isEmpty","globalLocation","globalRepositories","ok","auth","repositoryCheckError","WRITE_REPO","push","READ_REPO","close","dismiss","isAdmin","hasRole","hasEditRestrictions","user","isOverrideAuth","isDefaultAuthEnabled","setGrantedAuthorities","pushAuthority","arguments","authority","hasReadPermission","repositoryId","hasWritePermission","readCheckDisabled","writeCheckDisabled","validatePassword","noPassword","passwordError","confirmPasswordError","confirmpassword","isLocalAuthentication","updateUser","validateForm","updateUserHttp","setNoPassword","$controller","extend","this","mode","saveButtonText","goBack","history","back","pageTitle","passwordPlaceholder","submit","createUser","createUserHttp","pass","usernameError","$routeParams","params","userId","defaultUserSettings","getUserData","getUser","userData","external","undefined","getPrincipal","debugMapping","mapping","split","getRolesMapping","getRoles","roleMappings","roles","keys","mappings","permissionsCount","map","filter","reverse","orderBy","p","currentUserData","updateCurrentUserData","assign","redirectAdmin","redirectToLogin","initUserData","scope","copy","currentScope","updateUserData"],"mappings":"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","file":"12.449fb5148a68a44ba324.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 'toastr'\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', '$timeout', '$location', '$rootScope',\n function ($scope, $http, toastr, $jwtAuth, $openIDAuth, $timeout, $location, $rootScope) {\n $scope.username = '';\n $scope.password = '';\n\n $scope.loginWithOpenID = function() {\n $jwtAuth.loginOpenID();\n };\n\n if ($location.search().noaccess) {\n toastr.error('User has no access rights or configuration error.', 'Login error');\n } else if ($location.search().expired) {\n toastr.error('Your authentication token has expired. Please login again.', '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 $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 const timer = $timeout(function () {\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 }, 500);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }).error(function (data, status) {\n if (status === 401) {\n toastr.error('Wrong credentials!', '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 }]);\n\nsecurityCtrl.controller('UsersCtrl', ['$scope', '$modal', 'toastr', '$window', '$jwtAuth', '$timeout', 'ModalService', 'SecurityRestService',\n function ($scope, $modal, toastr, $window, $jwtAuth, $timeout, ModalService, SecurityRestService) {\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, '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 r.id;\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: 'Confirm delete',\n message: 'Are you sure you want to delete the user \\'' + 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, '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\nsecurityCtrl.controller('CommonUserCtrl', ['$scope', '$http', 'toastr', '$window', '$timeout', '$location', '$jwtAuth',\n function ($scope, $http, toastr, $window, $timeout, $location, $jwtAuth) {\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 (repositoryId) {\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || $scope.grantedAuthorities.READ_REPO[repositoryId]\n || $scope.grantedAuthorities.WRITE_REPO[repositoryId]\n || repositoryId !== SYSTEM_REPO\n && ($scope.grantedAuthorities.READ_REPO['*'] || $scope.grantedAuthorities.WRITE_REPO['*']);\n };\n\n $scope.hasWritePermission = function (repositoryId) {\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || $scope.grantedAuthorities.WRITE_REPO[repositoryId]\n || repositoryId !== SYSTEM_REPO && $scope.grantedAuthorities.WRITE_REPO['*'];\n };\n\n $scope.readCheckDisabled = function (repositoryId) {\n return $scope.hasWritePermission(repositoryId)\n || repositoryId !== SYSTEM_REPO && repositoryId !== '*' && $scope.grantedAuthorities.READ_REPO['*']\n || $scope.hasEditRestrictions();\n };\n\n $scope.writeCheckDisabled = function (repositoryId) {\n return $scope.userType === UserType.ADMIN || $scope.userType === UserType.REPO_MANAGER\n || repositoryId !== SYSTEM_REPO && repositoryId !== '*' && $scope.grantedAuthorities.WRITE_REPO['*']\n || $scope.hasEditRestrictions();\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 = 'Enter password!';\n $scope.confirmPasswordError = '';\n } else {\n $scope.passwordError = '';\n $scope.confirmPasswordError = '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',\n function ($scope, $http, toastr, $window, $timeout, $location, $jwtAuth, $controller, SecurityRestService) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope}));\n\n $scope.mode = 'add';\n $scope.saveButtonText = 'Create';\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 = 'Create new user';\n $scope.passwordPlaceholder = 'Password';\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 $scope.createUser();\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('The user ' + $scope.user.username + ' has been created.');\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, '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 = '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 = '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 = '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',\n function ($scope, $http, toastr, $window, $routeParams, $timeout, $location, $jwtAuth, $controller, SecurityRestService) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope}));\n\n $scope.mode = 'edit';\n $scope.saveButtonText = 'Save';\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 = 'Edit user: ' + $scope.params.userId;\n $scope.passwordPlaceholder = '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, 'Error');\n });\n };\n\n $scope.getUserData();\n\n $scope.submit = function () {\n $scope.updateUser();\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('The user ' + $scope.user.username + ' was updated.');\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 if ($scope.user.username === $jwtAuth.getPrincipal().username) {\n $jwtAuth.getPrincipal().appSettings = $scope.user.appSettings;\n }\n }).error(function (data) {\n const msg = getError(data);\n $scope.loader = false;\n toastr.error(msg, 'Error');\n });\n };\n\n $scope.validateForm = function () {\n return $scope.validatePassword();\n };\n }]);\n\nsecurityCtrl.controller('RolesMappingController', ['$scope', 'toastr', 'SecurityRestService',\n function ($scope, toastr, SecurityRestService) {\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, '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',\n function ($scope, toastr, $window, $timeout, $jwtAuth, $rootScope, $controller, SecurityRestService) {\n\n angular.extend(this, $controller('CommonUserCtrl', {$scope: $scope}));\n\n $scope.mode = 'settings';\n $scope.hasEditRestrictions = function () {\n return true;\n };\n $scope.saveButtonText = 'Save';\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.currentUserData = function () {\n return $jwtAuth.getPrincipal();\n };\n\n $scope.updateCurrentUserData = function () {\n _.assign($jwtAuth.getPrincipal(), $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 = 'Settings';\n $scope.passwordPlaceholder = '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 if ($scope.currentUserData()) {\n initUserData($scope);\n } else {\n $scope.$on('securityInit', function (scope) {\n scope.currentScope.redirectAdmin();\n initUserData(scope.currentScope);\n });\n }\n\n $scope.loader = false;\n\n $scope.submit = function () {\n $scope.updateUser();\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('The user ' + $scope.user.username + ' was updated.');\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, '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\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":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[140],{193:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<h1>\n\t{{title}}\n\t<span class="btn btn-link"\n\t popover-template="\'js/angular/templates/titlePopoverTemplate.html\'"\n\t popover-trigger="mouseenter"\n\t popover-placement="bottom-right"\n\t popover-append-to-body="true"><span class="icon-info"></span></span>\n</h1>\n<div id="wb-users" ng-hide="loader">\n\t<div class="mb-1">\n\t\t<div class="pull-right">\n\t\t\t<span id="toggle-security" class="mr-1">\n\t\t\t\t<span class="security-switch-label">Security is <span class="tag {{securityEnabled() ? \'tag-primary\' : \'tag-default\'}}">{{securityEnabled() ? \'ON\' : \'OFF\'}}</span></span>\n\t\t\t\t<span tooltip="Click to {{securityEnabled() ? \'disable\' : \'enable\'}} security" tooltip-placement="top" tooltip-trigger="mouseenter" ng-click="toggleSecurity()" class="switch">\n\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="securityEnabled()"/>\n\t\t\t\t\t<label for="toggleSecurity"></label>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t\t<span ng-show="securityEnabled()" id="toggle-freeaccess">\n\t\t\t\t<span>Free Access is <span class="tag {{freeAccessEnabled() ? \'tag-primary\' : \'tag-default\'}}">{{freeAccessEnabled() ? \'ON\' : \'OFF\'}}</span></span>\n\t\t\t\t<span tooltip="Click to {{freeAccessEnabled() ? \'disable\' : \'enable\'}} free access to non-admin functionality" tooltip-placement="top" tooltip-trigger="mouseenter" ng-click="toggleFreeAccess()" class="switch">\n\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="freeAccessEnabled()"/>\n\t\t\t\t\t<label for="toggleFreeAccess"></label>\n\t\t\t\t</span>\n\t\t\t\t<span ng-show="freeAccessEnabled()">\n\t\t\t\t\tFree Access Settings\n\t\t\t\t\t<a style="padding-left: 0px;" class="btn btn-link" href="#"><em class="icon-settings" tooltip="Free access configuration" ng-click="editFreeAccess()"></em></a>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t</div>\n\n\t\t<a id="wb-users-userCreateLink" class="btn btn-primary" href="user/create"><span class="icon-plus"></span> Create new user</a>\n\t</div>\n\n\t<div ng-show="hasExternalAuth()">\n\t\t<div>&nbsp;</div>\n\t\t<div class="alert alert-info no-icon mt-1">\n\t\t\t<p>Using external authentication and authorization database {{getAuthImplementation()}}.</p>\n\t\t\t<p>You can modify the user settings for users that logged in previously but you cannot change their credentials or access rights.</p>\n\t\t</div>\n\t</div>\n\n\t<table id="wb-users-userInUsers" class="table table-striped" aria-describedby="Users table">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t<th id="usernameColumn">Username</th>\n\t\t\t\t<th id="roleColumn">Role</th>\n\t\t\t\t<th id="repoRightsColumn">Repository rights</th>\n\t\t\t\t<th id="creationDateColumn">Date created</th>\n\t\t\t\t<th id="actionsColumn">Actions</th>\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr ng-repeat="user in users | orderBy: \'username\'">\n\t\t\t\t<td class="username"><span>{{user.username}}</span></td>\n\t\t\t\t<td class="user-type">{{user.userTypeDescription}}</td>\n\t\t\t\t<td class="repository-rights">\n\t\t\t\t\t<div ng-show="user.userType === \'user\'" ng-repeat="(repo, rights) in user.repositories track by $index">\n\t\t\t\t\t\t<em class="icon-eye" ng-class="rights.read ? \'text-tertiary\' : \'text-muted\'" tooltip="{{rights.read ? \'Has read access\' : \'Does not have read access\'}}"></em>\n\t\t\t\t\t\t<em class="icon-edit" ng-class="rights.write ? \'text-tertiary\' : \'text-muted\'" tooltip="{{rights.read ? \'Has write access\' : \'Does not have write access\'}}"></em>\n\t\t\t\t\t\t{{repo}}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div ng-show="user.userType !== \'user\'">Unrestricted</div>\n\t\t\t\t</td>\n\t\t\t\t<td class="date-created"><span>{{user.dateCreated | date: \'yyyy-MM-dd HH:mm:ss\'}}</span></td>\n\t\t\t\t<td class="actions-bar">\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<a class="btn btn-link edit-user-btn" href="user/{{encodeURIComponent(user.username)}}">\n <em class="icon-edit" tooltip="Edit user"></em>\n </a>\n\t\t\t\t\t\t<a class="btn btn-link secondary delete-user-btn" ng-show="user.username != \'admin\'" href ng-click="removeUser(user.username)">\n <em class="icon-trash" tooltip="Delete user"></em>\n </a>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n';return __p}}}]);
2
- //# sourceMappingURL=140.e19b5decfc57c4172f5d.bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/js/angular/security/templates/users.html"],"names":["module","exports","obj","__t","__p"],"mappings":"wFAAAA,OAAOC,QAAU,SAASC,KAC1BA,MAAQA,IAAM,IACd,IAAIC,IAAKC,IAAM,GACf,KAAMF,IACNE,KAAO,6zIAGP,OAAOA","file":"140.e19b5decfc57c4172f5d.bundle.js","sourcesContent":["module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '<h1>\\n\t{{title}}\\n\t<span class=\"btn btn-link\"\\n\t popover-template=\"\\'js/angular/templates/titlePopoverTemplate.html\\'\"\\n\t popover-trigger=\"mouseenter\"\\n\t popover-placement=\"bottom-right\"\\n\t popover-append-to-body=\"true\"><span class=\"icon-info\"></span></span>\\n</h1>\\n<div id=\"wb-users\" ng-hide=\"loader\">\\n\t<div class=\"mb-1\">\\n\t\t<div class=\"pull-right\">\\n\t\t\t<span id=\"toggle-security\" class=\"mr-1\">\\n\t\t\t\t<span class=\"security-switch-label\">Security is <span class=\"tag {{securityEnabled() ? \\'tag-primary\\' : \\'tag-default\\'}}\">{{securityEnabled() ? \\'ON\\' : \\'OFF\\'}}</span></span>\\n\t\t\t\t<span tooltip=\"Click to {{securityEnabled() ? \\'disable\\' : \\'enable\\'}} security\" tooltip-placement=\"top\" tooltip-trigger=\"mouseenter\" ng-click=\"toggleSecurity()\" class=\"switch\">\\n\t\t\t\t\t<input type=\"checkbox\" class=\"switch\" ng-checked=\"securityEnabled()\"/>\\n\t\t\t\t\t<label for=\"toggleSecurity\"></label>\\n\t\t\t\t</span>\\n\t\t\t</span>\\n\t\t\t<span ng-show=\"securityEnabled()\" id=\"toggle-freeaccess\">\\n\t\t\t\t<span>Free Access is <span class=\"tag {{freeAccessEnabled() ? \\'tag-primary\\' : \\'tag-default\\'}}\">{{freeAccessEnabled() ? \\'ON\\' : \\'OFF\\'}}</span></span>\\n\t\t\t\t<span tooltip=\"Click to {{freeAccessEnabled() ? \\'disable\\' : \\'enable\\'}} free access to non-admin functionality\" tooltip-placement=\"top\" tooltip-trigger=\"mouseenter\" ng-click=\"toggleFreeAccess()\" class=\"switch\">\\n\t\t\t\t\t<input type=\"checkbox\" class=\"switch\" ng-checked=\"freeAccessEnabled()\"/>\\n\t\t\t\t\t<label for=\"toggleFreeAccess\"></label>\\n\t\t\t\t</span>\\n\t\t\t\t<span ng-show=\"freeAccessEnabled()\">\\n\t\t\t\t\tFree Access Settings\\n\t\t\t\t\t<a style=\"padding-left: 0px;\" class=\"btn btn-link\" href=\"#\"><em class=\"icon-settings\" tooltip=\"Free access configuration\" ng-click=\"editFreeAccess()\"></em></a>\\n\t\t\t\t</span>\\n\t\t\t</span>\\n\t\t</div>\\n\\n\t\t<a id=\"wb-users-userCreateLink\" class=\"btn btn-primary\" href=\"user/create\"><span class=\"icon-plus\"></span> Create new user</a>\\n\t</div>\\n\\n\t<div ng-show=\"hasExternalAuth()\">\\n\t\t<div>&nbsp;</div>\\n\t\t<div class=\"alert alert-info no-icon mt-1\">\\n\t\t\t<p>Using external authentication and authorization database {{getAuthImplementation()}}.</p>\\n\t\t\t<p>You can modify the user settings for users that logged in previously but you cannot change their credentials or access rights.</p>\\n\t\t</div>\\n\t</div>\\n\\n\t<table id=\"wb-users-userInUsers\" class=\"table table-striped\" aria-describedby=\"Users table\">\\n\t\t<thead>\\n\t\t\t<tr>\\n\t\t\t\t<th id=\"usernameColumn\">Username</th>\\n\t\t\t\t<th id=\"roleColumn\">Role</th>\\n\t\t\t\t<th id=\"repoRightsColumn\">Repository rights</th>\\n\t\t\t\t<th id=\"creationDateColumn\">Date created</th>\\n\t\t\t\t<th id=\"actionsColumn\">Actions</th>\\n\t\t\t</tr>\\n\t\t</thead>\\n\t\t<tbody>\\n\t\t\t<tr ng-repeat=\"user in users | orderBy: \\'username\\'\">\\n\t\t\t\t<td class=\"username\"><span>{{user.username}}</span></td>\\n\t\t\t\t<td class=\"user-type\">{{user.userTypeDescription}}</td>\\n\t\t\t\t<td class=\"repository-rights\">\\n\t\t\t\t\t<div ng-show=\"user.userType === \\'user\\'\" ng-repeat=\"(repo, rights) in user.repositories track by $index\">\\n\t\t\t\t\t\t<em class=\"icon-eye\" ng-class=\"rights.read ? \\'text-tertiary\\' : \\'text-muted\\'\" tooltip=\"{{rights.read ? \\'Has read access\\' : \\'Does not have read access\\'}}\"></em>\\n\t\t\t\t\t\t<em class=\"icon-edit\" ng-class=\"rights.write ? \\'text-tertiary\\' : \\'text-muted\\'\" tooltip=\"{{rights.read ? \\'Has write access\\' : \\'Does not have write access\\'}}\"></em>\\n\t\t\t\t\t\t{{repo}}\\n\t\t\t\t\t</div>\\n\t\t\t\t\t<div ng-show=\"user.userType !== \\'user\\'\">Unrestricted</div>\\n\t\t\t\t</td>\\n\t\t\t\t<td class=\"date-created\"><span>{{user.dateCreated | date: \\'yyyy-MM-dd HH:mm:ss\\'}}</span></td>\\n\t\t\t\t<td class=\"actions-bar\">\\n\t\t\t\t\t<span>\\n\t\t\t\t\t\t<a class=\"btn btn-link edit-user-btn\" href=\"user/{{encodeURIComponent(user.username)}}\">\\n <em class=\"icon-edit\" tooltip=\"Edit user\"></em>\\n </a>\\n\t\t\t\t\t\t<a class=\"btn btn-link secondary delete-user-btn\" ng-show=\"user.username != \\'admin\\'\" href ng-click=\"removeUser(user.username)\">\\n <em class=\"icon-trash\" tooltip=\"Delete user\"></em>\\n </a>\\n\t\t\t\t\t</span>\\n\t\t\t\t</td>\\n\t\t\t</tr>\\n\t\t</tbody>\\n\t</table>\\n</div>\\n<div class=\"ot-loader ot-main-loader\" onto-loader size=\"50\" ng-show=\"loader\"></div>\\n\\n';\n\n}\nreturn __p\n}"],"sourceRoot":""}