SQL更新ロジック変更・失敗判定変更

This commit is contained in:
nik.n 2024-04-04 10:08:08 +09:00
parent ac5cfc4d0f
commit cfdac2b9f4
3 changed files with 14 additions and 4 deletions

View File

@ -2,6 +2,7 @@ from datetime import datetime
from typing import Optional
from src.model.db.base_db_model import BaseDBModel
from src.system_var import constants
class UserMasterModel(BaseDBModel):
user_id: Optional[str]
@ -34,4 +35,7 @@ class UserMasterModel(BaseDBModel):
return self.mntuser_flg == '1'
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

View File

@ -35,8 +35,14 @@ class UserMasterRepository(BaseRepository):
SET
mntuser_login_failed_cnt =
CASE
WHEN DATE(mntuser_last_login_failed_datetime) = CURRENT_DATE() THEN mntuser_login_failed_cnt + 1
ELSE 1
WHEN
DATE(mntuser_last_login_failed_datetime) = CURRENT_DATE()
OR
mntuser_login_failed_cnt >= 10
THEN
mntuser_login_failed_cnt + 1
ELSE
1
END,
mntuser_last_login_failed_datetime = CURRENT_TIMESTAMP()
WHERE

View File

@ -59,7 +59,7 @@ class LoginService(BaseService):
user_record: UserMasterModel = self.user_repository.fetch_one({'user_id': user_id})
if user_record is None:
return False
return user_record.mntuser_login_failed_cnt >= constants.LOGIN_FAIL_LIMIT
return user_record.is_login_failed_limit_exceeded()
def __secret_hash(self, username: str):
# see - https://aws.amazon.com/jp/premiumsupport/knowledge-center/cognito-unable-to-verify-secret-hash/ # noqa