Ja, das ist ganz einfach zu tun. Du hast hier die Wahl: Du kannst ein Proc registrieren, das anstelle aller POSTs ausgeführt wird, oder du kannst einen Filter registrieren, der vor dem POST ausgeführt wird und bestimmte Benutzer filtert. Ich glaube, der Filter ist die bessere Wahl.
Um dies zu tun, registrierst du dein Proc oder Filter mit ns_register_proc oder ns_register_filter (mit Preauth). Füge den folgenden Code in eine .tcl-Datei im tcl-Ordner eines OpenACS-Pakets oder im Hauptverzeichnis des AOLservers /web/servername/tcl ein.
Filterbeispiel:
ns_register_filter preauth POST / filter_posts
proc filter_posts {} {
set user_id [ad_verify_and_get_user_id]
set list_of_allowed_user_ids [21 567 8999]
if {[lsearch -exact $list_of_allowed_user_ids $user_id] == -1 } {
# Dieser Benutzer ist nicht zugelassen - also leite ihn um
ns_returnredirect "/register/"
# Sag AOLserver, dass er diesen Thread abbrechen soll
return filter_return
} else {
# Dieser Benutzer ist zugelassen, sag AOLserver, dass er fortsetzen soll
return filter_ok
}
}
Procbeispiel:
ns_register_proc POST / handle_posts
proc handle_posts {} {
ns_returnredirect "http://someotherwebsite.com"
}