Module: Freeberry::Models::User::InstanceMethods

Defined in:
lib/freeberry/models/user.rb

Instance Method Summary collapse

Instance Method Details

#admin?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/freeberry/models/user.rb', line 30

def admin?
  has_role?(:admin)
end

#current_roleObject



57
58
59
# File 'lib/freeberry/models/user.rb', line 57

def current_role
  self.roles.first
end

#events_for_current_stateObject



84
85
86
87
88
# File 'lib/freeberry/models/user.rb', line 84

def events_for_current_state
  events = []
  events << 'activate' if state == 'register'
  events
end

#has_login?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/freeberry/models/user.rb', line 42

def has_login?
  respond_to?(:login)
end

#has_role?(role_name) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/freeberry/models/user.rb', line 34

def has_role?(role_name)
  role_symbols.include?(role_name.to_sym)
end

#manager?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/freeberry/models/user.rb', line 26

def manager?
  has_role?(:manager)
end

#role_symbolsObject



53
54
55
# File 'lib/freeberry/models/user.rb', line 53

def role_symbols
  (roles || []).map {|r| r.to_sym}
end

#role_type_idObject



61
62
63
64
65
# File 'lib/freeberry/models/user.rb', line 61

def role_type_id
  if current_role
    current_role.role_type.id
  end
end

#role_type_id=(value) ⇒ Object



67
68
69
70
71
72
73
74
75
# File 'lib/freeberry/models/user.rb', line 67

def role_type_id=(value)
  role_id = value.blank? ? nil : value.to_i
  
  if ::RoleType.all.map(&:id).include?(role_id)
    ::RoleType.all.each do |role_type|
      create_or_destroy_role(role_type.id, role_type.id == role_id)
    end
  end
end

#roles_attributes=(value) ⇒ Object



46
47
48
49
50
51
# File 'lib/freeberry/models/user.rb', line 46

def roles_attributes=(value)
  options = value || {}
  options.each do |k, v|
    create_or_destroy_role(k.to_i, v.to_i == 1)
  end
end

#roles_empty?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/freeberry/models/user.rb', line 38

def roles_empty?
  self.roles.empty?
end

#stateObject



77
78
79
80
81
82
# File 'lib/freeberry/models/user.rb', line 77

def state
  return 'active' if active?
  return 'register' unless confirmed?
  return 'suspend' if access_locked?
  'pending'
end