Class: Mumukit::Auth::User
- Inherits:
-
Object
- Object
- Mumukit::Auth::User
- Defined in:
- lib/mumukit/auth/user.rb
Instance Attribute Summary collapse
-
#social_id ⇒ Object
Returns the value of attribute social_id.
-
#user ⇒ Object
Returns the value of attribute user.
Class Method Summary collapse
Instance Method Summary collapse
- #add_permission!(key, permission) ⇒ Object
- #admin?(slug) ⇒ Boolean
- #apps ⇒ Object
- #client ⇒ Object
-
#initialize(social_id, user = nil) ⇒ User
constructor
A new instance of User.
- #librarian?(slug) ⇒ Boolean
- #metadata ⇒ Object
- #permissions_for(app) ⇒ Object
- #permissions_string ⇒ Object
- #remove_permission!(key, permission) ⇒ Object
- #student?(slug) ⇒ Boolean
- #teacher?(slug) ⇒ Boolean
Constructor Details
#initialize(social_id, user = nil) ⇒ User
Returns a new instance of User.
7 8 9 10 |
# File 'lib/mumukit/auth/user.rb', line 7 def initialize(, user=nil) @social_id = @user = user || client.user(@social_id) end |
Instance Attribute Details
#social_id ⇒ Object
Returns the value of attribute social_id.
5 6 7 |
# File 'lib/mumukit/auth/user.rb', line 5 def @social_id end |
#user ⇒ Object
Returns the value of attribute user.
5 6 7 |
# File 'lib/mumukit/auth/user.rb', line 5 def user @user end |
Class Method Details
.client ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/mumukit/auth/user.rb', line 64 def self.client Auth0Client.new( :client_id => ENV['MUMUKI_AUTH0_CLIENT_ID'], :client_secret => ENV['MUMUKI_AUTH0_CLIENT_SECRET'], :domain => "mumuki.auth0.com" ) end |
.from_email(email) ⇒ Object
58 59 60 61 62 |
# File 'lib/mumukit/auth/user.rb', line 58 def self.from_email(email) user = client.users("email:#{email}").first raise Mumukit::Auth::EmailNotRegistered.new('There is no user registered with that email.') unless user.present? new(user['user_id']) end |
Instance Method Details
#add_permission!(key, permission) ⇒ Object
12 13 14 15 |
# File 'lib/mumukit/auth/user.rb', line 12 def (key, ) .(key, ) end |
#admin?(slug) ⇒ Boolean
46 47 48 |
# File 'lib/mumukit/auth/user.rb', line 46 def admin?(slug) .admin? slug end |
#apps ⇒ Object
34 35 36 |
# File 'lib/mumukit/auth/user.rb', line 34 def apps ['bibliotheca', 'classroom', 'admin', 'atheneum'] end |
#client ⇒ Object
38 39 40 |
# File 'lib/mumukit/auth/user.rb', line 38 def client self.class.client end |
#librarian?(slug) ⇒ Boolean
42 43 44 |
# File 'lib/mumukit/auth/user.rb', line 42 def librarian?(slug) .librarian? slug end |
#metadata ⇒ Object
26 27 28 |
# File 'lib/mumukit/auth/user.rb', line 26 def @metadata ||= Mumukit::Auth::Metadata.load() end |
#permissions_for(app) ⇒ Object
30 31 32 |
# File 'lib/mumukit/auth/user.rb', line 30 def (app) [app]['permissions'] end |
#permissions_string ⇒ Object
22 23 24 |
# File 'lib/mumukit/auth/user.rb', line 22 def apps.select { |app| @user[app].present? }.map { |app| {app.to_s => @user[app]} }.reduce({}, :merge).to_json end |
#remove_permission!(key, permission) ⇒ Object
17 18 19 20 |
# File 'lib/mumukit/auth/user.rb', line 17 def (key, ) .(key, ) end |
#student?(slug) ⇒ Boolean
54 55 56 |
# File 'lib/mumukit/auth/user.rb', line 54 def student?(slug) .student? slug end |
#teacher?(slug) ⇒ Boolean
50 51 52 |
# File 'lib/mumukit/auth/user.rb', line 50 def teacher?(slug) .teacher? slug end |