Module: Joinable::ActsAsPermissable::ClassMethods
- Included in:
- Joinable::ActsAsJoinable::ClassMethods, Joinable::ActsAsJoinableComponent::ClassMethods
- Defined in:
- lib/joinable/acts_as_permissable.rb
Instance Method Summary collapse
- #find_with_privacy(record_id, user, options = {}) ⇒ Object
-
#permission_sql_condition(column, permission, options = {}) ⇒ Object
Returns an SQL fragment for a WHERE condition that checks the given column for the given permission.
-
#with_permission(user, permission) ⇒ Object
Returns all records where the given user has the given permission.
-
#with_permission_sql(user, permission, options = {}) ⇒ Object
Returns an SQL fragment for a WHERE condition that evaluates to true if the user has the given permission For use when asking.
Instance Method Details
#find_with_privacy(record_id, user, options = {}) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/joinable/acts_as_permissable.rb', line 5 def find_with_privacy(record_id, user, = {}) record = find(record_id) raise ActiveRecord::RecordNotFound, ([:error_message] || "Couldn't find #{name}") unless user.(:find, record) return record end |
#permission_sql_condition(column, permission, options = {}) ⇒ Object
Returns an SQL fragment for a WHERE condition that checks the given column for the given permission
25 26 27 28 |
# File 'lib/joinable/acts_as_permissable.rb', line 25 def (column, , = {}) = "'#{}'" unless [:raw] "#{} = ANY(#{column})" end |
#with_permission(user, permission) ⇒ Object
Returns all records where the given user has the given permission
14 15 16 |
# File 'lib/joinable/acts_as_permissable.rb', line 14 def (user, ) where((user, )) end |
#with_permission_sql(user, permission, options = {}) ⇒ Object
Returns an SQL fragment for a WHERE condition that evaluates to true if the user has the given permission For use when asking
20 21 22 |
# File 'lib/joinable/acts_as_permissable.rb', line 20 def (user, , = {}) raise NotImplementedError end |