Class: Nquery::User
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Nquery::User
- Defined in:
- app/models/nquery/user.rb
Class Method Summary collapse
Instance Method Summary collapse
- #active? ⇒ Boolean
- #admin? ⇒ Boolean
- #deactivate! ⇒ Object
- #ensure_all_users_membership! ⇒ Object
- #ensure_personal_collection! ⇒ Object
- #name ⇒ Object
Class Method Details
.find_or_create_from_sso!(host_user) ⇒ Object
39 40 41 42 43 44 45 |
# File 'app/models/nquery/user.rb', line 39 def self.find_or_create_from_sso!(host_user) external_id = host_user.id.to_s find_or_create_by!(external_id: external_id) do |user| user.email = host_user.try(:email) || "#{external_id}@sso.local" user.first_name = host_user.try(:first_name) || host_user.try(:name) end.tap(&:ensure_all_users_membership!) end |
Instance Method Details
#active? ⇒ Boolean
27 28 29 |
# File 'app/models/nquery/user.rb', line 27 def active? deactivated_at.nil? end |
#admin? ⇒ Boolean
35 36 37 |
# File 'app/models/nquery/user.rb', line 35 def admin? Permissions::Resolver.new(self).admin? end |
#deactivate! ⇒ Object
31 32 33 |
# File 'app/models/nquery/user.rb', line 31 def deactivate! update!(deactivated_at: Time.current) end |
#ensure_all_users_membership! ⇒ Object
47 48 49 50 |
# File 'app/models/nquery/user.rb', line 47 def ensure_all_users_membership! all_users = Group.find_by!(system_group: "all_users") group_memberships.find_or_create_by!(group: all_users) end |
#ensure_personal_collection! ⇒ Object
52 53 54 55 56 |
# File 'app/models/nquery/user.rb', line 52 def ensure_personal_collection! return personal_collection if personal_collection create_personal_collection!(name: "#{name}'s Personal Collection", kind: "personal") end |
#name ⇒ Object
23 24 25 |
# File 'app/models/nquery/user.rb', line 23 def name [first_name, last_name].compact_blank.join(" ").presence || email end |