]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/PermissionView.js
1 /*jslint confusion: true */
3 Ext
.define('pve-permissions', {
4 extend
: 'Ext.data.TreeModel',
7 { type
: 'boolean', name
: 'propagate' }
11 Ext
.define('PVE.dc.PermissionGridPanel', {
12 extend
: 'Ext.tree.Panel',
13 onlineHelp
: 'chapter_user_management',
17 sorterFn: function(rec1
, rec2
) {
20 if (rec1
.data
.type
!= rec2
.data
.type
) {
28 return (v1
> v2
? 1 : (v1
< v2
? -1 : 0));
31 initComponent: function() {
34 Proxmox
.Utils
.API2Request({
35 url
: '/access/permissions?userid=' + me
.userid
,
37 failure: function(response
, opts
) {
38 Proxmox
.Utils
.setErrorMask(me
, response
.htmlStatus
);
39 me
.load_task
.delay(me
.load_delay
);
41 success: function(response
, opts
) {
42 Proxmox
.Utils
.setErrorMask(me
, false);
43 var result
= Ext
.decode(response
.responseText
);
44 var data
= result
.data
|| {};
47 var root
= { name
: '__root', expanded
: true, children
: [] };
49 Ext
.Object
.each(data
, function(path
, perms
) {
51 path_item
.text
= path
;
52 path_item
.type
= 'path';
53 path_item
.children
= [];
54 Ext
.Object
.each(perms
, function(perm
, propagate
) {
56 perm_item
.text
= perm
;
57 perm_item
.type
= 'perm';
58 perm_item
.propagate
= propagate
== 1 ? true : false;
59 perm_item
.iconCls
= 'fa fa-fw fa-unlock';
60 perm_item
.leaf
= true;
61 path_item
.children
.push(perm_item
);
62 path_item
.expandable
= true;
64 idhash
[path
] = path_item
;
75 Ext
.Object
.each(idhash
, function(path
, item
) {
81 let split_path
= path
.split('/');
82 while (split_path
.pop()) {
83 let parent_path
= split_path
.join('/');
84 if (parent_item
= idhash
[parent_path
]) {
90 parent_item
= idhash
['/'];
92 parent_item
.children
.push(item
);
99 var sm
= Ext
.create('Ext.selection.RowModel', {});
105 sortableColumns
: false,
110 header
: gettext('Path') + '/' + gettext('Permission'),
116 header
: gettext('Propagate'),
119 renderer: function(value
) {
120 if (Ext
.isDefined(value
)) {
121 return Proxmox
.Utils
.format_boolean(value
);
126 dataIndex
: 'propagate'
135 me
.store
.sorters
.add(new Ext
.util
.Sorter({
136 sorterFn
: me
.sorterFn
141 Ext
.define('PVE.dc.PermissionView', {
142 extend
: 'Ext.window.Window',
148 initComponent: function() {
152 throw "no userid specified";
155 var grid
= Ext
.create('PVE.dc.PermissionGridPanel', {
160 title
: me
.userid
+ ' - ' + gettext('Permissions'),