Consul
Show archive.org snapshot
0.6.1+ gives you a way to dynamically access and query powers for a given name, model class or record.
A common use case for this are generic helper methods, e.g. a method to display an "edit" link for any given record
if the user is authorized to change that record:
module CrudHelper
def edit_record_action(record)
if current_power.include_record?(:updatable, record)
link_to 'Edit', [:edit, record]
end
end
end
You can find a full list of available dynamic calls below:
Dynamic call | Equivalent |
---|---|
Power.current.send(:notes) |
Power.current.notes |
Power.current.include?(:notes) |
Power.current.notes? |
Power.current.include!(:notes) |
Power.current.notes! |
Power.current.include?(:notes, Note.last) |
Power.current.note?(Note.last) |
Power.current.include!(:notes, Note.last) |
Power.current.note!(Note.last) |
Power.current.for_record(Note.last) |
Power.current.notes |
Power.current.for_record(:updatable, Note.last) |
Power.current.updatable_notes |
Power.current.for_model(Note) |
Power.current.notes |
Power.current.for_model(:updatable, Note) |
Power.current.updatable_notes |
Power.current.include_model?(Note) |
Power.current.notes? |
Power.current.include_model?(:updatable, Note) |
Power.current.updatable_notes? |
Power.current.include_model!(Note) |
Power.current.notes! |
Power.current.include_model!(:updatable, Note) |
Power.current.updatable_notes! |
Power.current.include_record?(Note.last) |
Power.current.note?(Note.last) |
Power.current.include_record?(:updatable, Note.last) |
Power.current.updatable_note?(Note.last) |
Power.current.include_record!(Note.last) |
Power.current.note!(Note.last) |
Power.current.include_record!(:updatable, Note.last) |
Power.current.updatable_note!(Note.last) |
Power.current.name_for_model(Note) |
:notes |
Power.current.name_for_model(:updatable, Note) |
:updatable_notes |
Power.current.name_for_record(Note.last) |
:notes |
Power.current.name_for_record(:updatable, Note.last) |
:updatable_notes |
Posted by Henning Koch to makandra dev (2013-01-29 14:07)