diff --git a/public/app/features/dashboard/acl/acl.html b/public/app/features/dashboard/acl/acl.html index 63ccb540ff5..d31b2ce6999 100644 --- a/public/app/features/dashboard/acl/acl.html +++ b/public/app/features/dashboard/acl/acl.html @@ -4,7 +4,7 @@
Type - +
User @@ -27,51 +27,46 @@
-
Users
+
Permissions
- + + + - -
UserName Permission
{{permission.userLogin}} - +
-
-
-
-
Groups
-
- - - - - - - - - + - + + + + + + +
User GroupPermission
{{permission.userGroup}} - +
{{role.name}} + +
diff --git a/public/app/features/dashboard/acl/acl.ts b/public/app/features/dashboard/acl/acl.ts index 85dffbb1651..002eb31ed29 100644 --- a/public/app/features/dashboard/acl/acl.ts +++ b/public/app/features/dashboard/acl/acl.ts @@ -15,12 +15,20 @@ export class AclCtrl { {value: 4, text: 'Edit'} ]; - type = 'User'; + roleOptions = [ + {value: 0, text: 'None'}, + {value: 1, text: 'View'}, + {value: 2, text: 'Read-only Edit'}, + {value: 4, text: 'Edit'} + ]; + + roles = []; + + type = 'User Group'; permission = 1; userId: number; userGroupId: number; - /** @ngInject */ constructor(private backendSrv, private $scope) { this.tabIndex = 0; @@ -30,13 +38,23 @@ export class AclCtrl { } get(dashboardId: number) { - return this.backendSrv.get(`/api/dashboards/${dashboardId}/acl`) + return this.backendSrv.get(`/api/dashboards/id/${dashboardId}/acl`) .then(result => { this.userPermissions = _.filter(result, p => { return p.userId > 0;}); this.userGroupPermissions = _.filter(result, p => { return p.userGroupId > 0;}); + this.roles = this.setRoles(result); }); } + setRoles(result: any) { + return [ + {name: 'Org Viewer', permissions: 1}, + {name: 'Org Read Only Editor', permissions: 2}, + {name: 'Org Editor', permissions: 4}, + {name: 'Org Admin', permissions: 4} + ]; + } + addPermission() { if (this.type === 'User') { if (!this.userId) { @@ -59,38 +77,32 @@ export class AclCtrl { } addOrUpdateUserPermission(userId: number, permissionType: number) { - return this.backendSrv.post(`/api/dashboards/${this.dashboard.id}/acl`, { + return this.backendSrv.post(`/api/dashboards/id/${this.dashboard.id}/acl`, { userId: userId, - permissionType: permissionType + permissions: permissionType }); } addOrUpdateUserGroupPermission(userGroupId: number, permissionType: number) { - return this.backendSrv.post(`/api/dashboards/${this.dashboard.id}/acl`, { + return this.backendSrv.post(`/api/dashboards/id/${this.dashboard.id}/acl`, { userGroupId: userGroupId, - permissionType: permissionType + permissions: permissionType }); } updatePermission(permission: any) { if (permission.userId > 0) { - return this.addOrUpdateUserPermission(permission.userId, permission.permissionType); + return this.addOrUpdateUserPermission(permission.userId, permission.permissions); } else { if (!permission.userGroupId) { return; } - return this.addOrUpdateUserGroupPermission(permission.userGroupId, permission.permissionType); + return this.addOrUpdateUserGroupPermission(permission.userGroupId, permission.permissions); } } - removeUserPermission(permission: Permission) { - return this.backendSrv.delete(`/api/dashboards/${permission.dashboardId}/acl/user/${permission.userId}`).then(() => { - return this.get(permission.dashboardId); - }); - } - - removeUserGroupPermission(permission: Permission) { - return this.backendSrv.delete(`/api/dashboards/${permission.dashboardId}/acl/user-group/${permission.userGroupId}`).then(() => { + removePermission(permission: Permission) { + return this.backendSrv.delete(`/api/dashboards/id/${permission.dashboardId}/acl/${permission.id}`).then(() => { return this.get(permission.dashboardId); }); }