2013-12-08 60 views

回答

6

是的,這是直截了當的事情。您可以在這裏選擇:您可以註冊一個proc來運行而不是所有的POST,或者您可以註冊一個過濾器在POST之前運行並過濾掉某些用戶或任何其他內容。我認爲過濾器是一個更好的選擇。

要做到這一點,請使用ns_register_procns_register_filter(with preauth)註冊您的proc或過濾器。將以下代碼放入OpenACS軟件包的tcl文件夾下的.tcl文件中或主AOLserver/web/servername/tcl目錄下。

過濾例如:

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 } { 
     #this user isn't allowed - so redirect them 
     ns_returnredirect "/register/" 
     # tell AOLserver to abort this thread 
     return filter_return 
    } else { 
     # this user is allowed, tell AOLserver to continue 
     return filter_ok 
    } 
} 

PROC例如:

ns_register_proc POST/handle_posts 
    proc handle_posts {} { 
     ns_returnredirect "http://someotherwebsite.com" 
    } 
+0

我要補充一點,你應該只是一個或另一個,而不是兩個, – TrojanName

相關問題