Sha256: 8072074a00ca8ca4ea42650d3a74f5081ba0e57840a0d3cb8781180629eeaa58
Contents?: true
Size: 1.91 KB
Versions: 3
Compression:
Stored size: 1.91 KB
Contents
# StrongActions Access control for rails controller/action. ## Installation Add this line to your application's Gemfile: gem 'strong_actions' And then execute: $ bundle Or install it yourself as: $ gem install strong_actions ## Usage ### Configuration Suppose method "current_user" is available for controllers and views, and user has an attribute called admin and only admin can modify resource "users", then prepare config/acl.yml current_user: users: new: admin? create: admin? edit: admin? update: admin? destroy: admin? In above case, when a non-admin user try to access new_user_path, StrongActions::ForbiddenAction is thrown. if all actions are restricted in the same way, you can make a definition on controller level. current_user: users: admin? controller definition can be namespaced. current_user: admin/users: admin? if you have multiple controllers under a namespace, namespace can be used. ending with '/' indicates that is for namespace 'admin' and not controller 'admin'. current_user: admin/: admin? ### Handling error in controller In application_controller.rb, the error should be rescued like rescue_from StrongActions::ForbiddenAction do render :file => 'public/403.html', :layout => false, :status => :forbidden end In above case, all the forbidden accesses are handled by public/403.html. ### Disabling forbidden link in view In views, use helper method "available?" so that links for forbidden actions are not shown. <%= link_to 'Add User' new_user_path if available?('users', 'new') %> ## Contributing 1. Fork it ( https://github.com/[my-github-username]/strong_actions/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
strong_actions-0.0.9 | README.md |
strong_actions-0.0.8 | README.md |
strong_actions-0.0.7 | README.md |