| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import config from 'app/core/config';
- import coreModule from 'app/core/core_module';
- import Remarkable from 'remarkable';
- import _ from 'lodash';
- export class OrgUsersCtrl {
- unfiltered: any;
- users: any;
- pendingInvites: any;
- editor: any;
- navModel: any;
- externalUserMngLinkUrl: string;
- externalUserMngLinkName: string;
- externalUserMngInfo: string;
- canInvite: boolean;
- searchQuery: string;
- showInvites: boolean;
- /** @ngInject */
- constructor(private $scope, private backendSrv, navModelSrv, $sce) {
- this.navModel = navModelSrv.getNav('cfg', 'users', 0);
- this.get();
- this.externalUserMngLinkUrl = config.externalUserMngLinkUrl;
- this.externalUserMngLinkName = config.externalUserMngLinkName;
- this.canInvite = !config.disableLoginForm && !config.externalUserMngLinkName;
- // render external user management info markdown
- if (config.externalUserMngInfo) {
- this.externalUserMngInfo = new Remarkable({
- linkTarget: '__blank',
- }).render(config.externalUserMngInfo);
- }
- }
- get() {
- this.backendSrv.get('/api/org/users')
- .then((users) => {
- this.users = users;
- this.unfiltered = users;
- });
- this.backendSrv.get('/api/org/invites')
- .then((pendingInvites) => {
- this.pendingInvites = pendingInvites;
- });
- }
- onQueryUpdated() {
- let regex = new RegExp(this.searchQuery, 'ig');
- this.users = _.filter(this.unfiltered, item => {
- return regex.test(item.email) || regex.test(item.login);
- });
- }
- updateOrgUser(user) {
- this.backendSrv.patch('/api/org/users/' + user.userId, user);
- }
- removeUser(user) {
- this.$scope.appEvent('confirm-modal', {
- title: 'Delete',
- text: 'Are you sure you want to delete user ' + user.login + '?',
- yesText: "Delete",
- icon: "fa-warning",
- onConfirm: () => {
- this.removeUserConfirmed(user);
- }
- });
- }
- removeUserConfirmed(user) {
- this.backendSrv.delete('/api/org/users/' + user.userId)
- .then(this.get.bind(this));
- }
- revokeInvite(invite, evt) {
- evt.stopPropagation();
- this.backendSrv.patch('/api/org/invites/' + invite.code + '/revoke')
- .then(this.get.bind(this));
- }
- copyInviteToClipboard(evt) {
- evt.stopPropagation();
- }
- getInviteUrl(invite) {
- return invite.url;
- }
- }
- coreModule.controller('OrgUsersCtrl', OrgUsersCtrl);
|