planet telesis invoice fixups RT 8707,8406
[freeside.git] / FS / FS / CurrentUser.pm
1 package FS::CurrentUser;
2
3 use vars qw($CurrentUser $upgrade_hack);
4
5 #not at compile-time, circular dependancey causes trouble
6 #use FS::Record qw(qsearchs);
7 #use FS::access_user;
8
9 $upgrade_hack = 0;
10
11 =head1 NAME
12
13 FS::CurrentUser - Package representing the current user
14
15 =head1 SYNOPSIS
16
17 =head1 DESCRIPTION
18
19 =cut
20
21 sub load_user {
22   my( $class, $user ) = @_; #, $pass
23
24   if ( $upgrade_hack ) {
25     return $CurrentUser = new FS::CurrentUser::BootstrapUser;
26   }
27
28   #return "" if $user =~ /^fs_(queue|selfservice)$/;
29
30   #not the best thing in the world...
31   eval "use FS::Record qw(qsearchs);";
32   die $@ if $@;
33   eval "use FS::access_user;";
34   die $@ if $@;
35
36   $CurrentUser = qsearchs('access_user', {
37     'username' => $user,
38     #'_password' =>
39     'disabled' => '',
40   } );
41
42   die "unknown user: $user" unless $CurrentUser; # or bad password
43
44   $CurrentUser;
45 }
46
47 =head1 BUGS
48
49 Creepy crawlies
50
51 =head1 SEE ALSO
52
53 =cut
54
55 package FS::CurrentUser::BootstrapUser;
56
57 sub new {
58   my $proto = shift;
59   my $class = ref($proto) || $proto;
60   my $self = {};
61   bless ($self, $class);
62 }
63
64 sub AUTOLOAD { 1 };
65
66 1;
67