访问public form 后台报权限问题,前台闪现了No permissions,但感觉实际没有影响。

* 描述问题

访问public form 后台报错误,权限问题,前台闪现了No permissions,但感觉实际没有影响。为什么公开表单还需要检查权限??

来源

* 运行环境

  • NocoBase 版本:1.6.4
  • 数据库种类与版本: PostgreSQL16
  • 操作系统:Windows
    -浏览器及版本 多种都试了
  • 部署方式: 源码
  • Docker 镜像版本:
  • NodeJS 版本:22.13.1

如何重现

2025-03-16 17:48:25 [info] request GET /api/mlps_d_country:get?filter=%7B%22code%22:%22Myanmar%22%7D method=GET path=/api/mlps_d_country:get?filter=%7B%22code%22:%22Myanmar%22%7D req={“header”:{“x-role”:“root”,“x-hostname”:“www.iissttu.com”,“x-timezone”:“+08:00”,“x-locale”:“zh-CN”,“x-authenticator”:“basic”}} app=main reqId=49be58ea-f28d-4511-a555-e044d45b15c3
2025-03-16 17:48:25 [debug] ctx permission meta={“can”:null,“resourceName”:“mlps_d_world_regions”,“actionName”:“get”} module=mlps_d_world_regions submodule/get app=main reqId=e5eff198-ae56-4edf-9755-2204f5e17038 dataSourceKey=main
2025-03-16 17:48:25 [error] No permissions meta={“err”:"ForbiddenError: No permissions\n at Object.throw (D:\nb\nb-syn\node_modules\koa\lib\context.js:97:11)\n at middlewares.add.tag (D:\nb\nb-syn\packages\core\acl\src\acl.ts:440:15)\n at dispatch (D:\nb\nb-syn\node_modules\koa-compose\index.js:42:32)\n at parseACL (D:\nb\nb-syn\packages\plugins\@nocobase\plugin-public-forms\

预期行为

截图

看了后台,应该是acl.ts里面的。

日志

完整日志在压缩包。
error.zip (1.0 KB)

这个错误一直有的啊,为什么开发看见了也不回复一下?到底是我个性问题还是真的代码问题?我看了觉得对public form以及相关的代码表请求get,确实是进行了权限要求的啊!

收到反馈,我们内部先排查一下

最好在demo 上提供个复现地址

不要在公开表单上对 多对一/一对一关系字段设置默认值,因为acl上有对当前表的访问豁免对关联表不生效,设置默认值传递在acl释放之前,导致的此类问题

1 Like

太感谢了,的确如此,实验了好多次。不过,这个也不合理啊,不让设置这样的表单默认值用户需要啊。