Fix language and redirection issues when connecting from 3rd-party
Closes #626 Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -111,6 +111,9 @@ defmodule Mobilizon.Config do
|
||||
instance_config()[:languages]
|
||||
)
|
||||
|
||||
@spec default_language :: String.t()
|
||||
def default_language, do: instance_config()[:default_language]
|
||||
|
||||
@spec instance_registrations_allowlist :: list(String.t())
|
||||
def instance_registrations_allowlist, do: instance_config()[:registration_email_allowlist]
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ defmodule Mobilizon.Users.User do
|
||||
import Ecto.Changeset
|
||||
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Crypto
|
||||
alias Mobilizon.{Config, Crypto}
|
||||
alias Mobilizon.Events.FeedToken
|
||||
alias Mobilizon.Users.{ActivitySetting, Setting, UserRole}
|
||||
alias Mobilizon.Web.Email.Checker
|
||||
@@ -78,7 +78,7 @@ defmodule Mobilizon.Users.User do
|
||||
field(:reset_password_sent_at, :utc_datetime)
|
||||
field(:reset_password_token, :string)
|
||||
field(:unconfirmed_email, :string)
|
||||
field(:locale, :string, default: "en")
|
||||
field(:locale, :string, default: Config.default_language())
|
||||
field(:disabled, :boolean, default: false)
|
||||
field(:provider, :string)
|
||||
field(:last_sign_in_at, :utc_datetime)
|
||||
|
||||
@@ -30,7 +30,8 @@ defmodule Mobilizon.Web.AuthController do
|
||||
end
|
||||
|
||||
def callback(
|
||||
%{assigns: %{ueberauth_auth: %Ueberauth.Auth{strategy: strategy} = auth}} = conn,
|
||||
%{assigns: %{ueberauth_auth: %Ueberauth.Auth{strategy: strategy} = auth, locale: locale}} =
|
||||
conn,
|
||||
_params
|
||||
) do
|
||||
email = email_from_ueberauth(auth)
|
||||
@@ -40,7 +41,7 @@ defmodule Mobilizon.Web.AuthController do
|
||||
user =
|
||||
with {:valid_email, false} <- {:valid_email, is_nil(email) or email == ""},
|
||||
{:error, :user_not_found} <- Users.get_user_by_email(email),
|
||||
{:ok, %User{} = user} <- Users.create_external(email, strategy) do
|
||||
{:ok, %User{} = user} <- Users.create_external(email, strategy, %{locale: locale}) do
|
||||
user
|
||||
else
|
||||
{:ok, %User{} = user} ->
|
||||
|
||||
Reference in New Issue
Block a user