};
sub allowed {
- my( $self, $perm, $org, $object, $hint ) = @_;
- my $uid = $self->requestor->id;
- $org ||= $self->requestor->ws_ou;
+ my( $self, $perm, $org, $object, $hint ) = @_;
+ my $uid = $self->requestor->id;
+ $org ||= $self->requestor->ws_ou;
my $perms = (ref($perm) eq 'ARRAY') ? $perm : [$perm];
for $perm (@$perms) {
- $self->log(I, "checking perms user=$uid, org=$org, perm=$perm");
-
+ $self->log(I, "checking perms user=$uid, org=$org, perm=$perm");
+
if($object) {
my $params;
if(ref $object) {
push(@$params, $org) if $org;
$OBJECT_PERM_QUERY->{select}->{au}->[0]->{params} = $params;
$OBJECT_PERM_QUERY->{where}->{id} = $uid;
- return 1 if $U->is_true($self->json_query($OBJECT_PERM_QUERY)->[0]->{has_perm});
+ my $r = $self->json_query($OBJECT_PERM_QUERY);
+ return 1 if (ref($r) eq 'ARRAY' and $U->is_true($r->[0]->{has_perm}));
} else {
$PERM_QUERY->{select}->{au}->[0]->{params} = [$perm, $org];
$PERM_QUERY->{where}->{id} = $uid;
- return 1 if $U->is_true($self->json_query($PERM_QUERY)->[0]->{has_perm});
+ my $r = $self->json_query($PERM_QUERY);
+ return 1 if (ref($r) eq 'ARRAY' and $U->is_true($r->[0]->{has_perm}));
}
}
'+ppl' => {code => $perm}
}
};
-
+
my $list = $self->json_query($query);
- push(@ids, 0+$_->{object_id}) for @$list;
+ if (ref($list) eq 'ARRAY') {
+ push(@ids, 0+$_->{object_id}) for @$list;
+ }
}
my %trim;