Module: Mumuki::Domain::Helpers::User

Extended by:
ActiveSupport::Concern
Includes:
Mumukit::Auth::Roles, Mumukit::Platform::Notifiable
Included in:
User
Defined in:
lib/mumuki/domain/helpers/user.rb

Instance Method Summary collapse

Instance Method Details

#discusser_of?(organization) ⇒ Boolean

Tells whether this user has forum discusser permissions in the given organization

Returns:

  • (Boolean)


45
46
47
# File 'lib/mumuki/domain/helpers/user.rb', line 45

def discusser_of?(organization)
  has_permission? organization.forum_discussions_minimal_role, organization.slug
end

#full_nameObject Also known as: name

Profile



60
61
62
# File 'lib/mumuki/domain/helpers/user.rb', line 60

def full_name
  "#{first_name} #{last_name}"
end

#has_immersive_main_organization?Boolean

Returns:

  • (Boolean)


94
95
96
# File 'lib/mumuki/domain/helpers/user.rb', line 94

def has_immersive_main_organization?
  !!main_organization.try(&:immersive?)
end

#has_main_organization?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/mumuki/domain/helpers/user.rb', line 90

def has_main_organization?
  student_granted_organizations.length == 1
end

#has_role?Object

Permissions



8
9
10
11
12
13
14
15
16
# File 'lib/mumuki/domain/helpers/user.rb', line 8

delegate :has_role?,
:add_permission!,
:remove_permission!,
:has_permission?,
:has_permission_delegation?,
:protect!,
:protect_delegation!,
:protect_permissions_assignment!,
to: :permissions

#has_student_granted_organizations?Boolean

Returns:

  • (Boolean)


82
83
84
# File 'lib/mumuki/domain/helpers/user.rb', line 82

def has_student_granted_organizations?
  student_granted_organizations.present?
end

#main_organizationObject



86
87
88
# File 'lib/mumuki/domain/helpers/user.rb', line 86

def main_organization
  student_granted_organizations.first
end

#merge_permissions!(new_permissions) ⇒ Object



22
23
24
# File 'lib/mumuki/domain/helpers/user.rb', line 22

def merge_permissions!(new_permissions)
  self.permissions = permissions.merge(new_permissions)
end

#platform_class_nameObject



18
19
20
# File 'lib/mumuki/domain/helpers/user.rb', line 18

def platform_class_name
  :User
end

#profile_completed?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/mumuki/domain/helpers/user.rb', line 66

def profile_completed?
  self.class.profile_fields.map { |it| self[it] }.all? &:present?
end

#student_granted_organizationsObject

Accesible organizations



76
77
78
79
80
# File 'lib/mumuki/domain/helpers/user.rb', line 76

def student_granted_organizations
  permissions.student_granted_organizations.map do |org|
    Mumukit::Platform::Organization.find_by_name!(org) rescue nil
  end.compact
end

#to_paramObject

API Exposure



100
101
102
# File 'lib/mumuki/domain/helpers/user.rb', line 100

def to_param
  uid
end

#to_sObject



70
71
72
# File 'lib/mumuki/domain/helpers/user.rb', line 70

def to_s
  "#{full_name} <#{email}> [#{uid}]"
end