ActiveScaffold的访问控制

ActiveScaffold(以下简称as)是rails的一个插件,用于生成比原生的scaffold更华丽的ajax数据操作界面。

 

但是as的文档可以说非常不详细!很多时候需要靠经验去猜。因此记录一下。

 

  • controller的action访问控制(在controller文件)

定义#{action}_authorized?,例如create_authorized?.在文档中遍寻不到as到底有那些action,结果未果(当然可以看as的源代码,但是这样也太。。。。了)。

 action可以是 create、listsearchshowupdatedelete

  • model的crud访问控制(在model文件)

定义authorized_for_#{crud_action}?,例如authorized_for_destroy?

其中的crud_action是create、readupdatedestroy 之一。

 

  • 字段级的访问控制(在model文件)

#{column_name}_authorized_for_#{crud_action}?---控制在某个crud操作时对某个字段进行控制

#{column_name}_authorized-----------------------控制在任何crud操作时对某个字段进行控制

 

 

让他们生效的方法:

在application.rb中添加如下

 

  1.   ActiveScaffold.set_defaults do |config|   
  2.     config.security.current_user_method = :current_user
  3.     #  没有显示设置存取权限时对应用的访问许可默认
  4.     config.security.default_permission=true
  5.   end
  6.   
  7.   #一个供activescaffold使用的认证回调
  8.   def current_user
  9.     if session[:user_id]
  10.       User.find(session[:user_id])
  11.     else
  12.       flash[:notice] = '登录先!'
  13.       redirect_to(:controller => "user":action => "login")
  14.     end
  15.   end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值