]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/TokenView.js
1 Ext
.define('PVE.dc.TokenView', {
2 extend
: 'Ext.grid.GridPanel',
3 alias
: ['widget.pveTokenView'],
5 onlineHelp
: 'chapter_user_management',
8 stateId
: 'grid-tokens',
13 initComponent: function() {
16 let caps
= Ext
.state
.Manager
.get('GuiCap');
18 let store
= new Ext
.data
.Store({
24 let reload = function() {
26 Proxmox
.Utils
.API2Request({
27 url
: `/access/users/${encodeURIComponent(me.fixedUser)}/token`,
29 failure: function(response
, opts
) {
30 Proxmox
.Utils
.setErrorMask(me
, response
.htmlStatus
);
31 me
.load_task
.delay(me
.load_delay
);
33 success: function(response
, opts
) {
34 Proxmox
.Utils
.setErrorMask(me
, false);
35 let result
= Ext
.decode(response
.responseText
);
36 let data
= result
.data
|| [];
38 Ext
.Array
.each(data
, function(token
) {
40 r
.id
= me
.fixedUser
+ '!' + token
.tokenid
;
41 r
.userid
= me
.fixedUser
;
42 r
.tokenid
= token
.tokenid
;
43 r
.comment
= token
.comment
;
44 r
.expire
= token
.expire
;
45 r
.privsep
= token
.privsep
=== 1;
48 store
.loadData(records
);
53 Proxmox
.Utils
.API2Request({
54 url
: '/access/users/?full=1',
56 failure: function(response
, opts
) {
57 Proxmox
.Utils
.setErrorMask(me
, response
.htmlStatus
);
58 me
.load_task
.delay(me
.load_delay
);
60 success: function(response
, opts
) {
61 Proxmox
.Utils
.setErrorMask(me
, false);
62 let result
= Ext
.decode(response
.responseText
);
63 let data
= result
.data
|| [];
65 Ext
.Array
.each(data
, function(user
) {
66 let tokens
= user
.tokens
|| [];
67 Ext
.Array
.each(tokens
, function(token
) {
69 r
.id
= user
.userid
+ '!' + token
.tokenid
;
70 r
.userid
= user
.userid
;
71 r
.tokenid
= token
.tokenid
;
72 r
.comment
= token
.comment
;
73 r
.expire
= token
.expire
;
74 r
.privsep
= token
.privsep
=== 1;
78 store
.loadData(records
);
83 let sm
= Ext
.create('Ext.selection.RowModel', {});
85 let urlFromRecord
= (rec
) => {
86 let uid
= encodeURIComponent(rec
.data
.userid
);
87 let tid
= encodeURIComponent(rec
.data
.tokenid
);
88 return `/access/users/${uid}/token/${tid}`;
91 let run_editor = function(rec
) {
92 if (!caps
.access
['User.Modify']) {
96 let win
= Ext
.create('PVE.dc.TokenEdit', {
98 url
: urlFromRecord(rec
),
100 win
.setValues(rec
.data
);
101 win
.on('destroy', reload
);
107 text
: gettext('Add'),
108 disabled
: !caps
.access
['User.Modify'],
109 handler: function(btn
, e
, rec
) {
112 data
.userid
= me
.fixedUser
;
113 data
.fixedUser
= true;
114 } else if (rec
&& rec
.data
) {
115 data
.userid
= rec
.data
.userid
;
117 let win
= Ext
.create('PVE.dc.TokenEdit', {
119 fixedUser
: me
.fixedUser
,
122 win
.on('destroy', reload
);
127 xtype
: 'proxmoxButton',
128 text
: gettext('Edit'),
130 enableFn
: (rec
) => !!caps
.access
['User.Modify'],
132 handler
: (btn
, e
, rec
) => run_editor(rec
),
135 xtype
: 'proxmoxStdRemoveButton',
137 enableFn
: (rec
) => !!caps
.access
['User.Modify'],
139 getUrl
: urlFromRecord
,
143 xtype
: 'proxmoxButton',
144 text
: gettext('Show Permissions'),
147 handler: function(btn
, event
, rec
) {
148 Ext
.create('PVE.dc.PermissionView', {
165 header
: gettext('User name'),
168 let realmIndex
= uid
.lastIndexOf('@');
169 let user
= Ext
.String
.htmlEncode(uid
.substr(0, realmIndex
));
170 let realm
= Ext
.String
.htmlEncode(uid
.substr(realmIndex
));
171 return `${user} <span style='float:right;'>${realm}</span>`;
173 hidden
: !!me
.fixedUser
,
177 header
: gettext('Token Name'),
178 dataIndex
: 'tokenid',
183 header
: gettext('Expire'),
186 renderer
: Proxmox
.Utils
.format_expire
,
190 header
: gettext('Comment'),
191 dataIndex
: 'comment',
192 renderer
: Ext
.String
.htmlEncode
,
196 header
: gettext('Privilege Separation'),
197 dataIndex
: 'privsep',
199 renderer
: Proxmox
.Utils
.format_boolean
,
205 itemdblclick
: (view
, rec
) => run_editor(rec
),
217 Ext
.define('PVE.window.TokenView', {
218 extend
: 'Ext.window.Window',
219 mixins
: ['Proxmox.Mixin.CBind'],
222 subject
: gettext('API Tokens'),
228 title
: gettext('API Tokens') + ' - {userid}',
231 xtype
: 'pveTokenView',
233 fixedUser
: '{userid}',