added ip-based groups.

This commit is contained in:
JT Smith 2003-01-30 04:28:28 +00:00
parent 10f3b55c3f
commit 25dd1f5465
3 changed files with 20 additions and 2 deletions

View file

@ -116,6 +116,11 @@ sub www_editGroup {
} else {
$f->hidden("karmaThreshold",$group{karmaThreshold});
}
$f->text(
-name=>"ipFilter",
-value=>$group{ipFilter},
-label=>WebGUI::International::get(857)
);
$f->submit;
$output .= $f->print;
return _submenu($output);
@ -132,7 +137,8 @@ sub www_editGroupSave {
description=".quote($session{form}{description}).",
expireAfter='".WebGUI::DateTime::intervalToSeconds($session{form}{expireAfter_interval},
$session{form}{expireAfter_units})."',
karmaThreshold='$session{form}{karmaThreshold}'
karmaThreshold='$session{form}{karmaThreshold}',
ipFilter=".quote($session{form}{ipFilter})."
where groupId=".$session{form}{gid});
return www_listGroups();
}

View file

@ -242,7 +242,17 @@ sub isInGroup {
}
### Get data for auxillary checks.
tie %group, 'Tie::CPHash';
%group = WebGUI::SQL->quickHash("select karmaThreshold from groups where groupId='$gid'");
%group = WebGUI::SQL->quickHash("select karmaThreshold,ipFilter from groups where groupId='$gid'");
### Check IP Address
if ($group{ipFilter} ne "") {
my @ips = split(";",$group{ipFilter});
foreach my $ip (@ips) {
if ($session{env}{REMOTE_ADDR} =~ /^$ip/) {
$session{isInGroup}{$gid} = 1;
return 1;
}
}
}
### Check karma levels.
if ($session{setting}{useKarma}) {
tie %user, 'Tie::CPHash';