Change the layout assumed on the LDAP server.
[licom.git] / lib / LiCoM / Person.pm
index 6ba43a9..3c43a4b 100644 (file)
@@ -105,8 +105,9 @@ sub create
        my %hash = @_;
        my $entry = Net::LDAP::Entry->new ();
        my $dn;
+       my $ou;
 
-       $entry->add (objectClass => [qw(top organizationalUnit person organizationalPerson inetOrgPerson)]);
+       $entry->add (objectClass => [qw(person organizationalPerson inetOrgPerson)]);
 
        for (keys %hash)
        {
@@ -164,9 +165,10 @@ sub create
                return (undef);
        }
 
-       $dn = "cn=$sn $gn," . get_config ('base_dn');
+       $ou = 'Person';
+       $dn = "cn=$sn $gn,ou=$ou," . get_config ('base_dn');
        
-       $entry->add (cn => "$sn $gn");
+       $entry->add (cn => "$sn $gn", ou => $ou);
        $entry->dn ($dn);
 
        $entry->changetype ('add');
@@ -255,7 +257,7 @@ sub search
 
        $mesg = $Ldap->search
        (
-               base   => get_config ('base_dn'),
+               base   => 'ou=Person,' . get_config ('base_dn'),
                filter => $filter
        );
 
@@ -295,7 +297,7 @@ sub get_user
 
        my $mesg = $Ldap->search
        (
-               base   => get_config ('base_dn'),
+               base   => 'ou=Person,' . get_config ('base_dn'),
                filter => "(cn=$search)"
        );
 
@@ -358,7 +360,7 @@ sub _update_dn
        my $sn = $obj->{'sn'};
        my $gn = $obj->{'givenName'};
        my $cn = "$sn $gn";
-       my $dn = "cn=$cn," . get_config ('base_dn');
+       my $dn = "cn=$cn,ou=Person," . get_config ('base_dn');
 
        $obj->{'cn'} = $cn;
 
@@ -429,8 +431,6 @@ sub name
 
 =item I<$obj>-E<gt>B<uri> ([I<@uri>])
 
-=item I<$obj>-E<gt>B<group> ([I<@groups>])
-
 Get or set the attribute. This is the same as calling S<I<$obj>-E<gt>B<set>
 (I<$field>, I<\@values>)> or S<I<$obj>-E<gt>B<get> (I<$field>)>.
 
@@ -490,7 +490,7 @@ sub set
        }
        if (!defined ($ValidFields{$field}))
        {
-               return (undef);
+               return;
        }
 
        if (defined ($value))
@@ -512,7 +512,10 @@ sub set
                $entry->update ($Ldap);
        }
 
-       $obj->{$field} = [] unless (defined ($obj->{$field}));
+       if (!defined ($obj->{$field}) and $ValidFields{$field})
+       {
+               $obj->{$field} = [];
+       }
        
        if (wantarray () and $ValidFields{$field})
        {