summaryrefslogtreecommitdiff
path: root/local/user.pm
diff options
context:
space:
mode:
Diffstat (limited to 'local/user.pm')
-rw-r--r--local/user.pm13
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)
{