命名指摘修正・有効フラグ判定削除
This commit is contained in:
parent
5d9b692982
commit
4270582d7a
@ -69,12 +69,10 @@ def login(
|
|||||||
# ユーザーマスタ検索
|
# ユーザーマスタ検索
|
||||||
pre_login_user_record = login_service.logged_in_user(request.username)
|
pre_login_user_record = login_service.logged_in_user(request.username)
|
||||||
# ログイン失敗回数が10回以上あれば、ログアウト画面にリダイレクトする
|
# ログイン失敗回数が10回以上あれば、ログアウト画面にリダイレクトする
|
||||||
if pre_login_user_record is not None and pre_login_user_record.mntuser_login_failed_cnt >= constants.LOGIN_FAIL_LIMIT:
|
if pre_login_user_record is not None and pre_login_user_record.is_login_failed_limit_exceeded():
|
||||||
logger.info(f'ログイン失敗回数が10回以上: {request.username}')
|
logger.info(f'ログイン失敗回数が10回以上: {request.username}')
|
||||||
# ユーザーが有効の場合、DBにアカウント無効にする
|
login_service.on_login_fail_limit_exceeded(request.username)
|
||||||
if pre_login_user_record.enabled_flg == 'Y':
|
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_LOGIN_FAILED_LIMIT_EXCEEDED)
|
||||||
login_service.on_retry_limit_exceeded(request.username)
|
|
||||||
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=constants.LOGOUT_REASON_RETRY_LIMIT_EXCEEDED)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
jwt_token = login_service.login(request.username, request.password)
|
jwt_token = login_service.login(request.username, request.password)
|
||||||
|
|||||||
@ -2,7 +2,7 @@ from datetime import datetime
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from src.model.db.base_db_model import BaseDBModel
|
from src.model.db.base_db_model import BaseDBModel
|
||||||
|
from src.system_var import constants
|
||||||
|
|
||||||
class UserMasterModel(BaseDBModel):
|
class UserMasterModel(BaseDBModel):
|
||||||
user_id: Optional[str]
|
user_id: Optional[str]
|
||||||
@ -36,3 +36,6 @@ class UserMasterModel(BaseDBModel):
|
|||||||
|
|
||||||
def is_groupware_user(self):
|
def is_groupware_user(self):
|
||||||
return self.mntuser_flg == '0' or self.mntuser_flg is None
|
return self.mntuser_flg == '0' or self.mntuser_flg is None
|
||||||
|
|
||||||
|
def is_login_failed_limit_exceeded(self):
|
||||||
|
return self.mntuser_login_failed_cnt >= constants.LOGIN_FAIL_LIMIT
|
||||||
|
|||||||
@ -27,7 +27,7 @@ class UserMasterRepository(BaseRepository):
|
|||||||
logger.exception(f"DB Error : Exception={e}")
|
logger.exception(f"DB Error : Exception={e}")
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
def increase_login_retry_count(self, parameter: dict) -> UserMasterModel:
|
def increase_login_failed_count(self, parameter: dict) -> UserMasterModel:
|
||||||
try:
|
try:
|
||||||
query = """\
|
query = """\
|
||||||
UPDATE
|
UPDATE
|
||||||
@ -38,7 +38,7 @@ class UserMasterRepository(BaseRepository):
|
|||||||
WHEN DATE(mntuser_last_login_failed_datetime) = CURRENT_DATE() THEN mntuser_login_failed_cnt + 1
|
WHEN DATE(mntuser_last_login_failed_datetime) = CURRENT_DATE() THEN mntuser_login_failed_cnt + 1
|
||||||
ELSE 1
|
ELSE 1
|
||||||
END,
|
END,
|
||||||
mntuser_last_login_failed_datetime = CURRENT_DATE()
|
mntuser_last_login_failed_datetime = CURRENT_TIMESTAMP()
|
||||||
WHERE
|
WHERE
|
||||||
user_id = :user_id
|
user_id = :user_id
|
||||||
AND
|
AND
|
||||||
|
|||||||
@ -50,9 +50,9 @@ class LoginService(BaseService):
|
|||||||
return user_record
|
return user_record
|
||||||
|
|
||||||
def incorrect_login_password_attempt(self, user_id: str):
|
def incorrect_login_password_attempt(self, user_id: str):
|
||||||
self.user_repository.increase_login_retry_count({'user_id': user_id})
|
self.user_repository.increase_login_failed_count({'user_id': user_id})
|
||||||
|
|
||||||
def on_retry_limit_exceeded(self, user_id: str):
|
def on_login_fail_limit_exceeded(self, user_id: str):
|
||||||
self.user_repository.disable_mnt_user({'user_id': user_id})
|
self.user_repository.disable_mnt_user({'user_id': user_id})
|
||||||
|
|
||||||
def __secret_hash(self, username: str):
|
def __secret_hash(self, username: str):
|
||||||
|
|||||||
@ -63,7 +63,7 @@ LOGOUT_REASON_BACKUP_PROCESSING = 'dump_processing'
|
|||||||
LOGOUT_REASON_NOT_LOGIN = 'not_login'
|
LOGOUT_REASON_NOT_LOGIN = 'not_login'
|
||||||
LOGOUT_REASON_DB_ERROR = 'db_error'
|
LOGOUT_REASON_DB_ERROR = 'db_error'
|
||||||
LOGOUT_REASON_UNEXPECTED = 'unexpected'
|
LOGOUT_REASON_UNEXPECTED = 'unexpected'
|
||||||
LOGOUT_REASON_RETRY_LIMIT_EXCEEDED = 'retry_limit_exceeded'
|
LOGOUT_REASON_LOGIN_FAILED_LIMIT_EXCEEDED = 'retry_limit_exceeded'
|
||||||
|
|
||||||
LOGOUT_REASON_MESSAGE_MAP = {
|
LOGOUT_REASON_MESSAGE_MAP = {
|
||||||
LOGOUT_REASON_DO_LOGOUT: 'Logoutしました。',
|
LOGOUT_REASON_DO_LOGOUT: 'Logoutしました。',
|
||||||
@ -74,7 +74,7 @@ LOGOUT_REASON_MESSAGE_MAP = {
|
|||||||
LOGOUT_REASON_NOT_LOGIN: 'Loginしてからページにアクセスしてください。',
|
LOGOUT_REASON_NOT_LOGIN: 'Loginしてからページにアクセスしてください。',
|
||||||
LOGOUT_REASON_DB_ERROR: 'DB接続に失敗しました。<br>再度Loginするか、<br>管理者にお問い合わせください。',
|
LOGOUT_REASON_DB_ERROR: 'DB接続に失敗しました。<br>再度Loginするか、<br>管理者にお問い合わせください。',
|
||||||
LOGOUT_REASON_UNEXPECTED: '予期しないエラーが発生しました。<br>再度Loginするか、<br>管理者に問い合わせてください。',
|
LOGOUT_REASON_UNEXPECTED: '予期しないエラーが発生しました。<br>再度Loginするか、<br>管理者に問い合わせてください。',
|
||||||
LOGOUT_REASON_RETRY_LIMIT_EXCEEDED: 'ログイン失敗回数の上限を超えましたので<br>アカウントをロックしました。<br>管理者に連絡してください'
|
LOGOUT_REASON_LOGIN_FAILED_LIMIT_EXCEEDED: 'ログイン失敗回数の上限を超えましたので<br>アカウントをロックしました。<br>管理者に連絡してください'
|
||||||
}
|
}
|
||||||
|
|
||||||
# 新規施設担当者登録CSV(マスターメンテ)
|
# 新規施設担当者登録CSV(マスターメンテ)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user