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

@ -15,5 +15,7 @@ delete from international where languageId=2 and namespace='WebGUI' and internat
insert into international (internationalId,languageId,namespace,message,lastUpdated) values (819,2,'WebGUI','kann selbst deaktivieren', 1043422108);
delete from international where languageId=2 and namespace='WebGUI' and internationalId=836;
insert into international (internationalId,languageId,namespace,message,lastUpdated) values (836,2,'WebGUI','Schnipsel sind Text-Elemente, die mehrfach auf Ihrer Seite genutzt werden k?nnen. Dinge wie Java-Scripts, Style Sheets, Flash Animationen oder einfach nur Slogans sind Beispiele hierf?r. Das beste daran ist, dass Sie ?nderungen, die zum Beispiel in einem Slogan oder Werbespruch durchgef?hrt werden m?ssen, an zentraler Stelle ?ndern k?nnen.<br><br>\r\n<b>Name</b><br>Vergeben Sie einen eindeutigen Namen, damit Sie das Schnipsel sp?ter schnell wiederfinden k?nnen.<br><br>\r\n<b>In welches Verzeichnis</b><br>In welchen Ordner m?chten Sie das Schnipsel speichern<br><br>\r\n<b>Schnipsel</b><br>Geben Sie hier den Text ein oder noch einfacher: kopieren Sie den ben?tigten Text oder auch JavaScript-Code ?ber die Zwischenablage ein.', 1043421646);
alter table groups add column ipFilter varchar(255);
insert into international (internationalId,languageId,namespace,message,lastUpdated) values (857,1,'WebGUI','IP Address', 1043878310);

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';