module AuthClient::User::ClassMethods

Public Instance Methods

acts_as_auth_client_user() click to toggle source
# File lib/auth_client/user.rb, line 60
def acts_as_auth_client_user
  define_method :permissions do
    ::Permission.where :user_id => id
  end

  define_method(:has_permission?) do |role:, context: nil|
    context ?
      permissions.for_role(role).for_context(context).exists? :
      permissions.for_role(role).exists?
  end
end
find_by(id:) click to toggle source
# File lib/auth_client/user.rb, line 72
def find_by(id:)
  redis_data = RedisUserConnector.get(id)

  return nil if (redis_data.nil? || redis_data.empty?)

  attributes = redis_data.merge(:id => id)

  build_user attributes
end

Private Instance Methods

build_user(attributes) click to toggle source
# File lib/auth_client/user.rb, line 84
def build_user(attributes)
  new.tap do |user|
    attributes.each do |attribute, value|
      name = "@#{attribute}"
      user.instance_variable_set name, value

      user.define_singleton_method attribute do
        instance_variable_get name
      end
    end
  end
end