blob: 0b320347ec6d14822709cbe040ec93a708300d42 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
package local::user;
require Exporter;
use strict;
use local::db;
use base "Exporter";
use local::netmask;
sub new
{
my $invocant = shift;
my $class = ref($invocant) || $invocant;
# my $self = $class->SUPER::new(@_);
my $self=bless {}, $class;
my %ENV=@_;
($self->{name})=$ENV{REMOTE_USER};
if (not $self->{name})
{
$self->{name}=$ENV{REMOTE_ADDR};
my $netmask = new local::netmask();
for my $ip ( local::db::ip->retrieve_all())
{
if ($netmask->check_ip_in_subnet($ENV{REMOTE_ADDR},$ip->subnet,$ip->mask))
{
$self->{name}=$ip->owner->name;
}
}
}
my @user = local::db::owner->search(name => $self->{name});
if (not @user)
{
push @user,local::db::owner->insert({name => $self->{name}});
}
$self->{id}=$user[0]->owner_id();
die 'Could not find you user' if not $self->{id};
return $self;
}
sub obj
{
my $self = shift;
return local::db::owner->retrieve($self->{id});
}
sub is_admin
{
my $self = shift;
my $user = $self->obj;
return ($user->admin and $user->admin ne 'FALSE')?1:0;
}
sub get_name
{
my $self = shift;
return $self->{name};
}
sub get_id
{
my $self = shift;
return $self->{id};
}
|