tfse-admin-api-v0.2/user/user_obj.py

165 lines
4.0 KiB
Python

import re
from Utils.ErrorUtil import ObjColumnCheckError
from user.user_impl import UserManageImpl, UserOperateImpl
from user.user_utils import decrypt_data
class User:
"""
用户对象
uid: str 用户ID
email: str 邮箱
name: str 用户名
pwd: str 密码
status: str 用户状态
role: str 角色
"""
def __init__(self):
self.uid = None
self.email = None
self.name = None
self.pwd = None
self.status = None
self.role = None
def check_uid(self):
"""用户ID校验"""
if type(self.uid) is not str:
raise ObjColumnCheckError("用户ID格式错误")
if len(self.uid) != 8:
raise ObjColumnCheckError("用户ID格式错误")
def check_email(self):
"""邮箱格式仅允许@fecr.com.cn"""
regex = "^.+\\@fecr.com.cn"
case = (len(self.email) > 7) and (re.match(regex, self.email) is not None)
result = True if case else False
if not result:
raise ObjColumnCheckError("邮箱格式错误")
def check_name(self):
"""用户名格式校验"""
if type(self.name) is not str:
raise ObjColumnCheckError("用户名格式错误")
def check_pwd(self):
"""密码格式校验"""
if type(self.pwd) is not str:
raise ObjColumnCheckError("密码格式错误")
password = decrypt_data(encrypt_msg=self.pwd)
if not password:
raise ObjColumnCheckError("密码格式错误")
regex = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)^.{8,}$"
case = (len(password) >= 8) and (re.match(regex, password) is not None)
result = True if case else False
if not result:
raise ObjColumnCheckError("密码格式错误")
def check_status(self):
"""用户状态校验"""
if self.status not in ['normal', 'disable']:
raise ObjColumnCheckError("用户状态格式错误")
def check_role(self):
"""用户角色校验"""
if self.role not in ['admin', 'analysts', 'developer', 'operator', 'guest']:
raise ObjColumnCheckError("用户角色格式错误")
class UserManage(User):
"""
用户管理
"""
@staticmethod
def list_user(search, sort, page_size, page_no):
"""
用户信息列表
"""
return UserManageImpl.list_user_impl(search, sort, page_size, page_no)
def send_vcode_to_user(self):
"""
发送验证码
Returns:
发送成功 bool 返回True
发送失败 str 返回异常信息
"""
self.check_email()
return UserManageImpl.send_vcode_to_user_impl(self.email)
def create_user(self):
"""
创建用户
Returns:
创建成功 bool 返回True
创建失败 str 返回异常信息
"""
return UserManageImpl.create_user_impl(self.email, self.name, self.pwd, self.role)
def disable_user(self):
"""
禁用用户
"""
# TODO
def delete_user(self):
"""
删除用户
"""
# TODO
def manage_role_of_user(self):
"""
管理用户角色
"""
# TODO
class UserOperation(User):
"""
用户操作
"""
def __init__(self):
super().__init__()
self.token = None
self.block = None
self.vcode = None
# 登录
def login(self):
"""
用户登录
"""
return UserOperateImpl.login_impl(self.email, self.pwd, self.vcode)
# 停用
def deactivate(self):
return UserOperateImpl.disable_user_impl(self.uid)
# 删除
def delete(self):
return UserOperateImpl.delete_user_impl(self.uid)
# 管理角色
def manage(self):
return UserOperateImpl.manage_role_of_user_impl(self.uid, self.role)
if __name__ == '__main__':
user = User()
user.email = "aaa"
user.check_email()