Dadurch keine Probleme mit zirkulären Includes mehr. Ausserdem DBI an der richtigen Stelle eingebunden.
package SL::Auth;
-use constant OK => 0;
-use constant ERR_PASSWORD => 1;
-use constant ERR_BACKEND => 100;
-
-use constant SESSION_OK => 0;
-use constant SESSION_NONE => 1;
-use constant SESSION_EXPIRED => 2;
+use DBI;
use Digest::MD5 qw(md5_hex);
use IO::File;
use Time::HiRes qw(gettimeofday);
use List::MoreUtils qw(uniq);
+use SL::Auth::Constants qw(:all);
use SL::Auth::DB;
use SL::Auth::LDAP;
--- /dev/null
+package SL::Auth::Constants;
+
+use strict;
+
+use Exporter qw(import);
+
+our %EXPORT_TAGS = (
+ OK => [ qw(
+ OK
+ ) ],
+ ERR => [ qw(
+ ERR_PASSWORD
+ ERR_BACKEND
+ ) ],
+ SESSION => [ qw(
+ SESSION_OK
+ SESSION_NONE
+ SESSION_EXPIRED
+ ) ],
+);
+
+# add all the other ":class" tags to the ":all" class,
+# deleting duplicates
+{
+ my %seen;
+ push @{$EXPORT_TAGS{all}}, grep {!$seen{$_}++} @$_ for values %EXPORT_TAGS;
+}
+
+Exporter::export_ok_tags('all');
+
+use constant OK => 0;
+use constant ERR_PASSWORD => 1;
+use constant ERR_BACKEND => 100;
+
+use constant SESSION_OK => 0;
+use constant SESSION_NONE => 1;
+use constant SESSION_EXPIRED => 2;
+
+1;
+
+__END__
+
+=head1 NAME
+
+SL::Auth::Constants - COnstants for Auth module
+
+=head1 SYNOPSIS
+
+ use SL::Auth::Constants qw(:all);
+
+ OK == $auth->authenticate($user, $pass) or die;
+
+=head1 DESCRIPTION
+
+This module provides status constants for authentication handling
+
+=head1 FUNCTIONS
+
+=head1 BUGS
+
+=head1 AUTHOR
+
+=cut
package SL::Auth::DB;
-use DBI;
-
-#use SL::Auth;
+use SL::Auth::Constants qw(:all);
use SL::DBUtils;
use strict;
if (!$dbh) {
$main::lxdebug->leave_sub();
- return SL::Auth->ERR_BACKEND();
+ return ERR_BACKEND;
}
my $query = qq|SELECT password FROM auth."user" WHERE login = ?|;
$main::lxdebug->leave_sub();
- return $password eq $stored_password ? SL::Auth->OK() : SL::Auth->ERR_PASSWORD();
+ return $password eq $stored_password ? OK : ERR_PASSWORD;
}
sub can_change_password {
if (!$dbh) {
$main::lxdebug->leave_sub();
- return SL::Auth->ERR_BACKEND()
+ return ERR_BACKEND;
}
$password = crypt $password, substr($login, 0, 2) if (!$is_crypted);
use English '-no_match_vars';
-#use SL::Auth;
+use SL::Auth::Constants qw(:all);
use strict;
if ($is_crypted) {
$main::lxdebug->leave_sub();
- return SL::Auth->ERR_BACKEND();
+ return ERR_BACKEND;
}
my $ldap = $self->_connect();
if (!$ldap) {
$main::lxdebug->leave_sub();
- return SL::Auth->ERR_BACKEND();
+ return ERR_BACKEND;
}
my $dn = $self->_get_user_dn($ldap, $login);
if (!$dn) {
$main::lxdebug->leave_sub();
- return SL::Auth->ERR_BACKEND();
+ return ERR_BACKEND;
}
my $mesg = $ldap->bind($dn, 'password' => $password);
$main::lxdebug->leave_sub();
- return $mesg->is_error() ? SL::Auth->ERR_PASSWORD() : SL::Auth->OK();
+ return $mesg->is_error() ? ERR_PASSWORD : OK;
}
sub can_change_password {
}
sub change_password {
- return SL::Auth->ERR_BACKEND();
+ return ERR_BACKEND;
}
sub verify_config {