`
jetspeed
  • 浏览: 14899 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rails 权限管理

阅读更多
这篇帖子 http://www.iteye.com/topic/177508

RoleRequirement 这个插件,因为他支持eval一些自定义方法来进行细粒度的判断

Ruby代码 复制代码

   1. class Admin::Listings < ApplicationController  
   2.   require_role "contractor"  
   3.   require_role "admin", :for => :destroy # don't allow contractors to destroy  
   4.   
   5.   # leverage ruby to prevent contractors from updating listings they don't have access to.  
   6.   require_role "admin", :for => :update, <strong>:unless => "current_user.authorized_for_listing?(params[:id]) "</strong>  ...  
   7. end  
   8. "  

class Admin::Listings < ApplicationController
  require_role "contractor"
  require_role "admin", :for => :destroy # don't allow contractors to destroy

  # leverage ruby to prevent contractors from updating listings they don't have access to.
  require_role "admin", :for => :update, :unless => "current_user.authorized_for_listing?(params[:id]) "  ...
end
"








经过修改,扩展出这种形式的调用:
@user.can_{action}_{controller}?
@user.can_{action}_{controller}?(@target)

以便在View能做更细致的布局
分享到:
评论

相关推荐

    Redmine 搭建 Ruby_Ruby_on_Rails 项目管理系统

    - **权限管理**:提供细致的权限控制,确保数据安全和访问控制。 #### 四、总结 本文详细介绍了如何在特定的 Linux 环境下搭建 Redmine 项目管理系统,并提供了所需的资源下载链接和版本号。Redmine 作为一个功能...

    Rails 101 入门电子书

    - 安装Ruby: 使用rbenv、RVM或其他工具进行管理。 - 安装Rails: 使用gem工具安装最新的Rails版本。 - 测试安装: 创建一个简单的Rails应用来验证是否成功安装。 #### 五、练习作业0-Hello World - **目标**: - ...

    Ruby-RailsAdmin一个Rails引擎提供了一个易于使用的界面来管理您的数据

    5. 权限控制:通过集成如CanCanCan或Pundit等权限管理库,RailsAdmin 可以实现角色基础的访问控制,确保不同用户只能看到和操作他们被授权的数据。 6. 导入导出功能:RailsAdmin 支持数据的批量导入和导出,这在...

    Rails3常用命令行命令

    Rails3 是 Ruby on Rails 框架的一个版本,它提供了一系列强大的命令行工具,使得开发者可以快速地构建和管理Web应用。在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个...

    Ruby on Rails实践

    Rails还提供了丰富的插件和gem库,如Devise用于身份验证,CanCanCan处理权限控制,Pundit管理授权,Bootstrap-Sass和jQuery-rails用于前端界面和交互。开发者可以方便地通过Gemfile引入这些工具,然后利用Bundler...

    Rails上的API:使用Rails构建REST APIAPIs on Rails: Building REST APIs with Rails

    4. **实现认证和授权机制**:为了保证API的安全性,需要实现用户认证和权限管理功能,例如使用JWT(JSON Web Tokens)、OAuth等方式。 5. **错误处理**:定义一套统一的错误处理策略,当请求无法正确处理时能够向...

    Ruby-Administrate一个框架用于在Rails中创建灵活的强大的管理仪表板

    7. **权限控制**:虽然Administrate本身不提供用户认证和权限管理,但它可以与如Devise或Pundit等库结合使用,实现对后台访问的控制。 8. **插件系统**:Administrate有一个活跃的社区,提供了许多插件,可以扩展其...

    Ruby-Acl9一个Rails基于角色的授权系统

    Ruby-Acl9是一个在Rails框架下广泛使用的基于角色的访问控制库,它为开发者提供了强大的权限管理和授权功能。这个库的出现使得在Rails应用中实现复杂的权限控制变得更加简单和直观。Acl9的设计理念是通过定义角色...

    RailsGacl Rails应用 通用访问控制列表

     RailsGACL 是一组允许你控制对象(用户,远程主机等)访问其他对象(网页,数据库等)权限的函数.  该组函数可以通过简单的管理提供高精度的访问控制,并且运行地很快.  它是用 Rails,一种当前十分被看好的被用来...

    InspiniaAdmin 2.6.1 Rails_Full_Version

    1. **用户认证与授权**:内置了用户注册、登录、权限管理等功能,可以轻松实现用户身份验证和角色权限控制,确保后台的安全性。 2. **数据可视化**:集成了一系列图表库,如Chart.js和Morris.js,用于数据展示和...

    rails 的安装

    - 如果在安装过程中遇到权限问题,尝试使用 `sudo` 命令或者改变Gem的安装位置。 - 如果有Gem冲突,可能需要更新或降级特定的Gem版本。 - 确保你的系统满足Rails和Ruby的最低要求,以及任何特定Gem的系统依赖。 ...

    Ruby on Rails入门权威经典

    同时,也会涉及控制器的过滤器,如before_action和after_action,这些是实现业务逻辑和权限控制的关键。 Rails还提供了丰富的内置功能,如测试框架Rspec和Capybara,用于编写自动化测试;以及Asset Pipeline,用于...

    ruby on rails for dummies

    书中可能还会涉及Rails的插件和gem(Ruby的包管理器),如Devise用于用户认证,CanCanCan或Pundit进行权限控制,以及Resque或Sidekiq处理后台任务。另外,部署Rails应用到Heroku、AWS或其他云平台也可能被提及,让...

    Mac上rails环境的搭建

    - 创建管理员账户并配置权限。 ##### 3. 隐藏文件 安装配置完成后,记得隐藏这些文件以保持界面整洁。 ```bash defaults write ~/Library/Preferences/com.apple.finder AppleShowAllFiles -bool false ``` ####...

    ruby on rails在线考试系统

    7. Gems和插件:Rails社区提供了大量的Gems(Ruby的包管理系统),可以方便地扩展功能。例如,Devise用于用户认证,Cancancan进行权限控制,Paperclip或Carrierwave处理文件上传等。 8. 安全性:Rails内置了一些...

    mid.zip_Rails

    这个"mid.zip_Rails"项目,作为一个多数据库管理平台,可能会提供用户界面,让管理员能够查看、创建、编辑和删除不同数据库中的数据,同时具备用户权限管理、数据库备份和恢复等功能。对于开发者而言,深入理解Rails...

    linux-在Ubuntu服务器上安装Rails生产环境的脚本

    5. **权限与安全**:确保你的应用有正确的文件权限,并考虑使用`unprivileged user`运行Rails进程。使用`chown`和`chmod`命令调整文件和目录的权限。 6. **防火墙配置**:打开必要的端口,例如80和443,以便外部...

    Rails 3 in Action

    - **授权**:根据用户的权限确定他们可以访问哪些资源或执行哪些操作。 - **常用方法**: - 使用会话管理(session management)。 - 令牌认证(token authentication)。 - 外部服务集成,如 OAuth。 #### 七、文件...

    ruby on rails 搭建redmine

    Redmine则是一个用Ruby on Rails构建的项目管理软件,提供了任务跟踪、问题追踪、版本控制集成等功能,广泛应用于软件开发团队。 在使用Ruby on Rails搭建Redmine时,你需要了解以下关键知识点: 1. **环境准备**...

    windows下配置netbeans开发rails

    保持RubyGems(Ruby的包管理器)更新至最新版本可以确保安装最新的Rails版本。 3. **NetBeans IDE**:下载并安装NetBeans IDE,确保选择Ruby和Rails插件。安装完成后,打开IDE并创建一个新的Rails项目,IDE会自动...

Global site tag (gtag.js) - Google Analytics