Skip to content

Commit adcc85d

Browse files
committed
FEATURE: Add enabled setting, and some refactoring
1 parent 8558d65 commit adcc85d

File tree

4 files changed

+16
-10
lines changed

4 files changed

+16
-10
lines changed

config/locales/client.en.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
en:
2+
js:
3+
login:
4+
oidc:
5+
name: "OpenID Connect"
6+
title: "with OpenID Connect"
7+
message: "Authenticating with OpenID Connect"

config/locales/server.en.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
en:
22
site_settings:
3+
openid_connect_enabled: Enable OpenID Connect authentication. Customize user interface text <a href='%{base_path}/admin/customize/site_texts?q=js.login.oidc'>here</a>
34
openid_connect_discovery_document: "OpenID Connect discovery document URL. Normally located at 'https://your.domain/.well-known/openid-configuration'"
45
openid_connect_client_id: "OpenID Connect client ID"
56
openid_connect_client_secret: "OpenID Connect client secret"

config/settings.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
plugins:
2+
openid_connect_enabled:
3+
default: false
24
openid_connect_discovery_document:
35
default: ""
46
openid_connect_client_id:

plugin.rb

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,8 @@ def match_by_email
1414

1515
def after_authenticate(auth_token)
1616
# puts "after authenticate ", auth_token.to_json
17-
1817
result = Auth::Result.new
1918

20-
result.authenticator_name = "OpenID Connect"
21-
2219
result.extra_data = {
2320
provider: auth_token[:provider],
2421
uid: auth_token[:uid],
@@ -27,10 +24,10 @@ def after_authenticate(auth_token)
2724
credentials: auth_token[:credentials]
2825
}
2926

30-
data = auth_token[:info]
31-
result.email = email = data[:email]
32-
result.name = name = "#{data[:first_name]} #{data[:last_name]}"
33-
result.username = data[:nickname]
27+
info = auth_token[:info]
28+
result.email = email = info[:email]
29+
result.name = name = "#{info[:first_name]} #{info[:last_name]}"
30+
result.username = info[:nickname]
3431

3532
association = UserAssociatedAccount.find_by(provider_name: auth_token[:provider], provider_uid: auth_token[:uid])
3633

@@ -64,7 +61,7 @@ def name
6461
end
6562

6663
def enabled?
67-
true
64+
SiteSetting.openid_connect_enabled
6865
end
6966

7067
def register_middleware(omniauth)
@@ -97,6 +94,5 @@ def register_middleware(omniauth)
9794
end
9895
end
9996

100-
auth_provider title: 'with OpenID Connect',
101-
authenticator: OpenIDConnectAuthenticator.new(),
97+
auth_provider authenticator: OpenIDConnectAuthenticator.new(),
10298
full_screen_login: true

0 commit comments

Comments
 (0)