aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMichael Scherer <misc@mageia.org>2011-07-21 16:50:26 +0000
committerMichael Scherer <misc@mageia.org>2011-07-21 16:50:26 +0000
commit6d861e125dff8edccdf6f4070fbb4642d0cd5c89 (patch)
treeb02a70ff8f1ecf645b8fa31cfa43df932914e4a8 /lib
parentf8cfe86f01dbc9070a2541d541baeb04b7595f7f (diff)
downloadidentity-6d861e125dff8edccdf6f4070fbb4642d0cd5c89.tar
identity-6d861e125dff8edccdf6f4070fbb4642d0cd5c89.tar.gz
identity-6d861e125dff8edccdf6f4070fbb4642d0cd5c89.tar.bz2
identity-6d861e125dff8edccdf6f4070fbb4642d0cd5c89.tar.xz
identity-6d861e125dff8edccdf6f4070fbb4642d0cd5c89.zip
refactor the ldap query, and do it sooner so we can use it for access control
Diffstat (limited to 'lib')
-rw-r--r--lib/CatDap/Controller/admin.pm25
1 files changed, 14 insertions, 11 deletions
diff --git a/lib/CatDap/Controller/admin.pm b/lib/CatDap/Controller/admin.pm
index 814475f..452efd9 100644
--- a/lib/CatDap/Controller/admin.pm
+++ b/lib/CatDap/Controller/admin.pm
@@ -619,17 +619,25 @@ sub group_modify : Local {
my @errors;
my @entries;
my $mesg;
+
$c->detach('/admin/group') if $group eq '';
if ( $group !~ /^[\w\d- ]*$/ ) {
push @errors, $c->loc('Group contains illegal characters');
$c->detach('/admin/group');
}
+
+ my $mesg_group = $c->model('user')->search("(&(objectClass=groupOfNames)(cn=$group))");
+ if ( $mesg_group->entries gt 1 ) {
+ push @errors, $c->loc('More than one entry matched');
+ $c->detach('/admin/group');
+ }
+
if (defined $op and $op eq 'delete') {
- $mesg = $c->model('user')->search("(&(objectClass=groupOfNames)(cn=$group))");
- @entries = $mesg->entries;
+ @entries = $mesg_group->entries;
$entries[0]->delete( $attr => $value)->update;
$c->res->redirect("/admin/group_modify/$group");
- }
+ }
+
if ( defined $op and $op eq 'add' ) {
my $member = $c->req->param('member');
$mesg = $c->model('user')->search("(uid=$member)");
@@ -642,17 +650,12 @@ sub group_modify : Local {
}
@entries = $mesg->entries;
my $dn = $entries[0]->dn;
- $mesg = $c->model('user')->search("(&(objectClass=groupOfNames)(cn=$group))");
- @entries = $mesg->entries;
+ @entries = $mesg_group->entries;
$entries[0]->add( 'member' => $dn )->update;
$c->res->redirect("/admin/group_modify/$group");
}
- $mesg = $c->model('user')->search("(&(objectClass=groupOfNames)(cn=$group))");
- if ( $mesg->entries gt 1 ) {
- push @errors, $c->loc('More than one entry matched');
- $c->detach('/admin/group');
- }
- $c->stash( group => $mesg->entry );
+
+ $c->stash( group => $mesg_group->entry );
}
=head2 index