mirror of
https://github.com/OpenNebula/one.git
synced 2025-09-05 09:44:14 +03:00
Feature #1742: When a user is deleted, it is now removed from the secondary groups
This commit is contained in:
@@ -227,8 +227,11 @@ int ClusterDelete::drop(int oid, PoolObjectSQL * object, string& error_msg)
|
|||||||
|
|
||||||
int UserDelete::drop(int oid, PoolObjectSQL * object, string& error_msg)
|
int UserDelete::drop(int oid, PoolObjectSQL * object, string& error_msg)
|
||||||
{
|
{
|
||||||
|
set<int> group_set;
|
||||||
|
set<int>::iterator it;
|
||||||
|
|
||||||
User * user = static_cast<User *>(object);
|
User * user = static_cast<User *>(object);
|
||||||
int group_id = user->get_gid();
|
group_set = user->get_groups();
|
||||||
|
|
||||||
if (oid == 0)
|
if (oid == 0)
|
||||||
{
|
{
|
||||||
@@ -244,10 +247,17 @@ int UserDelete::drop(int oid, PoolObjectSQL * object, string& error_msg)
|
|||||||
|
|
||||||
if ( rc == 0 )
|
if ( rc == 0 )
|
||||||
{
|
{
|
||||||
Group * group = gpool->get(group_id, true);
|
Group * group;
|
||||||
|
|
||||||
if( group != 0 )
|
for ( it = group_set.begin(); it != group_set.end(); it++ )
|
||||||
{
|
{
|
||||||
|
group = gpool->get(*it, true);
|
||||||
|
|
||||||
|
if( group == 0 )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
group->del_user(oid);
|
group->del_user(oid);
|
||||||
gpool->update(group);
|
gpool->update(group);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user