- 新增 code_login.dspy: 接收前端表单(cell_no/codeid/check_code) 映射到sms_engine验证,返回UI widget含自动登录binds - 修复 login.ui 手机验证码tab: gen_code按钮改用script调用 gen_sms_code.dspy并回写key到隐藏字段,submit指向code_login.dspy - login.ui 新增注册tab: 用户名/手机号/密码/确认密码表单 - register.dspy: 注册成功后自动remember_user并返回含binds的 Message widget(加载userinfo、销毁登录窗、派发user_logined) - up_login.dspy: 补充user_logined事件派发bind - load_path.py: code_login.dspy加入any权限,gen_sms_code.dspy 从logined移至any(验证码发送在登录前)
70 lines
1.6 KiB
Plaintext
70 lines
1.6 KiB
Plaintext
debug(f'register.dspy: {params_kw=}')
|
|
db = DBPools()
|
|
dbname = get_module_dbname('rbac')
|
|
async with db.sqlorContext(dbname) as sor:
|
|
data = await register_user(sor, params_kw)
|
|
data = DictObject(**data)
|
|
if data.status == 'error':
|
|
debug(f"register error: {data.data.message}")
|
|
return {
|
|
"widgettype": "Error",
|
|
"options": {
|
|
"timeout": 5,
|
|
"title": "注册失败",
|
|
"message": data.data.message
|
|
}
|
|
}
|
|
user = data.data.user
|
|
orgid = user.orgid
|
|
try:
|
|
await openCustomerAccounts(sor, '0', orgid)
|
|
debug(f'{orgid} accounts opened')
|
|
except Exception as e:
|
|
exception(f'{e},{orgid=}')
|
|
|
|
# 注册成功后自动登录
|
|
await remember_user(user.id, username=user.username, userorgid=user.orgid)
|
|
return {
|
|
"widgettype": "Message",
|
|
"options": {
|
|
"timeout": 3,
|
|
"auto_open": True,
|
|
"title": "注册成功",
|
|
"message": f"{user.username} 注册成功,已自动登录"
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "dismissed",
|
|
"actiontype": "urlwidget",
|
|
"target": "window.user_container",
|
|
"options": {
|
|
"url": entire_url('/rbac/user/userinfo.ui')
|
|
}
|
|
},
|
|
{
|
|
"wid": "self",
|
|
"event": "dismissed",
|
|
"actiontype": "script",
|
|
"target": "body.login_window",
|
|
"script": "if(this.destroy) this.destroy()"
|
|
},
|
|
{
|
|
"wid": "self",
|
|
"event": "dismissed",
|
|
"actiontype": "script",
|
|
"target": "self",
|
|
"script": "if(bricks.app && bricks.app.dispatch) bricks.app.dispatch('user_logined')"
|
|
}
|
|
]
|
|
}
|
|
|
|
return {
|
|
"widgettype": "Error",
|
|
"options": {
|
|
"timeout": 5,
|
|
"title": "注册失败",
|
|
"message": "系统错误,请稍后重试"
|
|
}
|
|
}
|