Many more fixes.. Trying to get all this work now..
authorocto <octo>
Fri, 6 May 2005 15:53:25 +0000 (15:53 +0000)
committerocto <octo>
Fri, 6 May 2005 15:53:25 +0000 (15:53 +0000)
lib/LiCoM/Config.pm
lib/LiCoM/Connection.pm
lib/LiCoM/Person.pm
licom.cgi

index f62c7d4..295f7eb 100644 (file)
@@ -2,21 +2,22 @@ package LiCoM::Config;
 
 use strict;
 use warnings;
 
 use strict;
 use warnings;
+use Carp (qw(cluck confess));
 
 use Exporter;
 
 
 use Exporter;
 
-@LiCoM::Config::EXPORT_OK = ('get_config read_config');
+@LiCoM::Config::EXPORT_OK = (qw(get_config set_config read_config));
 @LiCoM::Config::ISA = ('Exporter');
 
 our $Config = {};
 
 return (1);
 
 @LiCoM::Config::ISA = ('Exporter');
 
 our $Config = {};
 
 return (1);
 
-=head1 STATIC FUNCTIONS
+=head1 EXPORTED FUNCTIONS
 
 =over 4
 
 
 =over 4
 
-=item LiCoM::Config-E<gt>B<get_config> (I<$key>)
+=item B<get_config> (I<$key>)
 
 Returns the value for I<$key> or undef if it's unknown.
 
 
 Returns the value for I<$key> or undef if it's unknown.
 
@@ -24,9 +25,10 @@ Returns the value for I<$key> or undef if it's unknown.
 
 sub get_config
 {
 
 sub get_config
 {
-       my $pkg = shift;
        my $key = shift;
 
        my $key = shift;
 
+       cluck ("\$key was not defined") unless (defined ($key));
+
        if (!%$Config)
        {
                read_config ();
        if (!%$Config)
        {
                read_config ();
@@ -35,7 +37,7 @@ sub get_config
        return ($Config->{$key});
 }
 
        return ($Config->{$key});
 }
 
-=item LiCoM::Config-E<gt>B<set_config> (I<$key>, I<$value>)
+=item B<set_config> (I<$key>, I<$value>)
 
 Sets the value of I<$key> to I<$value>.
 
 
 Sets the value of I<$key> to I<$value>.
 
@@ -43,14 +45,15 @@ Sets the value of I<$key> to I<$value>.
 
 sub set_config
 {
 
 sub set_config
 {
-       my $pkg = shift;
        my $key = shift;
        my $val = shift;
 
        my $key = shift;
        my $val = shift;
 
+       cluck ("\$key was not defined") unless (defined ($key));
+
        $Config->{$key} = $val;
 }
 
        $Config->{$key} = $val;
 }
 
-=item LiCoM::Config-E<gt>B<read_config> ([I<@files>])
+=item B<read_config> ([I<@files>])
 
 Read the config from the files given or F</etc/licom/licom.conf> and
 F<~/.licomrc> if no files were given.
 
 Read the config from the files given or F</etc/licom/licom.conf> and
 F<~/.licomrc> if no files were given.
@@ -75,10 +78,10 @@ sub read_config
                my $file = $_;
                next unless (-r $file);
 
                my $file = $_;
                next unless (-r $file);
 
-               read_file ($file, $config);
+               read_file ($file, $Config);
        }
 
        }
 
-       return ($config);
+       return ($Config);
 }
 
 sub read_file
 }
 
 sub read_file
index ad78378..ef8955f 100644 (file)
@@ -13,7 +13,6 @@ LiCoM::Connection - Represents the connection to an LDAP-server.
 
 =cut
 
 
 =cut
 
-our %Config = get_config ();
 our $Ldap;
 
 @LiCoM::Connection::EXPORT_OK = (qw($Ldap));
 our $Ldap;
 
 @LiCoM::Connection::EXPORT_OK = (qw($Ldap));
@@ -37,13 +36,12 @@ sub connect
        my %opts = @_;
 
        my $bind_dn = $opts{'bind_dn'};
        my %opts = @_;
 
        my $bind_dn = $opts{'bind_dn'};
-       my $base_dn = $opts{'base_dn'};
        my $uri     = $opts{'uri'};
        my $passwd  = $opts{'password'};
 
        my $msg;
 
        my $uri     = $opts{'uri'};
        my $passwd  = $opts{'password'};
 
        my $msg;
 
-       die unless ($bind_dn and $base_dn and $uri and defined ($passwd));
+       die unless ($bind_dn and $uri and defined ($passwd));
 
        $Ldap = Net::LDAP->new ($uri);
 
 
        $Ldap = Net::LDAP->new ($uri);
 
@@ -54,8 +52,6 @@ sub connect
                return (0);
        }
 
                return (0);
        }
 
-       $Config{'base_dn'} = $base_dn;
-
        return (1);
 }
 
        return (1);
 }
 
index b5c2fdf..a5bf4e2 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use warnings;
 
 use LiCoM::Config (qw(get_config));
 use warnings;
 
 use LiCoM::Config (qw(get_config));
+use LiCoM::Connection (qw($Ldap));
 
 use Net::LDAP;
 use Net::LDAP::Filter;
 
 use Net::LDAP;
 use Net::LDAP::Filter;
@@ -44,8 +45,6 @@ our %ExternalNames =
        password        => 'userPassword'
 );
 
        password        => 'userPassword'
 );
 
-our $Ldap;
-
 return (1);
 
 =head1 STATIC FUNCTIONS
 return (1);
 
 =head1 STATIC FUNCTIONS
index 59eddd6..f0dfd12 100755 (executable)
--- a/licom.cgi
+++ b/licom.cgi
@@ -9,13 +9,14 @@ use CGI::Carp (qw(fatalsToBrowser));
 use URI::Escape;
 use Data::Dumper;
 
 use URI::Escape;
 use Data::Dumper;
 
-use LiCoM::Config (qw(get_config));
-use LiCoM::Person;
+use LiCoM::Config (qw(get_config set_config read_config));
+use LiCoM::Connection ();
+use LiCoM::Group ();
+use LiCoM::Person ();
 
 our $Debug = 0;
 
 our $Debug = 0;
-our $Config = {};
 
 
-our @MultiFields = (qw(address homephone cellphone officephone fax mail uri group));
+our @MultiFields = (qw(address homephone cellphone officephone fax mail uri));
 
 our %FieldNames = 
 (
 
 our %FieldNames = 
 (
@@ -49,24 +50,25 @@ our %Actions =
        vcard   => \&action_vcard
 );
 
        vcard   => \&action_vcard
 );
 
-$Config = get_config ();
+read_config ();
 
 # make sure AuthLDAPRemoteUserIsDN is enabled.
 die unless ($ENV{'REMOTE_USER'});
 
 # make sure AuthLDAPRemoteUserIsDN is enabled.
 die unless ($ENV{'REMOTE_USER'});
-$Config->{'base_dn'} = $ENV{'REMOTE_USER'};
+set_config ('base_dn', $ENV{'REMOTE_USER'});
 
 
-die unless (defined ($Config->{'uri'}) and defined ($Config->{'base_dn'})
-       and defined ($Config->{'bind_dn'}) and defined ($Config->{'password'}));
+die unless (defined (get_config ('uri'))
+       and defined (get_config ('base_dn'))
+       and defined (get_config ('bind_dn'))
+       and defined (get_config ('password')));
 
 
-LiCoM::Person->connect
+LiCoM::Connection->connect
 (
 (
-       uri     => $Config->{'uri'},
-       base_dn => $Config->{'base_dn'},
-       bind_dn => $Config->{'bind_dn'},
-       password => $Config->{'password'}
+       uri      => get_config ('uri'),
+       bind_dn  => get_config ('bind_dn'),
+       password => get_config ('password')
 ) or die;
 
 ) or die;
 
-our ($UserCN, $UserID) = LiCoM::Person->get_user ($Config->{'base_dn'});
+our ($UserCN, $UserID) = LiCoM::Person->get_user ($ENV{'REMOTE_USER'});
 
 if (!$UserID and $Action ne 'save')
 {
 
 if (!$UserID and $Action ne 'save')
 {
@@ -95,7 +97,7 @@ elsif (ref ($Actions{$Action}) eq 'ARRAY')
        }
 }
 
        }
 }
 
-LiCoM::Person->disconnect ();
+LiCoM::Connection->disconnect ();
 
 exit (0);
 
 
 exit (0);
 
@@ -107,6 +109,8 @@ sub action_browse
        $group = shift if (@_);
        $group ||= '';
 
        $group = shift if (@_);
        $group ||= '';
 
+       return ('');
+
        my @all;
        if ($group)
        {
        my @all;
        if ($group)
        {