diff options
author | Othmar Gsenger <otti@wirdorange.org> | 2011-01-16 15:19:12 +0000 |
---|---|---|
committer | Othmar Gsenger <otti@wirdorange.org> | 2011-01-16 15:19:12 +0000 |
commit | 0f2754d0521867030447a4628d37d6e54e71b2c9 (patch) | |
tree | 77cdb0d77e861d1cfe155456443fd0ff00097c43 /local/user.pm | |
parent | bugfixes (diff) |
added login via ip functionality
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) { |