Sha256: 253c0c3f952260bc222a38d6cdd2ca4aa20212ef1a6a27b09f6beafaea48424e
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
require 'active_support/concern' module GDS module SSO module User def included(base) attr_accessible :uid, :email, :name, :permissions, :organisation_slug, as: :oauth end def has_permission?(permission) if permissions permissions.include?(permission) end end def self.user_params_from_auth_hash(auth_hash) { 'uid' => auth_hash['uid'], 'email' => auth_hash['info']['email'], 'name' => auth_hash['info']['name'], 'permissions' => auth_hash['extra']['user']['permissions'], 'organisation_slug' => auth_hash['extra']['user']['organisation_slug'], } end def clear_remotely_signed_out! self.update_attribute(:remotely_signed_out, false) end def set_remotely_signed_out! self.update_attribute(:remotely_signed_out, true) end extend ActiveSupport::Concern module ClassMethods def find_for_gds_oauth(auth_hash) if user = self.where(:uid => auth_hash["uid"]).first user.update_attributes(GDS::SSO::User.user_params_from_auth_hash(auth_hash.to_hash), as: :oauth) user else # Create a new user. self.create!(GDS::SSO::User.user_params_from_auth_hash(auth_hash.to_hash), as: :oauth) end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gds-sso-8.0.0 | lib/gds-sso/user.rb |
gds-sso-7.0.0 | lib/gds-sso/user.rb |