lemonldap-ng/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/RegisterDBLDAP.pm
2014-05-28 16:23:23 +00:00

60 lines
1.6 KiB
Perl

##@file
# LDAP register backend file
##@class
# LDAP register backend class
package Lemonldap::NG::Portal::RegisterDBLDAP;
use strict;
use Lemonldap::NG::Portal::Simple;
## @method int computeLogin
# Compute a login from register infos
# @result Lemonldap::NG::Portal constant
sub computeLogin {
my ($self) = splice @_;
# Get first letter of firstname and lastname
my $login =
substr( lc $self->{registerInfo}->{firstname}, 0, 1 )
. lc $self->{registerInfo}->{lastname};
# TODO check in LDAP for uid unicity
$self->{registerInfo}->{login} = $login;
return PE_OK;
}
## @method int createUser
# Insert new user
# @result Lemonldap::NG::Portal constant
sub createUser {
my ($self) = splice @_;
my $mesg = $self->ldap->add(
"uid=" . $self->{registerInfo}->{login} . "," . $self->{ldapBase},
attrs => [
objectClass => [qw/top person organizationalPerson inetOrgPerson/],
uid => $self->{registerInfo}->{login},
cn => ucfirst $self->{registerInfo}->{firstname} . " "
. uc $self->{registerInfo}->{lastname},
sn => uc $self->{registerInfo}->{lastname},
givenName => ucfirst $self->{registerInfo}->{firstname},
userPassword => $self->{registerInfo}->{password}
]
);
if ( $mesg->is_error ) {
$self->lmLog(
"Can not create entry for " . $self->{registerInfo}->{login},
'error' );
$self->lmLog( "LDAP error " . $mesg->error, 'error' );
return PE_LDAPERROR;
}
return PE_OK;
}
1;