-
58713de810
docs(README): document admin reset-password / clear-login-fail endpoints + PATHS_ADMIN role resolution
main
yumoqing
2026-09-09 19:16:18 +08:00
-
a3b22b679f
fix(reset_password): guard admin against resetting own password (use self-service)
yumoqing
2026-09-09 19:06:55 +08:00
-
c572d4c254
fix(users): replace script handlers with declarative urlwidget binds
yumoqing
2026-09-09 18:38:36 +08:00
-
5712f4091e
feat(users): admin reset password + clear login fail count for other users
yumoqing
2026-09-09 16:49:55 +08:00
-
855057e1d0
fix(login): 登录页文档内登录成功做真实浏览器跳转——dismissed旧bind urlwidget target=window实为in-place渲染进bricks.app(login.ui文档baseURI=/rbac/user/致后续根绝对请求全错→登录窗反复打开,用户报障);桌面shell文档保持原in-place语义(2026-09-08)
yumoqing
2026-09-08 15:35:46 +08:00
-
7de97a8e04
docs: 补全 README(8张表/角色模型/双层缓存TTL+FLUSHDB纪律/认证扩展点/dspy端点)
yumoqing
2026-09-07 11:42:17 +08:00
-
c13770c416
fix(register): sale_id/promo_code_id 传None→空字符串,sale_id列NOT NULL
ymq
2026-08-27 12:41:54 +08:00
-
9b695301ca
fix(register): free customer bind 池名硬编码'discount'→get_module_dbname('discount')
ymq
2026-08-27 12:40:47 +08:00
-
47cad5474a
revert: 回滚 register_user 内开户——注册开户单点保留在 register.dspy
ymq
2026-08-26 18:16:53 +08:00
-
1b00876cc5
feat(register): 客户注册自动开账户
ymq
2026-08-26 18:10:34 +08:00
-
f5b9d697b3
security: 移除 /rbac/add_superuser.dspy 未授权超管创建后门
yumoqing
2026-08-25 14:46:50 +08:00
-
a0b200c459
feat(rbac): 注册开关 register_open 检查(appbase params 表,0=关闭注册)
yumoqing
2026-08-21 19:19:16 +08:00
-
77c17f6374
refactor(rbac): 删除 userapp/userdepartment 两张废弃表(无业务读写,预留未启用)
yumoqing
2026-08-21 18:33:21 +08:00
-
2a020e17e9
fix(rbac): find_unauth_files 用 ref_real_path 替代 __file__ + seed user_status 字典(init/data.json)
yumoqing
2026-08-21 17:09:51 +08:00
-
a72d7ef112
feat(rbac): 登录检查refer,非用户点击登录成功后不刷新页面
yumoqing
2026-08-20 14:41:18 +08:00
-
3e21ee6e6e
feat(rbac): 生产 users 表结构对齐幂等 ALTER 脚本(登录审计+账户锁定依赖)
yumoqing
2026-08-17 16:05:27 +08:00
-
fe2a3a6ab1
fix(rbac): 固化非促销码注册创建自由客户归属记录(bind_type=3)
yumoqing
2026-08-17 15:51:32 +08:00
-
395ac8618a
fix(rbac): 固化 users 表结构修正 migration
yumoqing
2026-08-16 19:04:32 +08:00
-
2966993088
fix(rbac): 账户锁定场景补 login_fail 审计(result=locked)
yumoqing
2026-08-16 18:28:12 +08:00
-
15e27968da
fix(rbac): user/up_login.dspy 登录审计 + 失败5分钟窗口计数
yumoqing
2026-08-16 17:47:49 +08:00
-
8b00a5618c
feat(rbac): 登录审计 + 登录失败按5分钟窗口计数
yumoqing
2026-08-16 17:08:02 +08:00
-
24faae3978
feat(rbac): Redis L2 cache for permission checks
yumoqing
2026-08-06 14:42:22 +08:00
-
13ae4e89c8
refactor: import share_cache for future rbac cache migration
yumoqing
2026-07-29 17:16:26 +08:00
-
f398f70142
chore: 从仓库中删除 CRUD 自动生成目录,添加 .gitignore
yumoqing
2026-07-17 14:35:07 +08:00
-
a4f1ff6a88
fix(rbac): userrole CRUD roleid display — align valueField/textField with data columns
yumoqing
2026-07-16 18:06:20 +08:00
-
cc245f4721
fix: get_search_roleid return all roles so code uitype resolves display text correctly
yumoqing
2026-07-16 17:34:20 +08:00
-
be26c6db98
feat: allow same phone number to register multiple users
yumoqing
2026-07-16 16:21:36 +08:00
-
ed837dcd4e
fix(rbac): gen_sms_code.dspy — remove TEST MODE, call sms_engine directly
yumoqing
2026-07-16 15:50:04 +08:00
-
6c9d127759
fix(rbac): gen_sms_code.dspy falls back to test mode when sms_engine unavailable
yumoqing
2026-07-16 15:43:06 +08:00
-
bffd8b200d
fix(rbac): gen_sms_code.dspy calls real sms_engine.generate_sms_code() instead of TEST MODE stub
yumoqing
2026-07-16 15:40:51 +08:00
-
5d9292c6f6
fix: create_org兜底orgname为空时用id填充
yumoqing
2026-07-14 12:03:50 +08:00
-
cf4283ff0d
fix: align get_search_roleid + userrole alters to value/text fields matching index.ui
yumoqing
2026-07-13 12:59:36 +08:00
-
e1abe0bb71
fix: role dropdown filter by user org_type, add get_search_roleid.dspy
yumoqing
2026-07-13 11:27:21 +08:00
-
18913e7064
feat: domain-based reseller binding on registration + test SMS bypass
yumoqing
2026-07-10 11:24:25 +08:00
-
35750d5938
fix: 改用event.params.text直接取值,不用${text}占位符
yumoqing
2026-07-06 14:04:32 +08:00
-
a526a2222d
fix: newwindow缺referer_widget,改用script+window.open()
yumoqing
2026-07-06 14:03:58 +08:00
-
4a649aa98f
fix: urlwidget+PopupWindow无法替换${text},改用newwindow+window.open()
yumoqing
2026-07-06 14:00:41 +08:00
-
190e4e435f
fix: $ → ,多余$导致变量未被替换
yumoqing
2026-07-06 13:57:57 +08:00
-
acdabe4c33
扫码结果改为弹新窗口(PopupWindow)展示,不再替换当前页面
yumoqing
2026-07-06 13:47:39 +08:00
-
2c986dca13
fix: CRUD endpoint return format - remove json.dumps, use widgettype format
yumoqing
2026-07-03 14:50:52 +08:00
-
1e2897d8d4
fix: enable/disable 后自动刷新表格 + 捕获真实错误
yumoqing
2026-06-29 15:50:18 +08:00
-
5ddbf299bf
feat: 注册 api/add_user.dspy 和 api/update_user.dspy RBAC 权限
yumoqing
2026-06-29 15:19:45 +08:00
-
ad601403cf
feat: users CRUD 定制 api — 新增/编辑客制化逻辑
yumoqing
2026-06-29 15:12:33 +08:00
-
9472c0995f
Revert "fix: users CRUD — 三个修复"
yumoqing
2026-06-29 15:10:17 +08:00
-
449a0415a5
fix: users CRUD — 三个修复
yumoqing
2026-06-29 14:46:58 +08:00
-
70a19238c1
feat: 注册时检查促销码并绑定客户归属关系
Hermes Agent
2026-06-24 00:56:33 +08:00
-
600fddced3
feat: add i18n translations (zh/en/jp/ko) for all modules
Hermes Agent
2026-06-19 15:01:37 +08:00
-
2ea45cd380
rbac: 完善信息弹窗修复双窗口+添加标题
Hermes Agent
2026-06-18 11:09:46 +08:00
-
947638853f
rbac: 完善信息Form使用value回填用户数据
Hermes Agent
2026-06-18 10:48:17 +08:00
-
cd29b276f7
fix: add login.css to any permissions
Hermes Agent
2026-06-15 13:55:09 +08:00
-
18251e3eae
fix: add favicon.ico and i18n_getmsgs to any permissions
yumoqing
2026-06-11 23:54:17 +08:00
-
d1b81c9a9f
fix: remove Sage dependency from load_path.py, use standard pattern
yumoqing
2026-06-11 23:41:10 +08:00
-
52cd71f861
feat: add user_status check on login, enable/disable toolbar, fix editexclouded for add user
yumoqing
2026-06-11 16:57:04 +08:00
-
cb9f8bbb4b
bugfix
yumoqing
2026-06-10 11:16:23 +08:00
-
12663a37e0
bugfix
yumoqing
2026-06-10 11:08:33 +08:00
-
f6027788b2
fix: login redirect to index.ui instead of userinfo.ui
yumoqing
2026-06-09 23:18:39 +08:00
-
587241b6a9
bugfix
yumoqing
2026-06-09 17:01:27 +08:00
-
62e1985ecb
bugfix
yumoqing
2026-06-09 16:58:15 +08:00
-
df212ea40d
bugfix
yumoqing
2026-06-09 16:52:12 +08:00
-
e453883b61
chore: exclude last_login_fail, last_login, sync_from from users edit form
yumoqing
2026-06-05 11:14:14 +08:00
-
002226d17c
fix: change created_at type from timestamp to date for proper Date control
yumoqing
2026-06-04 16:50:20 +08:00
-
5809a81646
debug: add hot_reload handler logging
yumoqing
2026-06-01 22:53:07 +08:00
-
b72a487df7
fix: use ServerEnv().userpermissions instead of new UserPermissions() in event handlers
yumoqing
2026-06-01 18:15:37 +08:00
-
ce7eb2a193
refactor: bind hot_reload event via EventDispatcher, add on_hot_reload to UserPermissions
yumoqing
2026-06-01 18:10:29 +08:00
-
c949a51f2e
fix: gen_sms_code.dspy handle both None return and exception from generate_sms_code
yumoqing
2026-05-31 12:26:55 +08:00
-
4038b7d0b9
fix: gen_sms_code.dspy catch exception and return actual error message
yumoqing
2026-05-31 11:56:46 +08:00
-
7f2c3d25dd
feat: 用户菜单添加完善信息功能 - 新增 edit_profile.dspy/save_profile.dspy - usermenu.ui 添加完善信息入口 - load_path.py 注册权限路径
yumoqing
2026-05-31 10:52:13 +08:00
-
26d1fd1447
feat: register_user 添加 customer.admin 角色,注册时同时分配 customer 和 admin 权限
yumoqing
2026-05-31 10:38:32 +08:00
-
c9dd80a484
fix: 暗色主题输入框颜色全局优化
yumoqing
2026-05-30 14:32:11 +08:00
-
b0d6b59613
fix: 注册表单仅输入区域滚动,暗色主题输入框颜色优化
yumoqing
2026-05-30 14:27:33 +08:00
-
d1b3ca0914
fix: 修复登录弹窗三个显示问题
yumoqing
2026-05-30 14:16:00 +08:00
-
36569c0e41
feat: 现代化登录/注册界面改造
yumoqing
2026-05-30 14:08:11 +08:00
-
019e9702fc
fix: use setValue() on codeid field widget instead of direct value assignment
yumoqing
2026-05-30 13:36:54 +08:00
-
cec79caf88
fix: phone login form.setValue is not a function - use name_inputs direct value set
yumoqing
2026-05-30 13:35:07 +08:00
-
b532548d19
fix: keep previous rp_caches when DB returns empty result
yumoqing
2026-05-30 11:34:13 +08:00
-
fbbe011a8d
fix: rp_caches race condition causing intermittent 403
yumoqing
2026-05-30 11:19:32 +08:00
-
c776c0b3b5
fix: rp_cache should reload from DB when cache is disabled
yumoqing
2026-05-30 10:19:00 +08:00
-
04e9b718db
fix: check_roles_path supports % wildcard alongside **
yumoqing
2026-05-29 23:12:22 +08:00
-
67687883ff
fix: RBAC crash when cache disabled - return roles directly from get_userroles
yumoqing
2026-05-29 22:43:39 +08:00
-
fa9f7f5146
fix: wrap Tabular in VBox with cheight for proper scrolling
yumoqing
2026-05-29 22:09:56 +08:00
-
cf18e592c7
feat: respect module_cache config for RBAC LRU cache
yumoqing
2026-05-29 17:58:54 +08:00
-
342fc6652a
refactor: rewrite SMS login UI using pure bricks patterns
yumoqing
2026-05-29 11:58:30 +08:00
-
8528eebf10
revert: restore gen_sms_code.dspy (API used by other systems)
yumoqing
2026-05-29 11:38:35 +08:00
-
e65fddbe61
revert: restore phone_login.dspy to original (API used by other systems)
yumoqing
2026-05-29 11:37:39 +08:00
-
cf186a632b
fix: revert uitype to 'hide' (bricks framework uses 'hide' not 'hidden')
yumoqing
2026-05-29 11:36:05 +08:00
-
567513789e
feat: rewrite SMS login UI with fetch-based flow matching phone_login.dspy API
yumoqing
2026-05-29 11:31:39 +08:00
-
cfd3810a0a
fix: remove _webbricks_=1 from SMS code generation API call
yumoqing
2026-05-28 18:39:25 +08:00
-
969a72b528
fix: SMS verification code URL - replace undefined bricks.app.baseUrl with entire_url template
yumoqing
2026-05-28 18:24:39 +08:00
-
ff03efb50a
fix: Button label更新改用set_otext()支持国际化
yumoqing
2026-05-28 17:00:57 +08:00
-
f44104b8a5
fix: Button label更新使用text_w.set_text()替代options.label赋值
yumoqing
2026-05-28 16:52:26 +08:00
-
53111aa2fd
fix: Form.getValue()返回FormData对象,改用_getValue()获取普通对象
yumoqing
2026-05-28 16:27:56 +08:00
-
92627c9c96
fix: 手机验证码tab改用VBox+独立Button,避免toolbar tool触发submit导致tab跳转
yumoqing
2026-05-28 15:03:50 +08:00
-
7200ee43a0
fix: 手机验证码gen_code按钮用datawidget/datamethod传表单值给script
yumoqing
2026-05-28 14:10:37 +08:00
-
de21b9fd38
feat: 手机验证码登录对接 + 注册tab + user_logined事件派发
yumoqing
2026-05-28 13:49:31 +08:00
-
54b0f3d7b6
fix: dispatch user_logined event after successful login
yumoqing
2026-05-28 13:42:03 +08:00
-
9d2a94131a
feat: improve logout.dspy with refresh button
yumoqing
2026-05-27 17:57:42 +08:00
-
0a5bfa4c64
feat: add load_path.py RBAC permission registration script
yumoqing
2026-05-27 13:16:09 +08:00
-
39f8eb7d94
Revert "feat: add cross-process cache invalidation via Redis Pub/Sub"
yumoqing
2026-05-26 18:31:04 +08:00
-
8fdb31a850
Revert "fix: add app parameter to start_cache_sync for aiohttp on_startup hook"
yumoqing
2026-05-26 18:31:04 +08:00
-
c0bbe63845
fix: add app parameter to start_cache_sync for aiohttp on_startup hook
yumoqing
2026-05-26 17:20:52 +08:00