]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/ACLView.js
1 Ext
.define('PVE.dc.ACLAdd', {
2 extend
: 'Proxmox.window.Edit',
3 alias
: ['widget.pveACLAdd'],
12 initComponent: function() {
17 xtype
: me
.path
? 'hiddenfield' : 'pvePermPathSelector',
21 fieldLabel
: gettext('Path'),
25 if (me
.aclType
=== 'group') {
26 me
.subject
= gettext("Group Permission");
28 xtype
: 'pveGroupSelector',
30 fieldLabel
: gettext('Group'),
32 } else if (me
.aclType
=== 'user') {
33 me
.subject
= gettext("User Permission");
35 xtype
: 'pmxUserSelector',
37 fieldLabel
: gettext('User'),
39 } else if (me
.aclType
=== 'token') {
40 me
.subject
= gettext("API Token Permission");
42 xtype
: 'pveTokenSelector',
44 fieldLabel
: gettext('API Token'),
47 throw "unknown ACL type";
51 xtype
: 'pmxRoleSelector',
54 fieldLabel
: gettext('Role'),
59 xtype
: 'proxmoxcheckbox',
63 fieldLabel
: gettext('Propagate'),
67 let ipanel
= Ext
.create('Proxmox.panel.InputPanel', {
69 onlineHelp
: 'pveum_permission_management',
80 Ext
.define('PVE.dc.ACLView', {
81 extend
: 'Ext.grid.GridPanel',
83 alias
: ['widget.pveACLView'],
85 onlineHelp
: 'chapter_user_management',
93 initComponent: function() {
96 let store
= Ext
.create('Ext.data.Store', {
100 url
: "/api2/json/access/acl",
109 store
.addFilter(Ext
.create('Ext.util.Filter', {
110 filterFn
: item
=> item
.data
.path
=== me
.path
,
114 let render_ugid = function(ugid
, metaData
, record
) {
115 if (record
.data
.type
=== 'group') {
119 return Ext
.String
.htmlEncode(ugid
);
124 header
: gettext('User') + '/' + gettext('Group') + '/' + gettext('API Token'),
127 renderer
: render_ugid
,
131 header
: gettext('Role'),
140 header
: gettext('Path'),
146 header
: gettext('Propagate'),
149 dataIndex
: 'propagate',
153 let sm
= Ext
.create('Ext.selection.RowModel', {});
155 let remove_btn
= new Proxmox
.button
.Button({
156 text
: gettext('Remove'),
159 confirmMsg
: gettext('Are you sure you want to remove this entry'),
160 handler: function(btn
, event
, rec
) {
164 roles
: rec
.data
.roleid
,
166 if (rec
.data
.type
=== 'group') {
167 params
.groups
= rec
.data
.ugid
;
168 } else if (rec
.data
.type
=== 'user') {
169 params
.users
= rec
.data
.ugid
;
170 } else if (rec
.data
.type
=== 'token') {
171 params
.tokens
= rec
.data
.ugid
;
173 throw 'unknown data type';
176 Proxmox
.Utils
.API2Request({
181 callback
: () => store
.load(),
182 failure
: response
=> Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
),
187 Proxmox
.Utils
.monStoreErrors(me
, store
);
194 text
: gettext('Add'),
199 text
: gettext('Group Permission'),
200 iconCls
: 'fa fa-fw fa-group',
201 handler: function() {
202 var win
= Ext
.create('PVE.dc.ACLAdd', {
206 win
.on('destroy', () => store
.load());
211 text
: gettext('User Permission'),
212 iconCls
: 'fa fa-fw fa-user',
213 handler: function() {
214 var win
= Ext
.create('PVE.dc.ACLAdd', {
218 win
.on('destroy', () => store
.load());
223 text
: gettext('API Token Permission'),
224 iconCls
: 'fa fa-fw fa-user-o',
225 handler: function() {
226 let win
= Ext
.create('PVE.dc.ACLAdd', {
230 win
.on('destroy', () => store
.load());
244 activate
: () => store
.load(),
251 Ext
.define('pve-acl', {
252 extend
: 'Ext.data.Model',
254 'path', 'type', 'ugid', 'roleid',