dev: magic link login and email password disable

This commit is contained in:
pablohashescobar 2024-05-11 18:43:48 +05:30
parent 0ad8bf7664
commit 781c0e8ae4
3 changed files with 45 additions and 17 deletions

View File

@ -4,6 +4,9 @@ AUTHENTICATION_ERROR_CODES = {
"INVALID_EMAIL": 5005, "INVALID_EMAIL": 5005,
"EMAIL_REQUIRED": 5010, "EMAIL_REQUIRED": 5010,
"SIGNUP_DISABLED": 5015, "SIGNUP_DISABLED": 5015,
"MAGIC_LINK_LOGIN_DISABLED": 5016,
"PASSWORD_LOGIN_DISABLED": 5018,
"USER_ACCOUNT_DEACTIVATED": 5019,
# Password strength # Password strength
"INVALID_PASSWORD": 5020, "INVALID_PASSWORD": 5020,
"SMTP_NOT_CONFIGURED": 5025, "SMTP_NOT_CONFIGURED": 5025,

View File

@ -1,3 +1,6 @@
# Python imports
import os
# Module imports # Module imports
from plane.authentication.adapter.credential import CredentialAdapter from plane.authentication.adapter.credential import CredentialAdapter
from plane.db.models import User from plane.db.models import User
@ -5,6 +8,7 @@ from plane.authentication.adapter.error import (
AUTHENTICATION_ERROR_CODES, AUTHENTICATION_ERROR_CODES,
AuthenticationException, AuthenticationException,
) )
from plane.license.utils.instance_value import get_configuration_value
class EmailProvider(CredentialAdapter): class EmailProvider(CredentialAdapter):
@ -23,6 +27,21 @@ class EmailProvider(CredentialAdapter):
self.code = code self.code = code
self.is_signup = is_signup self.is_signup = is_signup
(ENABLE_EMAIL_PASSWORD,) = get_configuration_value(
[
{
"key": "ENABLE_EMAIL_PASSWORD",
"default": os.environ.get("ENABLE_EMAIL_PASSWORD"),
},
]
)
if ENABLE_EMAIL_PASSWORD == "0":
raise AuthenticationException(
error_code=AUTHENTICATION_ERROR_CODES["ENABLE_EMAIL_PASSWORD"],
error_message="ENABLE_EMAIL_PASSWORD",
)
def set_user_data(self): def set_user_data(self):
if self.is_signup: if self.is_signup:
# Check if the user already exists # Check if the user already exists

View File

@ -26,23 +26,20 @@ class MagicCodeProvider(CredentialAdapter):
code=None, code=None,
): ):
(EMAIL_HOST, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD) = ( (
get_configuration_value( EMAIL_HOST,
[ ENABLE_MAGIC_LINK_LOGIN,
{ ) = get_configuration_value(
"key": "EMAIL_HOST", [
"default": os.environ.get("EMAIL_HOST"), {
}, "key": "EMAIL_HOST",
{ "default": os.environ.get("EMAIL_HOST"),
"key": "EMAIL_HOST_USER", },
"default": os.environ.get("EMAIL_HOST_USER"), {
}, "key": "ENABLE_MAGIC_LINK_LOGIN",
{ "default": os.environ.get("ENABLE_MAGIC_LINK_LOGIN", "1"),
"key": "EMAIL_HOST_PASSWORD", },
"default": os.environ.get("EMAIL_HOST_PASSWORD"), ]
},
]
)
) )
if not (EMAIL_HOST): if not (EMAIL_HOST):
@ -52,6 +49,15 @@ class MagicCodeProvider(CredentialAdapter):
payload={"email": str(self.key)}, payload={"email": str(self.key)},
) )
if ENABLE_MAGIC_LINK_LOGIN == "0":
raise AuthenticationException(
error_code=AUTHENTICATION_ERROR_CODES[
"MAGIC_LINK_LOGIN_DISABLED"
],
error_message="MAGIC_LINK_LOGIN_DISABLED",
payload={"email": str(self.key)},
)
super().__init__(request, self.provider) super().__init__(request, self.provider)
self.key = key self.key = key
self.code = code self.code = code