mirror of https://github.com/grafana/grafana
parent
38142b371f
commit
1e064f6c19
@ -0,0 +1,13 @@ |
||||
<div> |
||||
<div class="section gf-form-group"> |
||||
<h5 class="section-heading">Options</h5> |
||||
<div class="gf-form"> |
||||
<folder-picker root-name="All" |
||||
initial-folder-id="ctrl.panel.folderId" |
||||
on-change="ctrl.onFolderChange($folder)" |
||||
label-class="width-6"> |
||||
</folder-picker> |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
After Width: | Height: | Size: 7.3 KiB |
@ -0,0 +1,30 @@ |
||||
<section class="card-section card-list-layout-list"> |
||||
<ol class="card-list"> |
||||
<li class="card-item-wrapper" ng-repeat="permission in ctrl.userPermissions"> |
||||
<div class="card-item card-item--alert"> |
||||
<div class="card-item-header"> |
||||
<div class="card-item-sub-name">{{permission.permissionName}}</div> |
||||
</div> |
||||
<div class="card-item-body"> |
||||
<div class="card-item-details"> |
||||
<div class="card-item-notice">{{permission.userLogin}}</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</li> |
||||
<li class="card-item-wrapper" ng-repeat="permission in ctrl.userGroupPermissions"> |
||||
<div class="card-item card-item--alert"> |
||||
<div class="card-item-header"> |
||||
<div class="card-item-sub-name">{{permission.permissionName}}</div> |
||||
</div> |
||||
<div class="card-item-body"> |
||||
<div class="card-item-details"> |
||||
<div class="card-item-notice">{{permission.userGroup}}</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</li> |
||||
</ol> |
||||
</section> |
||||
@ -0,0 +1,60 @@ |
||||
///<reference path="../../../headers/common.d.ts" />
|
||||
|
||||
import _ from 'lodash'; |
||||
import config from 'app/core/config'; |
||||
import {PanelCtrl} from 'app/plugins/sdk'; |
||||
import {impressions} from 'app/features/dashboard/impression_store'; |
||||
|
||||
class PermissionListCtrl extends PanelCtrl { |
||||
static templateUrl = 'module.html'; |
||||
|
||||
userPermissions: any[]; |
||||
userGroupPermissions: any[]; |
||||
roles: any[]; |
||||
|
||||
panelDefaults = { |
||||
folderId: 0 |
||||
}; |
||||
|
||||
/** @ngInject */ |
||||
constructor($scope, $injector, private backendSrv) { |
||||
super($scope, $injector); |
||||
_.defaults(this.panel, this.panelDefaults); |
||||
|
||||
this.events.on('refresh', this.onRefresh.bind(this)); |
||||
this.events.on('init-edit-mode', this.onInitEditMode.bind(this)); |
||||
|
||||
this.getPermissions(); |
||||
} |
||||
|
||||
onInitEditMode() { |
||||
this.editorTabIndex = 1; |
||||
this.addEditorTab('Options', 'public/app/plugins/panel/permissionlist/editor.html'); |
||||
} |
||||
|
||||
onRefresh() { |
||||
var promises = []; |
||||
|
||||
promises.push(this.getPermissions()); |
||||
|
||||
return Promise.all(promises) |
||||
.then(this.renderingCompleted.bind(this)); |
||||
} |
||||
|
||||
onFolderChange(folder: any) { |
||||
this.panel.folderId = folder.id; |
||||
this.refresh(); |
||||
} |
||||
|
||||
getPermissions() { |
||||
return this.backendSrv.get(`/api/dashboards/id/${this.panel.folderId}/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);
|
||||
}); |
||||
} |
||||
|
||||
} |
||||
|
||||
export {PermissionListCtrl, PermissionListCtrl as PanelCtrl}; |
||||
@ -0,0 +1,16 @@ |
||||
{ |
||||
"type": "panel", |
||||
"name": "Permission List", |
||||
"id": "permissionlist", |
||||
|
||||
"info": { |
||||
"author": { |
||||
"name": "Grafana Project", |
||||
"url": "https://grafana.com" |
||||
}, |
||||
"logos": { |
||||
"small": "img/icn-singlestat-panel.svg", |
||||
"large": "img/icn-singlestat-panel.svg" |
||||
} |
||||
} |
||||
} |
||||
Loading…
Reference in new issue