diff --git a/src/views/users.html b/src/views/users.html index 874429b70..489de6f73 100644 --- a/src/views/users.html +++ b/src/views/users.html @@ -667,7 +667,7 @@ - + diff --git a/src/views/users.js b/src/views/users.js index e6166eba5..ce21e35f0 100644 --- a/src/views/users.js +++ b/src/views/users.js @@ -3,6 +3,7 @@ /* global angular */ /* global Clipboard */ /* global async */ +/* global ROLES */ /* global $ */ angular.module('Application').controller('UsersController', ['$scope', '$location', '$translate', '$timeout', 'Client', function ($scope, $location, $translate, $timeout, Client) { @@ -71,6 +72,19 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio return (roleInt1 - roleInt2) >= 0; }; + $scope.canImpersonate = function (user) { + // only admins can impersonate + if (!$scope.userInfo.isAtLeastAdmin) return false; + + // only users with username can be impersonated + if (!user.username) return false; + + // normal admins cannot impersonate owners + if (!$scope.userInfo.isAtLeastOwner && [ ROLES.OWNER ].indexOf(user.role) !== -1) return false; + + return true; + }; + $scope.transferOwnership = { busy: false, error: null,