Class: OpenSesame::Configuration
- Inherits:
-
Object
- Object
- OpenSesame::Configuration
- Defined in:
- lib/open_sesame/configuration.rb
Constant Summary collapse
- CONFIGURABLE_ATTRIBUTES =
[ :organization_name, :mount_prefix, :github_application, :enabled, :debug, :full_host, :auto_access_provider, :after_login_path, :after_logout_path ]
Instance Method Summary collapse
- #auto_login(provider) ⇒ Object
- #configure {|_self| ... } ⇒ Object
- #configured? ⇒ Boolean
- #debug? ⇒ Boolean
- #disable! ⇒ Object
- #enable(enabled) ⇒ Object
- #enable! ⇒ Object
- #enabled? ⇒ Boolean
- #github(client_id, client_secret) ⇒ Object
- #github_access_token(access_token) ⇒ Object
- #host(full_host) ⇒ Object
- #mounted_at(mount_prefix) ⇒ Object
- #organization(organization_name) ⇒ Object
- #redirect_after_login(to) ⇒ Object
- #redirect_after_logout(to) ⇒ Object
- #redirect_to(to) ⇒ Object
- #valid? ⇒ Boolean
- #validate! ⇒ Object
Instance Method Details
#auto_login(provider) ⇒ Object
39 40 41 |
# File 'lib/open_sesame/configuration.rb', line 39 def auto_login(provider) self.auto_access_provider = provider end |
#configure {|_self| ... } ⇒ Object
76 77 78 79 80 |
# File 'lib/open_sesame/configuration.rb', line 76 def configure yield self validate! self end |
#configured? ⇒ Boolean
89 90 91 |
# File 'lib/open_sesame/configuration.rb', line 89 def configured? [:organization_name, :mount_prefix, :github_application].any? { |required| send(required).present? } end |
#debug? ⇒ Boolean
72 73 74 |
# File 'lib/open_sesame/configuration.rb', line 72 def debug? !!self.debug end |
#disable! ⇒ Object
47 48 49 |
# File 'lib/open_sesame/configuration.rb', line 47 def disable! self.enabled = false end |
#enable(enabled) ⇒ Object
51 52 53 |
# File 'lib/open_sesame/configuration.rb', line 51 def enable(enabled) self.enabled = !!enabled end |
#enable! ⇒ Object
43 44 45 |
# File 'lib/open_sesame/configuration.rb', line 43 def enable! self.enabled = true end |
#enabled? ⇒ Boolean
68 69 70 |
# File 'lib/open_sesame/configuration.rb', line 68 def enabled? !!self.enabled end |
#github(client_id, client_secret) ⇒ Object
27 28 29 |
# File 'lib/open_sesame/configuration.rb', line 27 def github(client_id, client_secret) self.github_application = { :client_id => client_id, :client_secret => client_secret } end |
#github_access_token(access_token) ⇒ Object
31 32 33 |
# File 'lib/open_sesame/configuration.rb', line 31 def github_access_token(access_token) self.github_application = { :access_token => access_token } end |
#host(full_host) ⇒ Object
23 24 25 |
# File 'lib/open_sesame/configuration.rb', line 23 def host(full_host) self.full_host = full_host end |
#mounted_at(mount_prefix) ⇒ Object
19 20 21 |
# File 'lib/open_sesame/configuration.rb', line 19 def mounted_at(mount_prefix) self.mount_prefix = mount_prefix end |
#organization(organization_name) ⇒ Object
35 36 37 |
# File 'lib/open_sesame/configuration.rb', line 35 def organization(organization_name) self.organization_name = organization_name end |
#redirect_after_login(to) ⇒ Object
60 61 62 |
# File 'lib/open_sesame/configuration.rb', line 60 def redirect_after_login(to) self.after_login_path = to end |
#redirect_after_logout(to) ⇒ Object
64 65 66 |
# File 'lib/open_sesame/configuration.rb', line 64 def redirect_after_logout(to) self.after_logout_path = to end |
#redirect_to(to) ⇒ Object
55 56 57 58 |
# File 'lib/open_sesame/configuration.rb', line 55 def redirect_to(to) self.after_login_path = to self.after_logout_path = to end |
#valid? ⇒ Boolean
82 83 84 85 86 87 |
# File 'lib/open_sesame/configuration.rb', line 82 def valid? self.organization_name && self.organization_name.is_a?(String) && self.mount_prefix && self.mount_prefix.is_a?(String) && self.github_application.is_a?(Hash) && [:client_id, :client_secret].all? { |key| self.github_application.keys.include?(key) } end |
#validate! ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/open_sesame/configuration.rb', line 93 def validate! return true if valid? = <<-MESSAGE Update your OpenSesame configuration. Example: # config/initializers/open_sesame.rb OpenSesame.configure do |config| config.organization 'challengepost' config.mounted_at '/opensesame' config.github ENV['GITHUB_APP_ID'], ENV['GITHUB_SECRET'] end When you register the app, make sure to point the callback url to the engine mountpoint + /auth/github/callback. For example, if your development app is on http://localhost:3000 and you're mounting the OpenSesame::Engine at '/opensesame', your github callback url should be: http://localhost:3000/auth/github/callback MESSAGE raise ConfigurationError.new() end |