Sha256: d18b288447a2297632fe6c51fdf4e1e453745f7a0ea3c12dd9488b6717b58b45
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
module Cms module UsersService class UsersFactory class << self delegate :guest_user, :user, :extend_user, to: :factory end def self.factory @factory || new end def guest_user load_guest_user.tap { |u| extend_user u } end def user(login, group_codes: nil) load_user(login).tap do |user| extend_user(user, group_codes: group_codes) end end def extend_user(user, group_codes: nil) user.send :extend, CmsUserCompatibilityModule unless user.try :cms_user_compatible? user.send :extend, UserGroupsByCodesModule unless user.respond_to? :group_codes= add_groups_to_user(user, group_codes) if group_codes user end private def add_groups_to_user(user, group_codes) user.group_codes = Array(group_codes) end def load_user(login) Cms.user_class.where(Cms.user_key_field => login).first! end def load_guest_user params = { Cms.user_key_field => Cms::Group::GUEST_CODE, Cms.user_name_field => GUEST_NAME } Cms.user_class.new(params).tap do |guest_user| guest_user.send :extend, GuestUserModule end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
browsercms-artirix-4.0.1.1 | lib/cms/users_service/users_factory.rb |