* refactor(auth): add PASSWORD_TOO_WEAK error code and update related error handling in password change flow * fix(auth): update import to use type for EAuthenticationErrorCodes in security page * Update apps/web/app/(all)/profile/security/page.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * refactor: updated auth error exception accross zxcvbn usages * fix: improve error handling for password strength validation and update error messages * i18n(ru): update Russian translations for stickies and automation description Added translation for 'stickies' and improved formatting of the automation description in Russian locale. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
92 lines
3 KiB
Python
92 lines
3 KiB
Python
# Copyright (c) 2023-present Plane Software, Inc. and contributors
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
# See the LICENSE file for details.
|
|
|
|
AUTHENTICATION_ERROR_CODES = {
|
|
# Global
|
|
"INSTANCE_NOT_CONFIGURED": 5000,
|
|
"INVALID_EMAIL": 5005,
|
|
"EMAIL_REQUIRED": 5010,
|
|
"SIGNUP_DISABLED": 5015,
|
|
"MAGIC_LINK_LOGIN_DISABLED": 5016,
|
|
"PASSWORD_LOGIN_DISABLED": 5018,
|
|
"USER_ACCOUNT_DEACTIVATED": 5019,
|
|
# Password strength
|
|
"INVALID_PASSWORD": 5020,
|
|
"PASSWORD_TOO_WEAK": 5021,
|
|
"SMTP_NOT_CONFIGURED": 5025,
|
|
# Sign Up
|
|
"USER_ALREADY_EXIST": 5030,
|
|
"AUTHENTICATION_FAILED_SIGN_UP": 5035,
|
|
"REQUIRED_EMAIL_PASSWORD_SIGN_UP": 5040,
|
|
"INVALID_EMAIL_SIGN_UP": 5045,
|
|
"INVALID_EMAIL_MAGIC_SIGN_UP": 5050,
|
|
"MAGIC_SIGN_UP_EMAIL_CODE_REQUIRED": 5055,
|
|
"EMAIL_PASSWORD_AUTHENTICATION_DISABLED": 5056,
|
|
# Sign In
|
|
"USER_DOES_NOT_EXIST": 5060,
|
|
"AUTHENTICATION_FAILED_SIGN_IN": 5065,
|
|
"REQUIRED_EMAIL_PASSWORD_SIGN_IN": 5070,
|
|
"INVALID_EMAIL_SIGN_IN": 5075,
|
|
"INVALID_EMAIL_MAGIC_SIGN_IN": 5080,
|
|
"MAGIC_SIGN_IN_EMAIL_CODE_REQUIRED": 5085,
|
|
# Both Sign in and Sign up for magic
|
|
"INVALID_MAGIC_CODE_SIGN_IN": 5090,
|
|
"INVALID_MAGIC_CODE_SIGN_UP": 5092,
|
|
"EXPIRED_MAGIC_CODE_SIGN_IN": 5095,
|
|
"EXPIRED_MAGIC_CODE_SIGN_UP": 5097,
|
|
"EMAIL_CODE_ATTEMPT_EXHAUSTED_SIGN_IN": 5100,
|
|
"EMAIL_CODE_ATTEMPT_EXHAUSTED_SIGN_UP": 5102,
|
|
# Oauth
|
|
"OAUTH_NOT_CONFIGURED": 5104,
|
|
"GOOGLE_NOT_CONFIGURED": 5105,
|
|
"GITHUB_NOT_CONFIGURED": 5110,
|
|
"GITHUB_USER_NOT_IN_ORG": 5122,
|
|
"GITLAB_NOT_CONFIGURED": 5111,
|
|
"GITEA_NOT_CONFIGURED": 5112,
|
|
"GOOGLE_OAUTH_PROVIDER_ERROR": 5115,
|
|
"GITHUB_OAUTH_PROVIDER_ERROR": 5120,
|
|
"GITLAB_OAUTH_PROVIDER_ERROR": 5121,
|
|
"GITEA_OAUTH_PROVIDER_ERROR": 5123,
|
|
# Reset Password
|
|
"INVALID_PASSWORD_TOKEN": 5125,
|
|
"EXPIRED_PASSWORD_TOKEN": 5130,
|
|
# Change password
|
|
"INCORRECT_OLD_PASSWORD": 5135,
|
|
"MISSING_PASSWORD": 5138,
|
|
"INVALID_NEW_PASSWORD": 5140,
|
|
# set password
|
|
"PASSWORD_ALREADY_SET": 5145,
|
|
# Admin
|
|
"ADMIN_ALREADY_EXIST": 5150,
|
|
"REQUIRED_ADMIN_EMAIL_PASSWORD_FIRST_NAME": 5155,
|
|
"INVALID_ADMIN_EMAIL": 5160,
|
|
"INVALID_ADMIN_PASSWORD": 5165,
|
|
"REQUIRED_ADMIN_EMAIL_PASSWORD": 5170,
|
|
"ADMIN_AUTHENTICATION_FAILED": 5175,
|
|
"ADMIN_USER_ALREADY_EXIST": 5180,
|
|
"ADMIN_USER_DOES_NOT_EXIST": 5185,
|
|
"ADMIN_USER_DEACTIVATED": 5190,
|
|
# Rate limit
|
|
"RATE_LIMIT_EXCEEDED": 5900,
|
|
# Unknown
|
|
"AUTHENTICATION_FAILED": 5999,
|
|
}
|
|
|
|
|
|
class AuthenticationException(Exception):
|
|
error_code = None
|
|
error_message = None
|
|
payload = {}
|
|
|
|
def __init__(self, error_code, error_message, payload={}):
|
|
self.error_code = error_code
|
|
self.error_message = error_message
|
|
self.payload = payload
|
|
|
|
def get_error_dict(self):
|
|
error = {"error_code": self.error_code, "error_message": self.error_message}
|
|
for key in self.payload:
|
|
error[key] = self.payload[key]
|
|
|
|
return error
|