]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/UserView.js
4d2238e32f46105fea544efc21e057b520ebd829
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 onlineHelp
: 'pveum_users',
62 stateId
: 'grid-users',
64 initComponent : function() {
67 var caps
= Ext
.state
.Manager
.get('GuiCap');
69 var store
= new Ext
.data
.Store({
78 var reload = function() {
82 var sm
= Ext
.create('Ext.selection.RowModel', {});
84 var remove_btn
= new PVE
.button
.Button({
85 text
: gettext('Remove'),
88 enableFn: function(rec
) {
89 if (!caps
.access
['User.Modify']) {
92 return rec
.data
.userid
!== 'root@pam';
94 confirmMsg: function (rec
) {
95 return Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
96 "'" + rec
.data
.userid
+ "'");
98 handler: function(btn
, event
, rec
) {
99 var userid
= rec
.data
.userid
;
101 PVE
.Utils
.API2Request({
102 url
: '/access/users/' + userid
,
105 callback: function() {
108 failure: function (response
, opts
) {
109 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
115 var run_editor = function() {
116 var rec
= sm
.getSelection()[0];
117 if (!rec
|| !caps
.access
['User.Modify']) {
121 var win
= Ext
.create('PVE.dc.UserEdit',{
122 userid
: rec
.data
.userid
124 win
.on('destroy', reload
);
128 var edit_btn
= new PVE
.button
.Button({
129 text
: gettext('Edit'),
131 enableFn: function(rec
) {
132 return !!caps
.access
['User.Modify'];
138 var pwchange_btn
= new PVE
.button
.Button({
139 text
: gettext('Password'),
142 handler: function(btn
, event
, rec
) {
143 var win
= Ext
.create('PVE.window.PasswordEdit',{
144 userid
: rec
.data
.userid
146 win
.on('destroy', reload
);
153 text
: gettext('Add'),
154 disabled
: !caps
.access
['User.Modify'],
155 handler: function() {
156 var win
= Ext
.create('PVE.dc.UserEdit',{
158 win
.on('destroy', reload
);
162 edit_btn
, remove_btn
, pwchange_btn
165 var render_full_name = function(firstname
, metaData
, record
) {
167 var first
= firstname
|| '';
168 var last
= record
.data
.lastname
|| '';
169 return first
+ " " + last
;
172 var render_username = function(userid
) {
173 return userid
.match(/^(.+)(@[^@]+)$/)[1];
176 var render_realm = function(userid
) {
177 return userid
.match(/@([^@]+)$/)[1];
189 header
: gettext('User name'),
192 renderer
: render_username
,
196 header
: gettext('Realm'),
199 renderer
: render_realm
,
203 header
: gettext('Enabled'),
206 renderer
: PVE
.Utils
.format_boolean
,
210 header
: gettext('Expire'),
213 renderer
: PVE
.Utils
.format_expire
,
217 header
: gettext('Name'),
220 renderer
: render_full_name
,
221 dataIndex
: 'firstname'
224 header
: gettext('Comment'),
226 renderer
: Ext
.String
.htmlEncode
,
227 dataIndex
: 'comment',
233 itemdblclick
: run_editor