]>
git.proxmox.com Git - pve-manager.git/blob - www/manager/dc/UserView.js
1 Ext
.define('PVE.window.PasswordEdit', {
2 extend
: 'PVE.window.Edit',
4 initComponent : function() {
8 throw "no userid specified";
14 var validate_pw = function() {
15 if (verifypw
.getValue() !== pwfield
.getValue()) {
16 return gettext("Passwords does not match");
21 verifypw
= Ext
.createWidget('textfield', {
22 inputType
: 'password',
23 fieldLabel
: gettext('Confirm password'),
24 name
: 'verifypassword',
26 validator
: validate_pw
29 pwfield
= Ext
.createWidget('textfield', {
30 inputType
: 'password',
31 fieldLabel
: gettext('Password'),
34 validator
: validate_pw
38 subject
: gettext('Password'),
39 url
: '/api2/extjs/access/password',
54 Ext
.define('PVE.dc.UserView', {
55 extend
: 'Ext.grid.GridPanel',
57 alias
: ['widget.pveUserView'],
59 initComponent : function() {
62 var caps
= Ext
.state
.Manager
.get('GuiCap');
64 var store
= new Ext
.data
.Store({
73 var reload = function() {
77 var sm
= Ext
.create('Ext.selection.RowModel', {});
79 var remove_btn
= new PVE
.button
.Button({
80 text
: gettext('Remove'),
83 enableFn: function(rec
) {
84 if (!caps
.access
['User.Modify']) {
87 return rec
.data
.userid
!== 'root@pam';
89 confirmMsg: function (rec
) {
90 return Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
91 "'" + rec
.data
.userid
+ "'");
93 handler: function(btn
, event
, rec
) {
94 var userid
= rec
.data
.userid
;
96 PVE
.Utils
.API2Request({
97 url
: '/access/users/' + userid
,
100 callback: function() {
103 failure: function (response
, opts
) {
104 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
110 var run_editor = function() {
111 var rec
= sm
.getSelection()[0];
112 if (!rec
|| !caps
.access
['User.Modify']) {
116 var win
= Ext
.create('PVE.dc.UserEdit',{
117 userid
: rec
.data
.userid
119 win
.on('destroy', reload
);
123 var edit_btn
= new PVE
.button
.Button({
124 text
: gettext('Edit'),
126 enableFn: function(rec
) {
127 return !!caps
.access
['User.Modify'];
133 var pwchange_btn
= new PVE
.button
.Button({
134 text
: gettext('Password'),
137 handler: function(btn
, event
, rec
) {
138 var win
= Ext
.create('PVE.window.PasswordEdit',{
139 userid
: rec
.data
.userid
141 win
.on('destroy', reload
);
148 text
: gettext('Add'),
149 disabled
: !caps
.access
['User.Modify'],
150 handler: function() {
151 var win
= Ext
.create('PVE.dc.UserEdit',{
153 win
.on('destroy', reload
);
157 edit_btn
, remove_btn
, pwchange_btn
160 var render_full_name = function(firstname
, metaData
, record
) {
162 var first
= firstname
|| '';
163 var last
= record
.data
.lastname
|| '';
164 return first
+ " " + last
;
167 var render_username = function(userid
) {
168 return userid
.match(/^([^@]+)/)[1];
171 var render_realm = function(userid
) {
172 return userid
.match(/@([^@]+)$/)[1];
185 header
: gettext('User name'),
188 renderer
: render_username
,
192 header
: gettext('Realm'),
195 renderer
: render_realm
,
199 header
: gettext('Enabled'),
202 renderer
: PVE
.Utils
.format_boolean
,
206 header
: gettext('Expire'),
209 renderer
: PVE
.Utils
.format_expire
,
213 header
: gettext('Name'),
216 renderer
: render_full_name
,
217 dataIndex
: 'firstname'
221 header
: gettext('Comment'),
223 dataIndex
: 'comment',
229 itemdblclick
: run_editor