README.md in strong_actions-0.0.9 vs README.md in strong_actions-0.1.0

- old
+ new

@@ -24,56 +24,56 @@ 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? - +```yaml +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? - +```yaml +current_user: + users: admin? +``` controller definition can be namespaced. - - current_user: - admin/users: admin? - +```yaml +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'. +```yaml +current_user: + admin/: 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 - +```ruby +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') %> - +```erb +<%= link_to 'Add User' new_user_path if available?('users', 'new') %> +``` ## Contributing -1. Fork it ( https://github.com/[my-github-username]/strong_actions/fork ) +1. Fork it ( https://github.com/hybitz/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