orgUsersCtrl.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. define([
  2. 'angular',
  3. ],
  4. function (angular) {
  5. 'use strict';
  6. var module = angular.module('grafana.controllers');
  7. module.controller('OrgUsersCtrl', function($scope, $http, backendSrv) {
  8. $scope.user = {
  9. loginOrEmail: '',
  10. role: 'Viewer',
  11. };
  12. $scope.users = [];
  13. $scope.pendingInvites = [];
  14. $scope.init = function() {
  15. $scope.get();
  16. $scope.editor = { index: 0 };
  17. };
  18. $scope.get = function() {
  19. backendSrv.get('/api/org/users').then(function(users) {
  20. $scope.users = users;
  21. });
  22. backendSrv.get('/api/org/invites').then(function(pendingInvites) {
  23. $scope.pendingInvites = pendingInvites;
  24. });
  25. };
  26. $scope.updateOrgUser = function(user) {
  27. backendSrv.patch('/api/org/users/' + user.userId, user);
  28. };
  29. $scope.removeUser = function(user) {
  30. backendSrv.delete('/api/org/users/' + user.userId).then($scope.get);
  31. };
  32. $scope.addUser = function() {
  33. if (!$scope.form.$valid) { return; }
  34. backendSrv.post('/api/org/users', $scope.user).then($scope.get);
  35. };
  36. $scope.openInviteModal = function() {
  37. var modalScope = $scope.$new();
  38. modalScope.invitesSent = function() {
  39. $scope.get();
  40. };
  41. $scope.appEvent('show-modal', {
  42. src: './app/features/org/partials/invite.html',
  43. modalClass: 'modal-no-header invite-modal',
  44. scope: modalScope
  45. });
  46. };
  47. $scope.init();
  48. });
  49. });