]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/ACLView.js
3e66386bc4600075cffc27192ea187615811a0c0
1 Ext
.define('PVE.dc.ACLAdd', {
2 extend
: 'Proxmox.window.Edit',
3 alias
: ['widget.pveACLAdd'],
7 initComponent: function() {
14 xtype
: me
.path
? 'hiddenfield' : 'pvePermPathSelector',
18 fieldLabel
: gettext('Path'),
22 if (me
.aclType
=== 'group') {
23 me
.subject
= gettext("Group Permission");
25 xtype
: 'pveGroupSelector',
27 fieldLabel
: gettext('Group'),
29 } else if (me
.aclType
=== 'user') {
30 me
.subject
= gettext("User Permission");
32 xtype
: 'pveUserSelector',
34 fieldLabel
: gettext('User'),
36 } else if (me
.aclType
=== 'token') {
37 me
.subject
= gettext("API Token Permission");
39 xtype
: 'pveTokenSelector',
41 fieldLabel
: gettext('API Token'),
44 throw "unknown ACL type";
48 xtype
: 'pmxRoleSelector',
51 fieldLabel
: gettext('Role'),
56 xtype
: 'proxmoxcheckbox',
60 fieldLabel
: gettext('Propagate'),
64 var ipanel
= Ext
.create('Proxmox.panel.InputPanel', {
66 onlineHelp
: 'pveum_permission_management',
77 Ext
.define('PVE.dc.ACLView', {
78 extend
: 'Ext.grid.GridPanel',
80 alias
: ['widget.pveACLView'],
82 onlineHelp
: 'chapter_user_management',
90 initComponent: function() {
93 var store
= Ext
.create('Ext.data.Store', {
97 url
: "/api2/json/access/acl",
106 store
.addFilter(Ext
.create('Ext.util.Filter', {
107 filterFn: function(item
) {
108 if (item
.data
.path
=== me
.path
) {
115 var render_ugid = function(ugid
, metaData
, record
) {
116 if (record
.data
.type
== 'group') {
120 return Ext
.String
.htmlEncode(ugid
);
125 header
: gettext('User') + '/' + gettext('Group') + '/' + gettext('API Token'),
128 renderer
: render_ugid
,
132 header
: gettext('Role'),
141 header
: gettext('Path'),
147 header
: gettext('Propagate'),
150 dataIndex
: 'propagate',
154 var sm
= Ext
.create('Ext.selection.RowModel', {});
156 var reload = function() {
160 var remove_btn
= new Proxmox
.button
.Button({
161 text
: gettext('Remove'),
164 confirmMsg
: gettext('Are you sure you want to remove this entry'),
165 handler: function(btn
, event
, rec
) {
169 roles
: rec
.data
.roleid
,
171 if (rec
.data
.type
=== 'group') {
172 params
.groups
= rec
.data
.ugid
;
173 } else if (rec
.data
.type
=== 'user') {
174 params
.users
= rec
.data
.ugid
;
175 } else if (rec
.data
.type
=== 'token') {
176 params
.tokens
= rec
.data
.ugid
;
178 throw 'unknown data type';
181 Proxmox
.Utils
.API2Request({
186 callback: function() {
189 failure: function(response
, opts
) {
190 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
196 Proxmox
.Utils
.monStoreErrors(me
, store
);
203 text
: gettext('Add'),
208 text
: gettext('Group Permission'),
209 iconCls
: 'fa fa-fw fa-group',
210 handler: function() {
211 var win
= Ext
.create('PVE.dc.ACLAdd', {
215 win
.on('destroy', reload
);
220 text
: gettext('User Permission'),
221 iconCls
: 'fa fa-fw fa-user',
222 handler: function() {
223 var win
= Ext
.create('PVE.dc.ACLAdd', {
227 win
.on('destroy', reload
);
232 text
: gettext('API Token Permission'),
233 iconCls
: 'fa fa-fw fa-user-o',
234 handler: function() {
235 var win
= Ext
.create('PVE.dc.ACLAdd', {
239 win
.on('destroy', reload
);
260 Ext
.define('pve-acl', {
261 extend
: 'Ext.data.Model',
263 'path', 'type', 'ugid', 'roleid',