mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-11-16 09:24:00 +00:00
Fix unapproved users being able to log in after registration mode set to closed. (#3096)
- Fixes #3095
This commit is contained in:
parent
ebd8c86f0e
commit
5af831c6fa
2 changed files with 7 additions and 1 deletions
|
@ -523,7 +523,8 @@ pub async fn check_registration_application(
|
||||||
local_site: &LocalSite,
|
local_site: &LocalSite,
|
||||||
pool: &DbPool,
|
pool: &DbPool,
|
||||||
) -> Result<(), LemmyError> {
|
) -> Result<(), LemmyError> {
|
||||||
if local_site.registration_mode == RegistrationMode::RequireApplication
|
if (local_site.registration_mode == RegistrationMode::RequireApplication
|
||||||
|
|| local_site.registration_mode == RegistrationMode::Closed)
|
||||||
&& !local_user_view.local_user.accepted_application
|
&& !local_user_view.local_user.accepted_application
|
||||||
&& !local_user_view.person.admin
|
&& !local_user_view.person.admin
|
||||||
{
|
{
|
||||||
|
|
|
@ -103,12 +103,17 @@ impl PerformCrud for Register {
|
||||||
.await
|
.await
|
||||||
.map_err(|e| LemmyError::from_error_message(e, "user_already_exists"))?;
|
.map_err(|e| LemmyError::from_error_message(e, "user_already_exists"))?;
|
||||||
|
|
||||||
|
// Automatically set their application as accepted, if they created this with open registration.
|
||||||
|
// Also fixes a bug which allows users to log in when registrations are changed to closed.
|
||||||
|
let accepted_application = Some(!require_registration_application);
|
||||||
|
|
||||||
// Create the local user
|
// Create the local user
|
||||||
let local_user_form = LocalUserInsertForm::builder()
|
let local_user_form = LocalUserInsertForm::builder()
|
||||||
.person_id(inserted_person.id)
|
.person_id(inserted_person.id)
|
||||||
.email(data.email.as_deref().map(str::to_lowercase))
|
.email(data.email.as_deref().map(str::to_lowercase))
|
||||||
.password_encrypted(data.password.to_string())
|
.password_encrypted(data.password.to_string())
|
||||||
.show_nsfw(Some(data.show_nsfw))
|
.show_nsfw(Some(data.show_nsfw))
|
||||||
|
.accepted_application(accepted_application)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let inserted_local_user = match LocalUser::create(context.pool(), &local_user_form).await {
|
let inserted_local_user = match LocalUser::create(context.pool(), &local_user_form).await {
|
||||||
|
|
Loading…
Reference in a new issue