[pbs-devel] [PATCH proxmox-backup] gui: user: fix #2898 add dialog to set password

Dominik Csapak d.csapak at proxmox.com
Thu Jul 30 10:22:22 CEST 2020


works as intended, one nit inline

other than that:

Reviewed-By: Dominik Csapak <d.csapak at proxmox.com>
Tested-By: Dominik Csapak <d.csapak at proxmox.com>

On 7/29/20 10:33 AM, Aaron Lauterer wrote:
> Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
> ---
>   www/Makefile               |  1 +
>   www/config/UserView.js     | 18 ++++++++++++++
>   www/window/UserPassword.js | 49 ++++++++++++++++++++++++++++++++++++++
>   3 files changed, 68 insertions(+)
>   create mode 100644 www/window/UserPassword.js
> 
> diff --git a/www/Makefile b/www/Makefile
> index d8c91a18..edce8cb3 100644
> --- a/www/Makefile
> +++ b/www/Makefile
> @@ -18,6 +18,7 @@ JSSRC=							\
>   	config/SyncView.js				\
>   	config/DataStoreConfig.js			\
>   	window/UserEdit.js				\
> +	window/UserPassword.js				\
>   	window/RemoteEdit.js				\
>   	window/SyncJobEdit.js				\
>   	window/ACLEdit.js				\
> diff --git a/www/config/UserView.js b/www/config/UserView.js
> index 7a869d44..91e7a83a 100644
> --- a/www/config/UserView.js
> +++ b/www/config/UserView.js
> @@ -51,6 +51,18 @@ Ext.define('PBS.config.UserView', {
>               }).show();
>   	},
>   
> +	setPassword: function() {
> +	    let me = this;
> +	    let view = me.getView();
> +	    let selection = view.getSelection();
> +
> +	    if (selection.length < 1) return;
> +
> +	    Ext.create('PBS.window.UserPassword', {
> +		url: '/api2/extjs/access/users/' + selection[0].data.userid,
> +	    }).show();
> +	},
> +
>   	renderUsername: function(userid) {
>   	    return Ext.String.htmlEncode(userid.match(/^(.+)@([^@]+)$/)[1]);
>   	},
> @@ -98,6 +110,12 @@ Ext.define('PBS.config.UserView', {
>   	    handler: 'editUser',
>   	    disabled: true,
>   	},
> +	{
> +	    xtype: 'proxmoxButton',
> +	    text: gettext('Password'),
> +	    handler: 'setPassword',
> +	    disabled: true,
> +	},
>   	{
>   	    xtype: 'proxmoxStdRemoveButton',
>   	    baseurl: '/access/users/',
> diff --git a/www/window/UserPassword.js b/www/window/UserPassword.js
> new file mode 100644
> index 00000000..ed1c2e32
> --- /dev/null
> +++ b/www/window/UserPassword.js
> @@ -0,0 +1,49 @@
> +Ext.define('PBS.window.UserPassword', {
> +    extend: 'Proxmox.window.Edit',
> +    alias: 'widget.pbsUserPassword',
> +
> +    userid: undefined,
> +
> +    method: 'PUT',
> +
> +    subject: gettext('User Password'),
> +
> +    fieldDefaults: { labelWidth: 120 },
> +
> +    items: [
> +	{
> +	    xtype: 'textfield',
> +	    inputType: 'password',
> +	    fieldLabel: gettext('Password'),
> +	    minLength: 5,
> +	    allowBlank: false,
> +	    name: 'password',
> +	    listeners: {
> +		change: function(field) {
> +		    field.next().validate();
> +		},
> +		blur: function(field) {
> +		    field.next().validate();
> +		},
> +	    },
> +	},
> +	{
> +	    xtype: 'textfield',
> +	    inputType: 'password',
> +	    fieldLabel: gettext('Confirm password'),
> +	    name: 'verifypassword',
> +	    vtype: 'password',
> +	    initialPassField: 'password',
> +	    allowBlank: false,
> +	    submitValue: false,
> +	},
> +    ],
> +
> +    getValues: function(dirtyOnly) {
> +	var me = this;
> +
> +	var values = me.callParent(arguments);
> +
> +	return values;
> +    },

if we only call callParent, is it necessary to have it at all?

> +});
> 






More information about the pbs-devel mailing list