import torrus 1.0.9
[freeside.git] / torrus / perllib / Torrus / ACL / AuthLocalMD5.pm
1 #  Copyright (C) 2002  Stanislav Sinyagin
2 #
3 #  This program is free software; you can redistribute it and/or modify
4 #  it under the terms of the GNU General Public License as published by
5 #  the Free Software Foundation; either version 2 of the License, or
6 #  (at your option) any later version.
7 #
8 #  This program is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 #  GNU General Public License for more details.
12 #
13 #  You should have received a copy of the GNU General Public License
14 #  along with this program; if not, write to the Free Software
15 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
16
17 # $Id: AuthLocalMD5.pm,v 1.1 2010-12-27 00:03:59 ivan Exp $
18 # Stanislav Sinyagin <ssinyagin@yahoo.com>
19
20
21 package Torrus::ACL::AuthLocalMD5;
22
23 use Torrus::Log;
24
25 use Digest::MD5 qw(md5_hex);
26 use strict;
27
28 sub new
29 {
30     my $self = {};
31     my $class = shift;
32     bless $self, $class;
33     return $self;
34 }
35
36
37 sub getUserAttrList
38 {
39     return qw(userPasswordMD5);
40 }
41
42 sub authenticateUser
43 {
44     my $self = shift;
45     my $uid = shift;
46     my $password = shift;
47     my $attrValues = shift;
48
49     if( not $password or not $attrValues->{'userPasswordMD5'} )
50     {
51         return undef;
52     }
53     my $pw_md5 = md5_hex( $password );
54     return( $pw_md5 eq $attrValues->{'userPasswordMD5'} );
55 }
56
57
58 sub setPassword
59 {
60     my $self = shift;
61     my $uid = shift;
62     my $password = shift;
63
64     my $attrValues = {};
65     $attrValues->{'userPasswordMD5'} = md5_hex( $password );
66     return $attrValues;
67 }
68
69
70
71
72 1;
73
74
75 # Local Variables:
76 # mode: perl
77 # indent-tabs-mode: nil
78 # perl-indent-level: 4
79 # End: