From 7652a1bb781b1c578cbdc1dda7bbcefcae664417 Mon Sep 17 00:00:00 2001 From: juanmont Date: Thu, 4 May 2017 19:46:45 +0200 Subject: [PATCH] Feature #5106 Permissions for VMgroups (#283) * F #5106 Added permissions table to info of vmgroups * F #5106 Added new section to info to manage the ownerships --- src/sunstone/etc/sunstone-views/admin.yaml | 3 + .../etc/sunstone-views/admin_vcenter.yaml | 3 + .../etc/sunstone-views/groupadmin.yaml | 3 + .../sunstone-views/groupadmin_vcenter.yaml | 5 +- src/sunstone/etc/sunstone-views/user.yaml | 5 +- .../public/app/tabs/vmgroup-tab/actions.js | 3 +- .../app/tabs/vmgroup-tab/panels/info.js | 9 ++- .../app/tabs/vmgroup-tab/panels/info/html.hbs | 81 +++++++++++-------- 8 files changed, 71 insertions(+), 41 deletions(-) diff --git a/src/sunstone/etc/sunstone-views/admin.yaml b/src/sunstone/etc/sunstone-views/admin.yaml index 790b0fe071..7b76315e9f 100644 --- a/src/sunstone/etc/sunstone-views/admin.yaml +++ b/src/sunstone/etc/sunstone-views/admin.yaml @@ -818,3 +818,6 @@ tabs: actions: VMGroup.create_dialog: true VMGroup.update_dialog: true + VMGroup.chmod: true + VMGroup.chown: true + VMGroup.chgrp: true diff --git a/src/sunstone/etc/sunstone-views/admin_vcenter.yaml b/src/sunstone/etc/sunstone-views/admin_vcenter.yaml index 7e7e2288e3..cfd8039e12 100644 --- a/src/sunstone/etc/sunstone-views/admin_vcenter.yaml +++ b/src/sunstone/etc/sunstone-views/admin_vcenter.yaml @@ -815,3 +815,6 @@ tabs: actions: VMGroup.create_dialog: true VMGroup.update_dialog: true + VMGroup.chmod: true + VMGroup.chown: true + VMGroup.chgrp: true diff --git a/src/sunstone/etc/sunstone-views/groupadmin.yaml b/src/sunstone/etc/sunstone-views/groupadmin.yaml index 443ac0e573..41645bea3f 100644 --- a/src/sunstone/etc/sunstone-views/groupadmin.yaml +++ b/src/sunstone/etc/sunstone-views/groupadmin.yaml @@ -816,3 +816,6 @@ tabs: actions: VMGroup.create_dialog: true VMGroup.update_dialog: true + VMGroup.chmod: true + VMGroup.chown: true + VMGroup.chgrp: true diff --git a/src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml b/src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml index c50796b713..4568509863 100644 --- a/src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml +++ b/src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml @@ -815,4 +815,7 @@ tabs: #- 7 # Search data actions: VMGroup.create_dialog: true - VMGroup.update_dialog: true \ No newline at end of file + VMGroup.update_dialog: true + VMGroup.chmod: true + VMGroup.chown: true + VMGroup.chgrp: true \ No newline at end of file diff --git a/src/sunstone/etc/sunstone-views/user.yaml b/src/sunstone/etc/sunstone-views/user.yaml index 4cc5d7c7c0..528efeba4c 100644 --- a/src/sunstone/etc/sunstone-views/user.yaml +++ b/src/sunstone/etc/sunstone-views/user.yaml @@ -814,4 +814,7 @@ tabs: #- 7 # Search data actions: VMGroup.create_dialog: true - VMGroup.update_dialog: true \ No newline at end of file + VMGroup.update_dialog: true + VMGroup.chmod: true + VMGroup.chown: true + VMGroup.chgrp: true \ No newline at end of file diff --git a/src/sunstone/public/app/tabs/vmgroup-tab/actions.js b/src/sunstone/public/app/tabs/vmgroup-tab/actions.js index 54c4059d92..99a4c693a1 100644 --- a/src/sunstone/public/app/tabs/vmgroup-tab/actions.js +++ b/src/sunstone/public/app/tabs/vmgroup-tab/actions.js @@ -45,7 +45,8 @@ define(function(require) { "VMGroup.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID), "VMGroup.append_template" : _commonActions.appendTemplate(), "VMGroup.chown": _commonActions.multipleAction('chown'), - "VMGroup.chgrp": _commonActions.multipleAction('chgrp') + "VMGroup.chgrp": _commonActions.multipleAction('chgrp'), + "VMGroup.chmod": _commonActions.singleAction('chmod') }; return _actions; diff --git a/src/sunstone/public/app/tabs/vmgroup-tab/panels/info.js b/src/sunstone/public/app/tabs/vmgroup-tab/panels/info.js index 1fe7228f23..1150a9322e 100644 --- a/src/sunstone/public/app/tabs/vmgroup-tab/panels/info.js +++ b/src/sunstone/public/app/tabs/vmgroup-tab/panels/info.js @@ -21,8 +21,8 @@ define(function(require) { var TemplateInfo = require('hbs!./info/html'); var Locale = require('utils/locale'); - //var RenameTr = require('utils/panel/rename-tr'); var OpenNebulaVMGroup= require('opennebula/vmgroup'); + var PermissionsTable = require('utils/panel/permissions-table'); var Utils = require('../utils/common'); /* @@ -68,6 +68,7 @@ define(function(require) { var roles = Utils.getRoles(this.element); var groupRoles = Utils.getGroupRoles(this.element); + var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element); var roleTextList = []; var roleAffinityTextList = []; @@ -99,13 +100,13 @@ define(function(require) { 'element': this.element, 'roleList': roleTextList, 'roleAffinityList': roleAffinityTextList, - 'templateTableHTML': templateTableHTML + 'templateTableHTML': templateTableHTML, + 'permissionsTableHTML': permissionsTableHTML }); } function _setup(context) { - //RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context); - // TODO: simplify interface? + PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context); var strippedTemplate = $.extend({}, this.element.TEMPLATE); delete strippedTemplate["ROLE"]; diff --git a/src/sunstone/public/app/tabs/vmgroup-tab/panels/info/html.hbs b/src/sunstone/public/app/tabs/vmgroup-tab/panels/info/html.hbs index d2df6a7db8..e696b155cf 100644 --- a/src/sunstone/public/app/tabs/vmgroup-tab/panels/info/html.hbs +++ b/src/sunstone/public/app/tabs/vmgroup-tab/panels/info/html.hbs @@ -19,7 +19,7 @@ - + @@ -38,34 +38,41 @@
{{tr "Information"}}
{{tr "Information"}}
+
{{{permissionsTableHTML}}}
- + -
{{tr "Roles"}}
{{tr "Roles"}}
- - + - - - - + - - - {{#each roleList}} - - - - - - - {{/each}}
{{tr "Name"}}{{tr "Host Affined"}}{{tr "Host Anti Affined"}}{{tr "Affinity"}} + + + + + + + + + + + {{#each roleList}} + + + + + + + {{/each}} + +
{{tr "Name"}}{{tr "Host Affined"}}{{tr "Host Anti Affined"}}{{tr "Affinity"}}
{{NAME}}{{HOST_AFFINED}}{{HOST_ANTI_AFFINED}}{{POLICY}}
+
{{NAME}}{{HOST_AFFINED}}{{HOST_ANTI_AFFINED}}{{POLICY}}
@@ -75,24 +82,30 @@ - - - -
{{tr "Roles Affinity"}}
- - - - - + - {{#each roleAffinityList}} - - - - - {{/each}} + + +
{{tr "Roles"}}{{tr "Affinity"}}{{tr "Roles Affinity"}}
{{ROLES}}{{POLICY}}
+ + + + + + + + + {{#each roleAffinityList}} + + + + + {{/each}} + +
{{tr "Roles"}}{{tr "Affinity"}}
{{ROLES}}{{POLICY}}
+