Class: Mumukit::Login::Settings
- Inherits:
-
Object
- Object
- Mumukit::Login::Settings
- Defined in:
- lib/mumukit/login/settings.rb
Constant Summary collapse
- LOCK_LOGIN_METHODS =
{ facebook: 'facebook', github: 'github', google: 'google-oauth2', twitter: 'twitter', user_pass: 'Username-Password-Authentication' }
Instance Attribute Summary collapse
-
#login_methods ⇒ Object
readonly
Returns the value of attribute login_methods.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(login_methods = Mumukit::Login::Settings.default_methods) ⇒ Settings
constructor
A new instance of Settings.
- #lock_json_spec ⇒ Object
- #lock_login_methods ⇒ Object
- #many_methods? ⇒ Boolean
- #social_login_methods ⇒ Object
- #to_lock_json(callback_url, locale, options = {}) ⇒ Object
- #user_pass? ⇒ Boolean
Constructor Details
#initialize(login_methods = Mumukit::Login::Settings.default_methods) ⇒ Settings
Returns a new instance of Settings.
12 13 14 |
# File 'lib/mumukit/login/settings.rb', line 12 def initialize(login_methods = Mumukit::Login::Settings.default_methods) @login_methods = login_methods.map(&:to_sym) end |
Instance Attribute Details
#login_methods ⇒ Object (readonly)
Returns the value of attribute login_methods.
10 11 12 |
# File 'lib/mumukit/login/settings.rb', line 10 def login_methods @login_methods end |
Class Method Details
.default_methods ⇒ Object
74 75 76 |
# File 'lib/mumukit/login/settings.rb', line 74 def self.default_methods [:user_pass] end |
.login_methods ⇒ Object
70 71 72 |
# File 'lib/mumukit/login/settings.rb', line 70 def self.login_methods LOCK_LOGIN_METHODS.keys end |
Instance Method Details
#lock_json_spec ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/mumukit/login/settings.rb', line 45 def lock_json_spec { languageDictionary: { title: 'Mumuki', signUpTerms: I18n.t(:accept_terms_and_conditions, terms_url: Mumukit::Login.config.terms_url) }, sso: true, mustAcceptTerms: true, language: Mumukit::Platform::Locale.get_spec_for(I18n.locale, :auth0_code), allowedConnections: lock_login_methods, socialButtonStyle: many_methods? ? 'small' : 'big', rememberLastLogin: true, theme: { logo: Mumukit::Login.config.logo_url, primaryColor: '#FF5B81' }, disableResetAction: false, configurationBaseUrl: 'https://cdn.auth0.com', closable: false} end |
#lock_login_methods ⇒ Object
66 67 68 |
# File 'lib/mumukit/login/settings.rb', line 66 def lock_login_methods login_methods.map { |it| LOCK_LOGIN_METHODS[it] } end |
#many_methods? ⇒ Boolean
16 17 18 |
# File 'lib/mumukit/login/settings.rb', line 16 def many_methods? user_pass? && .size > 1 end |
#social_login_methods ⇒ Object
24 25 26 |
# File 'lib/mumukit/login/settings.rb', line 24 def login_methods - [:user_pass] end |
#to_lock_json(callback_url, locale, options = {}) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/mumukit/login/settings.rb', line 28 def to_lock_json(callback_url, locale, ={}) lock_json_spec .merge( auth: { redirect: true, redirectUrl: callback_url }, params: { locale: locale }, responseType: 'code', authParams: {scope: 'openid profile'}) .merge() .to_json .html_safe end |
#user_pass? ⇒ Boolean
20 21 22 |
# File 'lib/mumukit/login/settings.rb', line 20 def user_pass? login_methods.include? :user_pass end |