Modified: identity/CatDap/branches/live/lib/CatDap/Controller/user.pm
===================================================================
--- identity/CatDap/branches/live/lib/CatDap/Controller/user.pm 2010-11-25 11:34:51 UTC (rev 139)
+++ identity/CatDap/branches/live/lib/CatDap/Controller/user.pm 2010-11-25 11:37:17 UTC (rev 140)
@@ -122,6 +122,7 @@
my $password;
my $mesg;
my $dn;
+ my $userfilter;
if (not defined $c->user ) {
$c->stash(template => 'index.tt');
@@ -136,8 +137,10 @@
my $user = $c->user->username;
my $entry;
- $c->log->debug("Searching for user $user");
- $mesg = $c->model('User')->search("(&(objectclass=inetOrgPerson)(uid=$user))");
+ $userfilter = $c->user->store->user_filter;
+ $userfilter =~ s/\%s/$user/g,
+ $c->log->debug("Searching for user $user with filter $userfilter");
+ $mesg = $c->model('User')->search($userfilter);
$entry = $mesg->entry;
my %mods;
my %params = %{$c->req->parameters};
@@ -161,7 +164,7 @@
}
}
- $mesg = $c->model('User')->search("(&(objectclass=inetOrgPerson)(uid=$user))");
+ $mesg = $c->model('User')->search($userfilter);
$c->log->debug($mesg->error) if $mesg->code;
$entry = $mesg->entry;
$c->log->debug($mesg->error) if $mesg->code;
@@ -218,12 +221,14 @@
sub add : Local {
my ( $self, $c) = @_;
- my ($mesg,$entry,$user,$attr,$value);
+ my ($mesg,$entry,$user,$attr,$value,$userfilter);
$attr = $c->req->param('attribute');
$value = $c->req->param('value');
$user = $c->user->username;
- $c->log->debug("Searching for user $user");
- $mesg = $c->model('User')->search("(&(objectclass=inetOrgPerson)(uid=$user))");
+ $userfilter = $c->user->store->user_filter;
+ $userfilter = s/%s/$c->user->username/g;
+ $c->log->debug("Searching for user $user with $userfilter");
+ $mesg = $c->model('User')->search($userfilter);
$entry = $mesg->entry;
$entry->add( $attr => $value);
$c->log->info("Adding $attr = $value to user $user");
@@ -235,10 +240,12 @@
sub delete : Local : Args(2) {
my ( $self, $c, $attrname,$attrvalue) = @_;
- my ($mesg,$entry,$user);
+ my ($mesg,$entry,$user,$userfilter);
$user = $c->user->username;
+ $userfilter = $c->user->store->user_filter;
+ $userfilter =~ s/%s/$c->user->username/g;
$c->log->debug("Searching for user $user");
- $mesg = $c->model('User')->search("(&(objectclass=inetOrgPerson)(uid=$user))");
+ $mesg = $c->model('User')->search($userfilter);
$entry = $mesg->entry;
$c->log->info("Deleting $attrname = $attrvalue from user $user");
$entry->delete($attrname => $attrvalue);