diff --git a/src/sunstone/etc/sunstone-views/admin.yaml b/src/sunstone/etc/sunstone-views/admin.yaml index 4d4fc77898..3f6286503c 100644 --- a/src/sunstone/etc/sunstone-views/admin.yaml +++ b/src/sunstone/etc/sunstone-views/admin.yaml @@ -54,6 +54,8 @@ tabs: User.update_password: true User.quotas_dialog: true User.chgrp: true + User.addgroup: true + User.delgroup: true User.chauth: true User.delete: true groups-tab: diff --git a/src/sunstone/etc/sunstone-views/cloud.yaml b/src/sunstone/etc/sunstone-views/cloud.yaml index 1e5bf5b7f0..7f43dfd8d1 100644 --- a/src/sunstone/etc/sunstone-views/cloud.yaml +++ b/src/sunstone/etc/sunstone-views/cloud.yaml @@ -55,6 +55,8 @@ tabs: User.update_password: true User.quotas_dialog: true User.chgrp: true + User.addgroup: true + User.delgroup: true User.chauth: true User.delete: true groups-tab: diff --git a/src/sunstone/etc/sunstone-views/user.yaml b/src/sunstone/etc/sunstone-views/user.yaml index f3c5175274..e6dd473d01 100644 --- a/src/sunstone/etc/sunstone-views/user.yaml +++ b/src/sunstone/etc/sunstone-views/user.yaml @@ -55,6 +55,8 @@ tabs: User.update_password: true User.quotas_dialog: true User.chgrp: true + User.addgroup: true + User.delgroup: true User.chauth: true User.delete: true groups-tab: diff --git a/src/sunstone/etc/sunstone-views/vdcadmin.yaml b/src/sunstone/etc/sunstone-views/vdcadmin.yaml index dccafc9e96..3fea87e030 100644 --- a/src/sunstone/etc/sunstone-views/vdcadmin.yaml +++ b/src/sunstone/etc/sunstone-views/vdcadmin.yaml @@ -55,6 +55,8 @@ tabs: User.update_password: true User.quotas_dialog: true User.chgrp: true + User.addgroup: true + User.delgroup: true User.chauth: true User.delete: true groups-tab: diff --git a/src/sunstone/public/js/opennebula.js b/src/sunstone/public/js/opennebula.js index 878e005170..bfab475816 100644 --- a/src/sunstone/public/js/opennebula.js +++ b/src/sunstone/public/js/opennebula.js @@ -936,18 +936,17 @@ var OpenNebula = { "set_quota" : function(params){ var action_obj = { quotas : params.data.extra_param }; OpenNebula.Action.simple_action(params,OpenNebula.User.resource,"set_quota",action_obj); + }, + "addgroup" : function(params){ + var action_obj = {"group_id": params.data.extra_param }; + OpenNebula.Action.simple_action(params,OpenNebula.User.resource, + "addgroup",action_obj); + }, + "delgroup" : function(params){ + var action_obj = {"group_id": params.data.extra_param }; + OpenNebula.Action.simple_action(params,OpenNebula.User.resource, + "delgroup",action_obj); } - - // "addgroup" : function(params){ - // var action_obj = {"group_id": params.data.extra_param }; - // OpenNebula.Action.simple_action(params,OpenNebula.User.resource, - // "addgroup",action_obj); - // }, - // "delgroup" : function(params){ - // var action_obj = {"group_id": params.data.extra_param }; - // OpenNebula.Action.simple_action(params,OpenNebula.User.resource, - // "delgroup",action_obj); - // } }, "Image": { diff --git a/src/sunstone/public/js/plugins/users-tab.js b/src/sunstone/public/js/plugins/users-tab.js index cac9a55453..8fdf5ea272 100644 --- a/src/sunstone/public/js/plugins/users-tab.js +++ b/src/sunstone/public/js/plugins/users-tab.js @@ -427,7 +427,26 @@ var user_actions = { error: onError, notify: true }, - + "User.addgroup" : { + type: "multiple", + call: OpenNebula.User.addgroup, + callback : function(req){ + Sunstone.runAction("User.show",req.request.data[0][0]); + }, + elements : userElements, + error: onError, + notify: true + }, + "User.delgroup" : { + type: "multiple", + call: OpenNebula.User.delgroup, + callback : function(req){ + Sunstone.runAction("User.show",req.request.data[0][0]); + }, + elements : userElements, + error: onError, + notify: true + }, "User.change_authentication" : { type: "custom", call: popUpChangeAuthenticationDialog @@ -561,6 +580,22 @@ var user_buttons = { tip: tr("This will change the main group of the selected users. Select the new group")+":", condition: mustBeAdmin }, + "User.addgroup" : { + type: "confirm_with_select", + text: tr("Add to group"), + layout: "user_select", + select: groups_sel, + tip: tr("This will add the user to a secondary group. Select the new group")+":", + condition: mustBeAdmin + }, + "User.delgroup" : { + type: "confirm_with_select", + text: tr("Remove from group"), + layout: "user_select", + select: groups_sel, + tip: tr("This will remove the user from a secondary group. Select the group")+":", + condition: mustBeAdmin + }, "User.delete" : { type: "confirm", text: tr("Delete"), @@ -722,6 +757,11 @@ function updateUserInfo(request,user){ ' + insert_group_dropdown("User",info.ID,info.GNAME,info.GID) + '\ + \ + ' + tr("Secondary groups") + '\ + '+(typeof info.GROUPS.ID == "object" ? info.GROUPS.ID.join(",") : "-")+'\ + \ + \ \ ' + tr("Authentication driver") + '\ '+info.AUTH_DRIVER+'\