summaryrefslogtreecommitdiffstats
path: root/ldap_wizard
diff options
context:
space:
mode:
Diffstat (limited to 'ldap_wizard')
-rw-r--r--ldap_wizard/ldap.pm341
1 files changed, 0 insertions, 341 deletions
diff --git a/ldap_wizard/ldap.pm b/ldap_wizard/ldap.pm
deleted file mode 100644
index e3e11533..00000000
--- a/ldap_wizard/ldap.pm
+++ /dev/null
@@ -1,341 +0,0 @@
-#!/usr/bin/perl
-# version 0.1
-# GPL like
-# aginies@mandrakesoft.com
-
-package MDK::Wizard::ldap;
-use lib qw(/usr/lib/libDrakX);
-use ugtk2;
-use strict;
-use ldapdef;
-use common;
-use standalone;
-use MDK::Wizard::Varspaceval;
-use MDK::Wizard::Wizcommon;
-use Expect;
-require Net::LDAP;
-use Net::LDAP::Util qw(ldap_error_text);
-
-#unless ($> == 0) {
-# die "You are not root Exiting\n";
-#}
-
-
-
-my $o = {
- name => N("Add POSIX account"),
- var => {
- defou => 'ou=Users',
- srv => '',
- dom => 'mandrakesoft.com',
- suffix => '',
- rootdn => '',
- rootpass => '',
- rootpass2 => '',
- cn => '',
- sn => '',
- uid => '',
- uidpass => '',
- lshell => '/bin/bash',
- home => '/home/',
- uidnb => '1004',
- gidnb => '1004',
- container => 'container',
- objectclass => 'top,account,posixaccount',
- shadowmax => '99999',
- shadowmin => '-1',
- plop => '',
- tmp => '',
- nom => '',
- prenom => '',
- },
- needed_rpm => [ 'squid' ],
- defaultimage => "/usr/share/wizards/proxy_wizard/images/proxy.png"
- };
-
-
-
-my $ldap_suffix=join(',dc=', split(/\./, chomp_(`hostname -f`)));
-$ldap_suffix =~ s/[^,]*,//;
-my $conf_file = "/etc/sysconfig/ldapconf";
-my $LDAPCONF = "/etc/openldap/slapd.conf";
-
-##### Read conf file is exist
-
-my $hostname = `hostname`;
-$o->{var}{srv} = $hostname;
-
-if (-f $conf_file) {
-
- my %conf = getVarsFromSh($conf_file);
- $o->{var}{suffix} = $conf{suffix};
- $o->{var}{rootdn} = $conf{rootdn};
- $o->{var}{rootpass} = $conf{rootpass};
- $o->{var}{srv} = $conf{srv};
- $o->{var}{defou} = $conf{users};
-
-} else {
- my $hostname = chomp_(`hostname`);
- $o->{var}{srv} = $hostname;
- $o->{var}{suffix} = $ldap_suffix;
-}
-
-
-my %level = (
- 1 => N("Server - Set configuration of LDAP server"),
- 2 => N("Add - Add user in LDAP server"),
- );
-
-$o->{pages} = {
- welcome => {
- name => N("LDAP configuration wizard") . "\n\n" . N("Setup a LDAP server."),
- no_back => 1,
- pre => sub {
- $o->{var}{wiz_level} ||= 1;
- },
- post => sub {
- if ($o->{var}{wiz_level} == 2) {
- return 'check_conffile';
- }
- },
- data => [
- {
- label => N("Your choice:") . "\n\n", val => \$o->{var}{wiz_level}, type => 'list', list => [ keys %level ], format => sub { $level{$_[0]} } },
- ],
- next => 'set_srv',
- },
- check_conffile => { name => N("Config Server "),
- data => [
- { label => N("Server Name: "), val => \$o->{var}{srv} },
- { label => N("Server RootDN: "), val => \$o->{var}{rootdn} },
- { label => N("RootDN Password: "), val => \$o->{var}{rootpass}, hidden => 1 },
- { label => N("Server Suffix: "), val => \$o->{var}{suffix} },
- { label => N("Server Default Users OU: "), val => \$o->{var}{defou} },
- ],
- next => 'add_userposix'
- },
- add_userposix => {
- name => N("LDAP User Add") . "\n\n" . N("User Create in: ") . $o->{var}{defou} . "," . $o->{var}{suffix},
- data => [
- {
- label => N("First Name:"), val => \$o->{var}{sn} },
- {
- label => N("Name:"), val => \$o->{var}{cn} },
- {
- label => N("User Name:"), val => \$o->{var}{uid} },
- ],
- next => 'password'
- },
- password => {
- name => N("LDAP User Password") . "\n\n" . N("Password for Users: ") . $o->{var}{sn} . "," . $o->{var}{sn} . "," . $o->{var}{cn} . $o->{var}{defou} . "," . $o->{var}{suffix},
- data => [
- {
- label => N("Password:"), val => \$o->{var}{uidpass}, hidden => 1 },
- {
- label => N("Password (again):"), val => \$o->{var}{uidpass2}, hidden => 1 },
- ],
- complete => sub {
- if (!$o->{var}{uidpass}) {
- $::in->ask_warn(N("Error"), N("You must enter a password for LDAP."));
- return 1;
- }
- if (!($o->{var}{uidpass} eq $o->{var}{uidpass2})) {
- $::in->ask_warn(N("Error"), N("The passwords do not match"));
- return 1;
- }
- },
-
- next => 'summary_add_user'
- },
-
- set_srv => {
- name => N("Configuring LDAP"),
- data => [
- {
- label => N("LDAP Suffix:"), val => \$o->{var}{suffix} },
- {
- label => N("LDAP Administrator:"), val => \$o->{var}{rootdn} },
- {
- label => N("LDAP Password:"), hidden => 1, val => \$o->{var}{rootpass} },
- {
- label => N("LDAP Password (again):"), hidden => 1, val => \$o->{var}{rootpass2} },
- ],
- complete => sub {
- if (!$o->{var}{suffix}) {
- $::in->ask_warn(N("Error"), N("You must enter a suffix for LDAP."));
- return 1;
- }
- if (!$o->{var}{rootpass}) {
- $::in->ask_warn(N("Error"), N("You must enter a password for LDAP."));
- return 1;
- }
- if (!($o->{var}{rootpass} eq $o->{var}{rootpass2})) {
- $::in->ask_warn(N("Error"), N("The passwords do not match"));
- return 1;
- }
- },
- next => 'summary_set_srv',
-
- },
- summary_add_user => {
- name => N("Confirmation of the user to create"),
- data => [
- {
- label => N("Name:"), type => 'field', fixed_val => \$o->{var}{sn} },
- {
- label => N("First name:"), type => 'field', fixed_val => \$o->{var}{cn} },
- {
- label => N("User Name:"), type => 'field', fixed_val => \$o->{var}{uid} },
- {
- label => N("Create in:"), type => 'field', val => $o->{var}{defou}.$o->{var}{suffix} },
- ],
- post => \&do_it_user_add,
- next => 'endadd'
- },
- summary_set_srv => {
- name => N("Confirmation of the user to create"),
- data => [
- {
- label => N("LDAP Suffix:"), type => 'field', val => $o->{var}{suffix} },
- ],
- post => \&do_it_setldap,
- next => 'end'
- },
- end => {
- name => N("Congratulations"),
- data => [ { label => N("The wizard successfully configured the LDAP.") } ],
- no_back => 1,
- end => 1,
- next => 0
- },
- endadd => {
- name => N("Successfully added User"),
- data => [ { label => N("The wizard successfully added an user in LDAP") } ],
- no_back => 1,
- end => 1,
- next => 0,
- },
- };
-
-sub do_it_setldap {
- if (!-f $LDAPCONF) {
- die "no $LDAPCONF found";
- }
- cp_af($LDAPCONF, $LDAPCONF . '.save');
- if (!-f "$LDAPCONF.example") {
- cp_af($LDAPCONF, $LDAPCONF . '.example');
- }
- cp_af($LDAPCONF . '.example', $LDAPCONF);
- print "$o->{var}{suffix}\n";
- # set suffix
- if (any { /^suffix/ } cat_($LDAPCONF)) {
- substInFile {
- s/suffix.*/suffix\t"$o->{var}{suffix}"/;
- } $LDAPCONF;
- } else {
- append_to_file($LDAPCONF, qq(suffix\t"$o->{var}{suffix}"));
- }
-
- # s/example/$dcall
- substInFile {
- s/example/$o->{var}{suffix}/g;
- } $LDAPCONF;
-
- # set rootdn
- if (any { /^rootdn/ } cat_($LDAPCONF)) {
- substInFile {
- s/rootdn.*/rootdn\t"cn=$o->{var}{rootdn},$o->{var}{suffix}"/;
- } $LDAPCONF;
- } else {
- append_to_file($LDAPCONF, qq(rootdn\t"$o->{var}{rootdn},$o->{var}{suffix}"));
- }
-
- # set rootpass
- my $cryptpass = crypt($o->{var}{rootpass}, "crypt");
- if (any { /^rootpw/ } cat_($LDAPCONF)) {
- substInFile {
- #s/rootpw.*/rootpw $cryptpass/;
- s/rootpw.*/rootpw $o->{var}{rootpass}/;
- } $LDAPCONF;
- } else {
- #append_to_file($LDAPCONF, "rootpw {CRYPT}$cryptpass");
- append_to_file($LDAPCONF, "rootpw $o->{var}{rootpass}");
- }
-
-
- # create config file in /etc/sysconfig/ldapconf
-
- output($conf_file, <<EOF);
-srv=$o->{var}{srv}
-suffix=$o->{var}{suffix}
-rootdn=$o->{var}{rootdn}
-rootpass=$o->{var}{rootpass}
-users=$o->{var}{defou}
-EOF
-
- # reset premisions
- system("chown -R root.ldap /etc/openldap");
- system("service ldap restart");
- init_ldap();
-}
-
-
-sub init_ldap {
- my $root_cn = (split('=', (split(/,/, $o->{var}{rootdn}))[0]))[1];
- my $ldap_dc = (split('=', (split(/,/, $o->{var}{suffix}))[0]))[1];
-
- my $LDAP;
- open($LDAP, "| ldapadd -x -D 'cn=$o->{var}{rootdn},$o->{var}{suffix}' -w $o->{var}{rootpass}");
-
- print $LDAP <<RootLdif;
-dn: $o->{var}{suffix}
-dc: $ldap_dc
-objectClass: dcObject
-objectClass: organization
-o: Company
-
-dn: cn=$o->{var}{rootdn},$o->{var}{suffix}
-objectClass: organizationalRole
-cn: $o->{var}{rootdn}
-
-dn: ou=Hosts,$o->{var}{suffix}
-ou: Hosts
-description: OU Hosts
-objectClass: top
-objectClass: organizationalUnit
-
-dn: ou=Users,$o->{var}{suffix}
-ou: Users
-description: OU Users
-objectClass: top
-objectClass: organizationalUnit
-
-dn: ou=Group,$o->{var}{suffix}
-ou: Group
-description: OU Group
-objectClass: top
-objectClass: organizationalUnit
-
-
-RootLdif
-
- close($LDAP)
-}
-
-
-
-
-sub do_it_user_add {
- return if $::testing;
- my $ldap = ldap_connect($o);
- my $mesg = add_user($o);
-}
-
-sub new {
- my ($class) = @_;
- bless {
- o => $o,
- }, $class;
-}
-
-1;