Module: TheRole::Api::User

Extended by:
ActiveSupport::Concern
Includes:
BaseMethods
Defined in:
app/models/concerns/the_role/api/user.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Methods included from BaseMethods

#admin?, #any_role?, #has_role?, #has_section?, #moderator?

Instance Method Details

#owner?(obj) ⇒ Boolean

FALSE if object is nil If object is a USER - check for youself Check for owner field - :user_id Check for owner object if owner field is not :user_id

Returns:

  • (Boolean)


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'app/models/concerns/the_role/api/user.rb', line 33

def owner? obj
  return false unless obj
  return true  if admin?

  section_name = obj.class.to_s.tableize
  return true if moderator?(section_name)

  # obj is User, simple way to define user_id
  return id == obj.id if obj.is_a?(self.class)

  # few ways to define user_id
  return id == obj.user_id     if obj.respond_to? :user_id
  return id == obj[:user_id]   if obj[:user_id]
  return id == obj[:user][:id] if obj[:user]

  false
end

#role_hashObject

version for ‘User` model



11
12
13
# File 'app/models/concerns/the_role/api/user.rb', line 11

def role_hash
  @role_hash ||= role.try(:to_hash) || {}
end