From d7787bc4e3b058784a2bd4d671b7f7f4a75cc6ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Wed, 31 Aug 2011 13:45:03 +0200 Subject: [PATCH] Feature #407: Let users see their own group information, using 'onegroup show' --- src/authm/AuthManager.cc | 5 ++++- src/cli/onegroup | 5 +++-- src/oca/ruby/OpenNebula/Group.rb | 3 +++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/authm/AuthManager.cc b/src/authm/AuthManager.cc index 46d079a89f..99d8667825 100644 --- a/src/authm/AuthManager.cc +++ b/src/authm/AuthManager.cc @@ -96,7 +96,10 @@ void AuthRequest::add_auth(Object ob, // User can show and MANAGE (change passwd) their own information ( uid == ob_id_int && ob == USER && ( op == INFO || op == MANAGE ) - ) + ) || + + // Users can show their group information + ( ob == GROUP && gid == ob_id_int && op == INFO ) ) { auth = true; diff --git a/src/cli/onegroup b/src/cli/onegroup index 3e00268846..f7e5a7efbf 100755 --- a/src/cli/onegroup +++ b/src/cli/onegroup @@ -92,8 +92,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do Shows information for the given Group EOT - command :show, show_desc, :groupid, :options=>OpenNebulaHelper::XML do - helper.show_resource(args[0],options) + command :show, show_desc,[:groupid, nil], :options=>OpenNebulaHelper::XML do + group = args[0] || OpenNebula::Group::SELF + helper.show_resource(group,options) end end diff --git a/src/oca/ruby/OpenNebula/Group.rb b/src/oca/ruby/OpenNebula/Group.rb index aa6ff79291..64c751dc67 100644 --- a/src/oca/ruby/OpenNebula/Group.rb +++ b/src/oca/ruby/OpenNebula/Group.rb @@ -27,6 +27,9 @@ module OpenNebula :delete => "group.delete" } + # Flag for requesting connected user's group info + SELF = -1 + # Creates a Group description with just its identifier # this method should be used to create plain Group objects. # +id+ the id of the user