首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有合适的钩子来拦截OpenACS/AOLServer系统的所有帖子?

是否有合适的钩子来拦截OpenACS/AOLServer系统的所有帖子?
EN

Stack Overflow用户
提问于 2013-12-08 22:56:30
回答 1查看 119关注 0票数 2

我想禁用所有POST到OpenACS/AOLServer安装。是否有一个好的单一位置-一个请求-钩子或包装/中间件-来做这件事?

(如果拦截可以让几个URI模式或登录用户通过,则额外积分。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-08 23:29:28

是的,这是直接做的。您可以在这里选择:您可以注册一个proc来运行,而不是所有的帖子,或者您可以注册一个过滤器在文章之前运行,然后过滤掉某些用户或其他什么。我觉得过滤器是个更好的选择。

要做到这一点,您可以使用流程过滤器 (使用preauth)注册proc或过滤器。将以下代码放入.tcl文件中,放在OpenACS包的tcl文件夹下或AOLserver /web/servername/tcl主目录下。

过滤器示例:

代码语言:javascript
复制
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示例:

代码语言:javascript
复制
 ns_register_proc POST / handle_posts
    proc handle_posts {} {
        ns_returnredirect "http://someotherwebsite.com"
    }
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20460292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档