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:
Thomas Citharel
2021-08-09 19:29:15 +02:00
parent c46d8eac3a
commit 0cb43515bc
7 changed files with 48 additions and 17 deletions

View File

@@ -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]

View File

@@ -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)

View File

@@ -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} ->