diff options
author | lambda <lain@soykaf.club> | 2019-04-08 11:41:50 +0000 |
---|---|---|
committer | lambda <lain@soykaf.club> | 2019-04-08 11:41:50 +0000 |
commit | fd45cab9eccecc835dde457d72ba38bd31c8f7f6 (patch) | |
tree | bcc6b53058cdf0a717e871d566fe923491bad99e /lib/pleroma/web/auth/ldap_authenticator.ex | |
parent | ff9290836b97f7358b056709e0891e01d641dd6d (diff) | |
parent | 44829d91818e66da1cbeb13aafecc52a931af17d (diff) | |
download | pleroma-fd45cab9eccecc835dde457d72ba38bd31c8f7f6.tar.gz |
Merge branch 'twitter_oauth' into 'develop'
OAuth consumer (sign in / sign up with external provider)
See merge request pleroma/pleroma!923
Diffstat (limited to 'lib/pleroma/web/auth/ldap_authenticator.ex')
-rw-r--r-- | lib/pleroma/web/auth/ldap_authenticator.ex | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/pleroma/web/auth/ldap_authenticator.ex b/lib/pleroma/web/auth/ldap_authenticator.ex index 88217aab8..8b6d5a77f 100644 --- a/lib/pleroma/web/auth/ldap_authenticator.ex +++ b/lib/pleroma/web/auth/ldap_authenticator.ex @@ -8,14 +8,19 @@ defmodule Pleroma.Web.Auth.LDAPAuthenticator do require Logger @behaviour Pleroma.Web.Auth.Authenticator + @base Pleroma.Web.Auth.PleromaAuthenticator @connection_timeout 10_000 @search_timeout 10_000 - def get_user(%Plug.Conn{} = conn) do + defdelegate get_registration(conn, params), to: @base + + defdelegate create_from_registration(conn, params, registration), to: @base + + def get_user(%Plug.Conn{} = conn, params) do if Pleroma.Config.get([:ldap, :enabled]) do {name, password} = - case conn.params do + case params do %{"authorization" => %{"name" => name, "password" => password}} -> {name, password} @@ -29,14 +34,14 @@ defmodule Pleroma.Web.Auth.LDAPAuthenticator do {:error, {:ldap_connection_error, _}} -> # When LDAP is unavailable, try default authenticator - Pleroma.Web.Auth.PleromaAuthenticator.get_user(conn) + @base.get_user(conn, params) error -> error end else # Fall back to default authenticator - Pleroma.Web.Auth.PleromaAuthenticator.get_user(conn) + @base.get_user(conn, params) end end @@ -46,6 +51,8 @@ defmodule Pleroma.Web.Auth.LDAPAuthenticator do def auth_template, do: nil + def oauth_consumer_template, do: nil + defp ldap_user(name, password) do ldap = Pleroma.Config.get(:ldap, []) host = Keyword.get(ldap, :host, "localhost") |