diff --git a/public/app/core/routes/routes.ts b/public/app/core/routes/routes.ts
index 82da84fbc56..4df007d7bd6 100644
--- a/public/app/core/routes/routes.ts
+++ b/public/app/core/routes/routes.ts
@@ -71,6 +71,7 @@ function setupAngularRoutes($routeProvider, $locationProvider) {
.when('/org/users', {
templateUrl: 'public/app/features/org/partials/orgUsers.html',
controller : 'OrgUsersCtrl',
+ controllerAs: 'ctrl',
resolve: loadOrgBundle,
})
.when('/org/apikeys', {
diff --git a/public/app/features/org/all.js b/public/app/features/org/all.js
index d232b3bcd0a..cebd0dd1def 100644
--- a/public/app/features/org/all.js
+++ b/public/app/features/org/all.js
@@ -1,5 +1,5 @@
define([
- './orgUsersCtrl',
+ './org_users_ctrl',
'./newOrgCtrl',
'./userInviteCtrl',
'./orgApiKeysCtrl',
diff --git a/public/app/features/org/orgUsersCtrl.js b/public/app/features/org/orgUsersCtrl.js
deleted file mode 100644
index 0419e4d4a3b..00000000000
--- a/public/app/features/org/orgUsersCtrl.js
+++ /dev/null
@@ -1,66 +0,0 @@
-define([
- 'angular',
-],
-function (angular) {
- 'use strict';
-
- var module = angular.module('grafana.controllers');
-
- module.controller('OrgUsersCtrl', function($scope, $http, backendSrv) {
-
- $scope.user = {
- loginOrEmail: '',
- role: 'Viewer',
- };
-
- $scope.users = [];
- $scope.pendingInvites = [];
-
- $scope.init = function() {
- $scope.get();
- $scope.editor = { index: 0 };
- };
-
- $scope.get = function() {
- backendSrv.get('/api/org/users').then(function(users) {
- $scope.users = users;
- });
- backendSrv.get('/api/org/invites').then(function(pendingInvites) {
- $scope.pendingInvites = pendingInvites;
- });
- };
-
- $scope.updateOrgUser = function(user) {
- backendSrv.patch('/api/org/users/' + user.userId, user);
- };
-
- $scope.removeUser = function(user) {
- backendSrv.delete('/api/org/users/' + user.userId).then($scope.get);
- };
-
- $scope.revokeInvite = function(invite, evt) {
- evt.stopPropagation();
- backendSrv.patch('/api/org/invites/' + invite.code + '/revoke').then($scope.get);
- };
-
- $scope.copyInviteToClipboard = function(evt) {
- evt.stopPropagation();
- };
-
- $scope.openInviteModal = function() {
- var modalScope = $scope.$new();
- modalScope.invitesSent = function() {
- $scope.get();
- };
-
- $scope.appEvent('show-modal', {
- src: 'public/app/features/org/partials/invite.html',
- modalClass: 'modal-no-header invite-modal',
- scope: modalScope
- });
- };
-
- $scope.init();
-
- });
-});
diff --git a/public/app/features/org/org_users_ctrl.ts b/public/app/features/org/org_users_ctrl.ts
new file mode 100644
index 00000000000..9d77148e2ab
--- /dev/null
+++ b/public/app/features/org/org_users_ctrl.ts
@@ -0,0 +1,85 @@
+///