class Teneo::DataModel::User
noinspection RailsParamDefResolve
Public Class Methods
from_hash(hash)
click to toggle source
@param [Hash] hash
Calls superclass method
Teneo::DataModel::Base::from_hash
# File lib/teneo/data_model/user.rb, line 34 def self.from_hash(hash) roles = hash.delete(:roles) item = super(hash, [:email]) item.memberships.clear if roles roles.each do |role| organization_name = role[:organization] org = Teneo::DataModel::Organization.find_by(name: organization_name) puts "Could not find organization '#{organization_name}'" unless org role_code = role[:role] if Teneo::DataModel::Membership::ROLE_LIST.include? role_code item.add_role(role_code, org) if org else puts "Invalid role '#{role_code}'" end end item.save! end item end
Public Instance Methods
add_role(role, organization)
click to toggle source
@param [String] role @param [Organization] organization @return [Membership]
# File lib/teneo/data_model/user.rb, line 86 def add_role(role, organization) self.memberships.build(organization: organization, role: role) end
del_role(role, organization)
click to toggle source
@param [String] role @param [Organization] organization
# File lib/teneo/data_model/user.rb, line 92 def del_role(role, organization) m = self.memberships.find_by(organization: organization, role: role) m&.destroy! end
init()
click to toggle source
# File lib/teneo/data_model/user.rb, line 24 def init self.uuid ||= SecureRandom.uuid end
member_organizations()
click to toggle source
@return [Hash<Organization, Array<String>>]
# File lib/teneo/data_model/user.rb, line 98 def member_organizations # noinspection RubyResolve self.memberships.reduce({}) do |h, m| h[m.organization] ||= [] h[m.organization].push(m.role) h end end
name()
click to toggle source
# File lib/teneo/data_model/user.rb, line 29 def name "#{first_name} #{last_name}" end
organizations_for(role)
click to toggle source
@param [String] role @return [Array<Organization>]
# File lib/teneo/data_model/user.rb, line 72 def organizations_for(role) self.memberships.where(role: role).map(&:organization) rescue [] end
roles_for(organization)
click to toggle source
@param [Organization] organization @return [Array<String>]
# File lib/teneo/data_model/user.rb, line 66 def roles_for(organization) self.memberships.where(organization: organization).map(&:role) rescue [] end