Class: Mumukit::Login::Settings

Inherits:
Object
  • Object
show all
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

Class Method Summary collapse

Instance Method Summary collapse

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( = Mumukit::Login::Settings.default_methods)
  @login_methods = .map(&:to_sym)
end

Instance Attribute Details

#login_methodsObject (readonly)

Returns the value of attribute login_methods.



10
11
12
# File 'lib/mumukit/login/settings.rb', line 10

def 
  @login_methods
end

Class Method Details

.default_methodsObject



74
75
76
# File 'lib/mumukit/login/settings.rb', line 74

def self.default_methods
  [:user_pass]
end

.login_methodsObject



70
71
72
# File 'lib/mumukit/login/settings.rb', line 70

def self.
  LOCK_LOGIN_METHODS.keys
end

Instance Method Details

#lock_json_specObject



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: ,
      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_methodsObject



66
67
68
# File 'lib/mumukit/login/settings.rb', line 66

def 
  .map { |it| LOCK_LOGIN_METHODS[it] }
end

#many_methods?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/mumukit/login/settings.rb', line 16

def many_methods?
  user_pass? && .size > 1
end

#social_login_methodsObject



24
25
26
# File 'lib/mumukit/login/settings.rb', line 24

def 
   - [: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, options={})
  lock_json_spec
      .merge(
          auth: {
              redirect: true,
              redirectUrl: callback_url
          },
          params: {
              locale: locale
          },
          responseType: 'code',
          authParams: {scope: 'openid profile'})
      .merge(options)
      .to_json
      .html_safe
end

#user_pass?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/mumukit/login/settings.rb', line 20

def user_pass?
  .include? :user_pass
end