All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

Commit c9444a4e authored by Leigh B Stoller's avatar Leigh B Stoller

Some fixes for creating geni experiments in subgroups.

parent 26a5fa07
#!/usr/bin/perl -wT
#
# Copyright (c) 2005-2016 University of Utah and the Flux Group.
# Copyright (c) 2005-2017 University of Utah and the Flux Group.
#
# {{{EMULAB-LICENSE
#
......@@ -1872,9 +1872,21 @@ sub GList($$)
# of the list Order matters here, or we won't pick up all the groups
# we need.
#
my @glist = grep {$_ != $default} split(/\s/, $glist);
$glist = $default . " " . $default . " @glist";
if (ref($default)) {
#
# If we got an actual group object, we want the project unix gid
# at the beginning and the group unix gid next.
#
my $pid_gid = $default->GetProject()->unix_gid();
my $gid_gid = $default->unix_gid();
my @glist = grep {$_ != $pid_gid && $_ != $gid_gid} split(/\s/, $glist);
$glist = "$pid_gid $pid_gid $gid_gid @glist";
}
else {
my @glist = grep {$_ != $default} split(/\s/, $glist);
$glist = $default . " " . $default . " @glist";
}
return $glist;
}
......@@ -1914,7 +1926,7 @@ sub UnixGroupList($$)
#
sub FlipTo($$)
{
my ($self, $default_gid) = @_;
my ($self, $default_group) = @_;
# Must be a real reference.
return -1
......@@ -1924,10 +1936,13 @@ sub FlipTo($$)
# to flip to a different user in the case we already flipped.
$EUID = 0;
my $glist = $self->GList($default_gid);
my $glist = $self->GList($default_group);
return -1
if (!defined($glist));
my @tmp = split(/\s/, $glist);
my $default_gid = $tmp[0];
$GID = $default_gid;
$EGID = $glist;
$EUID = $UID = $self->unix_uid();
......
......@@ -6947,7 +6947,7 @@ sub GeniExperiment($;$)
# a member. That means we have to run as the local user.
#
if ($project->IsLocal()) {
$creator->FlipTo($group->unix_gid());
$creator->FlipTo($group);
}
elsif (defined($group)) {
GeniUtil::FlipToGeniUser($group->unix_gid());
......@@ -7042,7 +7042,7 @@ sub FlipToUser($$)
}
flip:
return undef
if ($user->FlipTo($group->unix_gid()));
if ($user->FlipTo($group));
return $user;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment