From 96cb6d668fffa0dfa84c6befda44ef17eb393eff Mon Sep 17 00:00:00 2001 From: Rotem Reiss Date: Sun, 10 May 2020 22:05:02 +0300 Subject: [PATCH] Admin: Cleanup old admin users edit page, see #19139 (#24463) --- .../app/features/admin/AdminEditUserCtrl.ts | 224 ------------------ public/app/features/admin/index.ts | 2 - .../features/admin/partials/edit_user.html | 186 --------------- 3 files changed, 412 deletions(-) delete mode 100644 public/app/features/admin/AdminEditUserCtrl.ts delete mode 100644 public/app/features/admin/partials/edit_user.html diff --git a/public/app/features/admin/AdminEditUserCtrl.ts b/public/app/features/admin/AdminEditUserCtrl.ts deleted file mode 100644 index e5f06ff1879..00000000000 --- a/public/app/features/admin/AdminEditUserCtrl.ts +++ /dev/null @@ -1,224 +0,0 @@ -import _ from 'lodash'; -import { getBackendSrv } from '@grafana/runtime'; -import { NavModelSrv } from 'app/core/core'; -import { User } from 'app/core/services/context_srv'; -import { UserSession, Scope, CoreEvents, AppEventEmitter } from 'app/types'; -import { dateTimeFormatTimeAgo, dateTimeFormat } from '@grafana/data'; -import { promiseToDigest } from 'app/core/utils/promiseToDigest'; - -export default class AdminEditUserCtrl { - /** @ngInject */ - constructor($scope: Scope & AppEventEmitter, $routeParams: any, $location: any, navModelSrv: NavModelSrv) { - $scope.user = {}; - $scope.sessions = []; - $scope.newOrg = { name: '', role: 'Editor' }; - $scope.permissions = {}; - $scope.navModel = navModelSrv.getNav('admin', 'global-users', 0); - - $scope.init = () => { - if ($routeParams.id) { - promiseToDigest($scope)( - Promise.all([ - $scope.getUser($routeParams.id), - $scope.getUserSessions($routeParams.id), - $scope.getUserOrgs($routeParams.id), - ]) - ); - } - }; - - $scope.getUser = (id: number) => { - return getBackendSrv() - .get('/api/users/' + id) - .then((user: User) => { - $scope.user = user; - $scope.user_id = id; - $scope.permissions.isGrafanaAdmin = user.isGrafanaAdmin; - }); - }; - - $scope.getUserSessions = (id: number) => { - return getBackendSrv() - .get('/api/admin/users/' + id + '/auth-tokens') - .then((sessions: UserSession[]) => { - sessions.reverse(); - - $scope.sessions = sessions.map((session: UserSession) => { - return { - id: session.id, - isActive: session.isActive, - seenAt: dateTimeFormatTimeAgo(session.seenAt), - createdAt: dateTimeFormat(session.createdAt, { format: 'MMMM DD, YYYY' }), - clientIp: session.clientIp, - browser: session.browser, - browserVersion: session.browserVersion, - os: session.os, - osVersion: session.osVersion, - device: session.device, - }; - }); - }); - }; - - $scope.revokeUserSession = (tokenId: number) => { - promiseToDigest($scope)( - getBackendSrv() - .post('/api/admin/users/' + $scope.user_id + '/revoke-auth-token', { - authTokenId: tokenId, - }) - .then(() => { - $scope.sessions = $scope.sessions.filter((session: UserSession) => { - if (session.id === tokenId) { - return false; - } - return true; - }); - }) - ); - }; - - $scope.revokeAllUserSessions = (tokenId: number) => { - promiseToDigest($scope)( - getBackendSrv() - .post('/api/admin/users/' + $scope.user_id + '/logout') - .then(() => { - $scope.sessions = []; - }) - ); - }; - - $scope.setPassword = () => { - if (!$scope.passwordForm.$valid) { - return; - } - - const payload = { password: $scope.password }; - - promiseToDigest($scope)( - getBackendSrv() - .put('/api/admin/users/' + $scope.user_id + '/password', payload) - .then(() => { - $location.path('/admin/users'); - }) - ); - }; - - $scope.updatePermissions = () => { - const payload = $scope.permissions; - getBackendSrv().put('/api/admin/users/' + $scope.user_id + '/permissions', payload); - }; - - $scope.getUserOrgs = (id: number) => { - return getBackendSrv() - .get('/api/users/' + id + '/orgs') - .then((orgs: any) => { - $scope.orgs = orgs; - }); - }; - - $scope.update = () => { - if (!$scope.userForm.$valid) { - return; - } - - promiseToDigest($scope)( - getBackendSrv() - .put('/api/users/' + $scope.user_id, $scope.user) - .then(() => { - $location.path('/admin/users'); - }) - ); - }; - - $scope.updateOrgUser = (orgUser: { orgId: string }) => { - promiseToDigest($scope)( - getBackendSrv().patch('/api/orgs/' + orgUser.orgId + '/users/' + $scope.user_id, orgUser) - ); - }; - - $scope.removeOrgUser = (orgUser: { orgId: string }) => { - promiseToDigest($scope)( - getBackendSrv() - .delete('/api/orgs/' + orgUser.orgId + '/users/' + $scope.user_id) - .then(() => Promise.all([$scope.getUser($scope.user_id), $scope.getUserOrgs($scope.user_id)])) - ); - }; - - $scope.orgsSearchCache = []; - - $scope.searchOrgs = (queryStr: any, callback: any) => { - if ($scope.orgsSearchCache.length > 0) { - callback(_.map($scope.orgsSearchCache, 'name')); - return; - } - - promiseToDigest($scope)( - getBackendSrv() - .get('/api/orgs', { query: '' }) - .then((result: any) => { - $scope.orgsSearchCache = result; - callback(_.map(result, 'name')); - }) - ); - }; - - $scope.addOrgUser = () => { - if (!$scope.addOrgForm.$valid) { - return; - } - - const orgInfo: any = _.find($scope.orgsSearchCache, { - name: $scope.newOrg.name, - }); - - if (!orgInfo) { - return; - } - - $scope.newOrg.loginOrEmail = $scope.user.login; - - promiseToDigest($scope)( - getBackendSrv() - .post('/api/orgs/' + orgInfo.id + '/users/', $scope.newOrg) - .then(() => Promise.all([$scope.getUser($scope.user_id), $scope.getUserOrgs($scope.user_id)])) - ); - }; - - $scope.deleteUser = (user: any) => { - $scope.appEvent(CoreEvents.showConfirmModal, { - title: 'Delete', - text: 'Do you want to delete ' + user.login + '?', - icon: 'trash-alt', - yesText: 'Delete', - onConfirm: () => { - promiseToDigest($scope)( - getBackendSrv() - .delete('/api/admin/users/' + user.id) - .then(() => { - $location.path('/admin/users'); - }) - ); - }, - }); - }; - - $scope.disableUser = (event: any) => { - const user = $scope.user; - - // External user can not be disabled - if (user.isExternal) { - event.preventDefault(); - event.stopPropagation(); - return; - } - - const actionEndpoint = user.isDisabled ? '/enable' : '/disable'; - - getBackendSrv() - .post('/api/admin/users/' + user.id + actionEndpoint) - .then(() => $scope.init()); - }; - - $scope.init(); - } -} diff --git a/public/app/features/admin/index.ts b/public/app/features/admin/index.ts index 36a1feccf68..71ad689da0c 100644 --- a/public/app/features/admin/index.ts +++ b/public/app/features/admin/index.ts @@ -1,4 +1,3 @@ -import AdminEditUserCtrl from './AdminEditUserCtrl'; import AdminEditOrgCtrl from './AdminEditOrgCtrl'; import coreModule from 'app/core/core_module'; @@ -13,6 +12,5 @@ class AdminHomeCtrl { } } -coreModule.controller('AdminEditUserCtrl', AdminEditUserCtrl); coreModule.controller('AdminEditOrgCtrl', AdminEditOrgCtrl); coreModule.controller('AdminHomeCtrl', AdminHomeCtrl); diff --git a/public/app/features/admin/partials/edit_user.html b/public/app/features/admin/partials/edit_user.html deleted file mode 100644 index d83f56f7cf6..00000000000 --- a/public/app/features/admin/partials/edit_user.html +++ /dev/null @@ -1,186 +0,0 @@ - - -
-

Edit User

- -
-
- Name - -
-
- Email - -
-
- Username - -
- -
- -
-
- -

Change password

- -
-
- New password - -
- -
- -
-
- -

Permissions

- -
-
- -
-
- -

Organizations

- -
-
-
- Add - -
-
- Role - - - -
-
- -
-
-
- -
- - - - - - - - - - - - - -
NameRole
{{org.name}} Current -
- - - -
-
- - - -
-
- -

Sessions

- -
-
- - - - - - - - - - - - - - - - - - - - -
Last seenLogged onIP addressBrowser & OS
Now{{session.seenAt}}{{session.createdAt}}{{session.clientIp}}{{session.browser}} on {{session.os}} {{session.osVersion}} - -
-
-
- -
-
- -

User status

- -
-
- - - -
-
-
- -