[pve-devel] [PATCH pve-manager] Improve HA UI for users with restricted permissions

Thomas Lamprecht t.lamprecht at proxmox.com
Fri Oct 30 15:20:14 CET 2015



On 10/30/2015 03:15 PM, Thomas Lamprecht wrote:
> Only show edit dialogs for HA resources and groups when an user
> has the privileges to edit them.
> ---
>   www/manager/ha/Groups.js    | 8 ++++++++
>   www/manager/ha/Resources.js | 8 ++++++++
>   2 files changed, 16 insertions(+)
>
> diff --git a/www/manager/ha/Groups.js b/www/manager/ha/Groups.js
> index 786327e..e596c00 100644
> --- a/www/manager/ha/Groups.js
> +++ b/www/manager/ha/Groups.js
> @@ -5,6 +5,8 @@ Ext.define('PVE.ha.GroupsView', {
>       initComponent : function() {
>   	var me = this;
>   
> +	var caps = Ext.state.Manager.get('GuiCap');
> +
>   	var store = new Ext.data.Store({
>   	    model: 'pve-ha-groups',
>   	    sorters: {
> @@ -67,6 +69,7 @@ Ext.define('PVE.ha.GroupsView', {
>   	    tbar: [
>   		{
>   		    text: gettext('Create'),
> +		    disabled: !caps.nodes['Sys.Console'],
>   		    handler: function() {
>   			var win = Ext.create('PVE.ha.GroupEdit',{});
>   			win.on('destroy', reload);
> @@ -110,6 +113,11 @@ Ext.define('PVE.ha.GroupsView', {
>   	    ],
>   	    listeners: {
>   		show: reload,
> +		beforeselect: function(grid, record, index, eOpts) {
> +		    if (!caps.nodes['Sys.Console']) {
> +			return false;
> +		    }
> +		},

To explain the addition made here and in the Resource.js:
The beforeselect event gets fired before a record is selected.
If any listener returns false, the selection is cancelled.

>   		itemdblclick: run_editor
>   	    }
>   	});
> diff --git a/www/manager/ha/Resources.js b/www/manager/ha/Resources.js
> index a8212bd..495f039 100644
> --- a/www/manager/ha/Resources.js
> +++ b/www/manager/ha/Resources.js
> @@ -5,6 +5,8 @@ Ext.define('PVE.ha.ResourcesView', {
>       initComponent : function() {
>   	var me = this;
>   
> +	var caps = Ext.state.Manager.get('GuiCap');
> +
>   	var store = new Ext.data.Store({
>   	    model: 'pve-ha-resources',
>   	    proxy: {
> @@ -93,6 +95,7 @@ Ext.define('PVE.ha.ResourcesView', {
>   	    tbar: [
>   		{
>   		    text: gettext('Add'),
> +		    disabled: !caps.nodes['Sys.Console'],
>   		    handler: function() {
>   			var win = Ext.create('PVE.ha.VMResourceEdit',{});
>   			win.on('destroy', reload);
> @@ -135,6 +138,11 @@ Ext.define('PVE.ha.ResourcesView', {
>   	    ],
>   	    listeners: {
>   		show: reload,
> +		beforeselect: function(grid, record, index, eOpts) {
> +		    if (!caps.nodes['Sys.Console']) {
> +			return false;
> +		    }
> +		},
>   		itemdblclick: run_editor
>   	    }
>   	});





More information about the pve-devel mailing list