diff options
Diffstat (limited to 'local/user.pm')
-rw-r--r-- | local/user.pm | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/local/user.pm b/local/user.pm index 3700139..a0e24fd 100644 --- a/local/user.pm +++ b/local/user.pm @@ -3,6 +3,7 @@ require Exporter; use strict; use local::db; use base "Exporter"; +use local::netmask; sub new { @@ -12,6 +13,18 @@ sub 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) { |