summaryrefslogtreecommitdiffstats
path: root/ldap_wizard/ldapdef.pm
diff options
context:
space:
mode:
Diffstat (limited to 'ldap_wizard/ldapdef.pm')
-rw-r--r--ldap_wizard/ldapdef.pm142
1 files changed, 68 insertions, 74 deletions
diff --git a/ldap_wizard/ldapdef.pm b/ldap_wizard/ldapdef.pm
index 7a1a6e9e..59134c0c 100644
--- a/ldap_wizard/ldapdef.pm
+++ b/ldap_wizard/ldapdef.pm
@@ -5,6 +5,9 @@ use MDK::Wizard::Ldap;
use Net::LDAP;
use Net::LDAP::Util qw(ldap_error_text);
use MDK::Common;
+use standalone;
+use common;
+use ugtk2 qw(:dialogs :create);
require Exporter;
@@ -23,11 +26,9 @@ my $hostname = `hostname`;
#my $o = MDK::Wizard::Ldap->new();
my $o = { var => undef };
$o->{var}{srv} = $hostname;
-print "tot";
if (-f $conf_file) {
-
- my %conf = getVarsFromSh($conf_file);
+ my %conf = getVarsFromSh($conf_file);
$o->{var}{suffix} = $conf{suffix};
$o->{var}{rootdn} = $conf{rootdn};
$o->{var}{rootpass} = $conf{rootpass};
@@ -42,97 +43,90 @@ if (-f $conf_file) {
-# Connect to Ldap server
+# Connect to Ldap server
sub ldap_connect {
- my ($u) = @_;
- print $u;
- print " $u->{var}{srv}\n";
- Net::LDAP->new($o->{var}{srv}) or die "Impossible de se connecter au server";
-
+ my ($u) = @_;
+ print "srv: $u->{var}{srv}\n";
+ Net::LDAP->new($u->{var}{srv}) or err_dialog(N("Error!"), N("Unable to connect to %s", $u->{var}{srv}));
}
# bind root
sub root_bind {
- my ($ldap) = @_;
- $ldap->bind(dn => $o->{var}{rootdn},password => $o->{var}{rootpass});
+ my ($ldap) = @_;
+ $ldap->bind(dn => $o->{var}{rootdn},password => $o->{var}{rootpass});
}
sub anonymous_bind {
- my ($ds) = @_;
- my $mesg=$ds->bind;
- return $mesg->code;
+ my ($ds) = @_;
+ my $mesg=$ds->bind;
+ return $mesg->code;
}
sub ldap_search {
- my ($ds, $filter, $basedn) = @_;
- my $attrs = ['objectClass'];
- my $mesg = $ds->search(
- base => $basedn,
- filter => $filter,
- scope => "sub",
- attrs => $attrs
- );
- my $href = $mesg->as_struct;
- print("Résultats de la recherchei\n");
- print $href;
+ my ($ds, $filter, $basedn) = @_;
+ my $attrs = ['objectClass'];
+ my $mesg = $ds->search(
+ base => $basedn,
+ filter => $filter,
+ scope => "sub",
+ attrs => $attrs
+ );
+ my $href = $mesg->as_struct;
+ print("Search results\n");
+ print $href;
}
sub get_dn {
- my ($ds, $filter, $basedn, $attrs) = @_;
- my $mesg = $ds->search(
- base => $basedn,
- filter => $filter,
- scope => "sub",
- #attrs => $attrs
- );
- #my $entry = "";
- #foreach $entry ($mesg->entries) {
- #print "show DN ".$entry->dn."\n";
- #}
- return $mesg
+ my ($ds, $filter, $basedn, $attrs) = @_;
+ my $mesg = $ds->search(
+ base => $basedn,
+ filter => $filter,
+ scope => "sub",
+ #attrs => $attrs
+ );
+ #my $entry = "";
+ #foreach $entry ($mesg->entries) {
+ #print "show DN ".$entry->dn."\n";
+ #}
+ return $mesg
}
sub get_dse() {
-
- my $ldap = ldap_connect();
- my $result = get_dn($ldap, "(objectclass=organization)", $cfg{base});
- my @arrayOfDNs = $result->entries;
- #my %ldap = ();
- foreach my $dn_value (@arrayOfDNs)
+ my $ldap = ldap_connect();
+ my $result = get_dn($ldap, "(objectclass=organization)", $cfg{base});
+ my @arrayOfDNs = $result->entries;
+ #my %ldap = ();
+ foreach my $dn_value (@arrayOfDNs)
{
- my $orga = $dn_value->dn;
- $ldap{orga} = $orga;
+ my $orga = $dn_value->dn;
+ $ldap{orga} = $orga;
}
- return %ldap;
+ return %ldap;
}
sub add_user {
- my ($u) = @_;
- my $ldap = ldap_connect();
- root_bind($ldap);
- my $result = $ldap->add(
- "uid=$u->{var}{uid},$u->{var}{defou},$u->{var}{suffix}",
- attr => [
- objectclass => ["top", "posixAccount", "inetOrgPerson", "shadowAccount"],
- sn => $u->{var}{sn},
- uid => $u->{var}{uid},
- cn => $u->{var}{cn},
- userPassword => $u->{var}{uidpass},
- loginShell => $u->{var}{lshell},
- uidNumber => $u->{var}{uidnb},
- gidNumber => $u->{var}{gidnb},
- homeDirectory => $u->{var}{home} . $u->{var}{uid},
- shadowMin => '-1',
- shadowMax => '999999',
- shadowWarning => '7',
- shadowInactive => '-1',
- shadowExpire => '-1',
- ]
- );
- print ldap_error_text($result->code);
-# return $result->code;
- use lib qw(/usr/lib/libDrakX);
- use standalone;
- use ugtk2 qw(:ask :helpers :wrappers :create :dialogs);
- create_dialog("Add user in OpenLDAP server", ldap_error_text($result->code)) }
+ my ($u) = @_;
+ my $ldap = ldap_connect();
+ root_bind($ldap);
+ my $result = $ldap->add(
+ "uid=$u->{var}{uid},$u->{var}{defou},$u->{var}{suffix}",
+ attr => [
+ objectclass => ["top", "posixAccount", "inetOrgPerson", "shadowAccount"],
+ sn => $u->{var}{sn},
+ uid => $u->{var}{uid},
+ cn => $u->{var}{cn},
+ userPassword => $u->{var}{uidpass},
+ loginShell => $u->{var}{lshell},
+ uidNumber => $u->{var}{uidnb},
+ gidNumber => $u->{var}{gidnb},
+ homeDirectory => $u->{var}{home} . $u->{var}{uid},
+ shadowMin => '-1',
+ shadowMax => '999999',
+ shadowWarning => '7',
+ shadowInactive => '-1',
+ shadowExpire => '-1',
+ ]
+ );
+ create_dialog("", ldap_error_text($result->code));
+}