}
# If visibilitygroups are used, restrict the set of groups.
- if (Param('usevisibilitygroups')) {
+ if ((!$self->in_group('editusers')) && Param('usevisibilitygroups')) {
# Users need to see a group in order to bless it.
my $visibleGroups = join(', ', @{$self->visible_groups_direct()})
|| return $self->{'bless_groups'} = [];
my $nextCondition;
my $visibleGroups;
- if (Param('usevisibilitygroups')) {
+ if (!$editusers && Param('usevisibilitygroups')) {
# Show only users in visible groups.
$visibleGroups = visibleGroupsAsString();
$otherUser
|| ThrowCodeError('invalid_user_id', {'userid' => $cgi->param('userid')});
- canSeeUser($otherUserID)
+ $editusers || canSeeUser($otherUserID)
|| ThrowUserError('auth_failure', {reason => "not_visible",
action => "modify",
object => "user"});
'group_group_map READ',
'group_group_map AS ggm READ');
- canSeeUser($otherUserID)
+ $editusers || canSeeUser($otherUserID)
|| ThrowUserError('auth_failure', {reason => "not_visible",
action => "modify",
object => "user"});
$editusers || ThrowUserError('auth_failure', {group => "editusers",
action => "delete",
object => "users"});
- canSeeUser($otherUserID) || ThrowUserError('auth_failure',
- {reason => "not_visible",
- action => "delete",
- object => "user"});
-
$vars->{'otheruser'} = $otherUser;
$vars->{'editcomponents'} = UserInGroup('editcomponents');
{group => "editusers",
action => "delete",
object => "users"});
- canSeeUser($otherUserID) || ThrowUserError('auth_failure',
- {reason => "not_visible",
- action => "delete",
- object => "user"});
@{$otherUser->product_responsibilities()}
&& ThrowUserError('user_has_responsibility');