修改新建用户流程

This commit is contained in:
王思川 2022-01-11 07:13:28 +08:00
parent 67d0c7e2f3
commit 536bdf77d4
8 changed files with 99 additions and 69 deletions

View File

@ -10,7 +10,7 @@ class User:
name str 用户名
pwd str 密码
role str 角色
group str 群组
duty str 职责
"""
def __init__(self):
@ -19,7 +19,7 @@ class User:
self.name = None
self.pwd = None
self.role = None
self.group = None
self.duty = None
class UserManage(User):
@ -27,11 +27,14 @@ class UserManage(User):
用户管理
"""
# 创建用户
def create_user(self):
res = create_user_process(self.email, self.name, self.pwd, self.role, self.group)
if res is not False:
pass
"""
创建用户
Returns:
创建成功 bool 返回True
创建失败 str 返回异常信息
"""
return create_user_process(self.email, self.name, self.pwd, self.role, self.duty)
# 禁用用户
def disable_user(self):
@ -62,5 +65,4 @@ if __name__ == '__main__':
um.name = "王思川"
um.pwd = "pVhsypYQ+Lf81gMHKkkU+xrEhB96jNjbH8PZ6smK8NGnWBuJwHEtr5XPZ+A4dPMsYVZldeyjfR7AVCG3deAWT0JR2aAHqG6pD2IMwA0VqMcXBI2c1uesGRoYNW3815CrAqdRwKlZunpqYkxnWnatfU4zuosuv/7TyY+JhOIS6rV50yiE/Nw/k/aXPtX/ShJI/oybmgzMU+GfODy7k3XnTn9I9vLfFYQrg/m8ybZIL7TGtX+HSUJLZ5ttmFq+cnykBVf2iK7Q3lV6f65tmVmIiU+e2xrBc4nMHyYxZksGJNWeVZ2F45QPrif14BML7X9g/QDqze7Jm3ZHg6fs/wV/ISrvw/C1fPFbSCRfjuLcusLY5fcFG3X0r7kST6vIzbr4ZYH3TZZ0p29+dgEEt+fj+d17URrd92xPzuLz2UIRi/pncNSvZb31PDHMY6pEfjigXOx6o4XTtbLqNIRuo8n+LX8XyJvMPc2EUQEMsRKet6KFpVJTnXGhJkI37lHh4Kc4qv0HIdLVjWd05dlo0R2Ggsm1Fb2vGL35l5YumjkFJjQDV5TV0IhzLWW56A56dluHaMDsOQXqFNVCdnpYmzNtm8pEVYfzxnKJwpq5a0xqaLcf7SO/VmLpFKXj+9ZSEEWK5RAzbSVSoQCIWISLYPDqNRnsXFS1CDwe3xv1+86H3nY="
um.role = "admin"
um.group = ["admin"]
um.create_user()
print(um.create_user())

View File

@ -1,35 +1,100 @@
import time
import random
from werkzeug.security import generate_password_hash
from common.db import insert_data
from user.scripts import check_mail_fmt, check_pwd_fmt, gen_new_uid
from user.security.rsa import decrypt_data
from common.db import insert_data, find_data
from user.scripts import check_mail_fmt, check_pwd_fmt
from common.security.rsa import decrypt_data
def create_user_process(email, name, pwd, role, group):
def create_user_process(email, name, pwd, role, duty):
"""
创建新用户流程
Parameters:
-
email str 邮箱
name str 姓名
pwd str 密码
role str 角色
duty str 职责
Returns:
执行成功 True
执行失败 False
执行成功 bool True
执行失败 str 异常信息
"""
def check_params():
"""
参数检查
"""
roles = ['admin', 'member', 'guest']
if role not in roles:
return "用户角色异常"
if not check_mail_fmt(email):
return False
duties = ['developers', 'analysts', None]
if duty not in duties:
return "成员职责异常"
if not check_pwd_fmt(pwd):
return False
if not check_mail_fmt(email):
return "邮箱格式错误"
user = dict()
user['UID'] = gen_new_uid()
user['email'] = email
user['name'] = name
user['pwd'] = generate_password_hash(decrypt_data(encrypt_msg=pwd))
user['role'] = role
user['group'] = group
user['create_time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
if not check_pwd_fmt(pwd):
return "密码格式错误"
insert_data("tfse_admin", "用户", "用户信息", user)
if len(find_data("tfse_admin", "用户", "用户信息", {"email": email})) > 0:
return "邮箱已被注册"
return True
def gen_new_uid():
"""
生成新的用户ID如果该ID存在则重新生成
Returns:
生成的用户ID
"""
def make_id(num):
"""
随机生成字符串
"""
choices = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
salt = ''
for i in range(num):
salt += random.choice(choices)
return salt
def gen_id():
"""
生成新ID
检查新ID是否存在如果存在则继续生成新ID
若新ID可使用返回新ID
"""
new_id = make_id(8)
case = find_data("tfse_admin", "用户", "用户信息", {"企业ID": new_id}) is []
while case:
new_id = make_id(8)
return new_id
return gen_id()
def process_main():
"""
执行流程
"""
check_param_result = check_params()
if check_param_result is not True:
return check_param_result
user = dict()
user['UID'] = gen_new_uid()
user['email'] = email
user['name'] = name
user['pwd'] = generate_password_hash(decrypt_data(encrypt_msg=pwd))
user['status'] = 'normal'
user['role'] = role
user['duty'] = duty
user['create_time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
insert_data("tfse_admin", "用户", "用户信息", user)
return True
return process_main()

View File

@ -1,19 +1,18 @@
import random
import re
from common.db import find_data
from user.security.rsa import decrypt_data
from common.security.rsa import decrypt_data
def check_mail_fmt(email):
"""
邮箱地址格式校验
邮箱地址格式校验仅允许@fecr.com.cn
Parameters:
email: 邮箱
Returns:
result: 邮箱校验结果正确返回True不正确返回False
"""
regex = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$"
# regex = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$"
regex = "^.+\\@fecr.com.cn"
case = (len(email) > 7) and (re.match(regex, email) is not None)
result = True if case else False
return result
@ -35,29 +34,3 @@ def check_pwd_fmt(pwd):
case = (len(password) >= 8) and (re.match(regex, password) is not None)
result = True if case else False
return result
def gen_new_uid():
"""
生成新的用户ID如果该ID存在则重新生成
Returns:
new_id: 生成的用户ID
"""
def make_id(num):
"""
随机生成字符串
"""
choices = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
salt = ''
for i in range(num):
salt += random.choice(choices)
return salt
# 生成新ID
new_id = make_id(8)
# 检查新ID是否存在如果存在则继续生成新ID
case = find_data("tfse_admin", "用户", "用户信息", {"企业ID": new_id}) is []
while case:
new_id = make_id(8)
# 新ID可使用返回新ID
return new_id

View File

@ -1,10 +0,0 @@
{
"UID": null,
"email": null,
"pwd": null,
"name": null,
"status": null,
"role": null,
"group": null,
"create_time": null
}