Sha256: 94ba4fa8c565c55147d55cd15f46e0e9c759bb9ceb9aeb20aaf39c45a3a3d663
Contents?: true
Size: 652 Bytes
Versions: 4
Compression:
Stored size: 652 Bytes
Contents
module EgovUtils class RefreshUserGroups def initialize(user) @user = user end def call group_ids = (current_non_ldap_group + ldap_groups).compact.map(&:id) user.group_ids = group_ids user end private attr_reader :user def ldap_groups return [] if user.provider.blank? @ldap_groups ||= begin EgovUtils::Group.where(provider: user.provider).to_a.select do |g| user.auth_source.member?(user.ldap_dn, g.external_uid) end end end def current_non_ldap_group @current_non_ldap_groups ||= user.groups.where(ldap_uid: nil) end end end
Version data entries
4 entries across 4 versions & 1 rubygems