资源模块端上明说「附件与共享还在网页端『资源』里管 —— App 这边暂未开放」(FbResourceSheet.ets)。
FbResourceSheet.ets
resources
GET/POST /api/v1/resources
GET/PATCH/DELETE /api/v1/resources/<id>
resources/attach_add
resources/attach_del
resources/share
resources/unshare
FbResourceSheet
服务端:
POST/DELETE /api/v1/resources/<id>/attach
tasks/<id>/attach
GET/POST/DELETE /api/v1/resources/<id>/shares
ledger/<id>/shares
Task::setShare
端上: 2. FbResourceSheet 把「附件」「共享给谁」两个入口补上(复用既有附件上传 + 选人组件)。
terminal/web + terminal/harmony · 双端
本单由需求拆解生成,主单 laoyang/FamilyBook #22。
两端都已提交、推送,服务端已部署上线。
服务端(commit 47247e3):
47247e3
GET/POST/DELETE /api/v1/resources/<id>/attach
attachment_id
person_id
鸿蒙端(commit f93dd92,2 文件):
f93dd92
FbResourceRepo
canWrite
越权访问(拿别人名下的资源去共享/传附件)服务端返回的是 404 而不是 403 —— Resource::find 对「看不到的资源」直接返 null,连"这条资源存在"都不泄露给越权者。 判据没写死具体码,只断言「非 2xx + 库里确实没被动手脚」。
Resource::find
_i25_resource_api.py
_i25_falsify.py
服务端 20261028-220022,两仓库已 push。
20261028-220022
⚠️ 真机点验待设备恢复:附件传上来能看缩略图、共享选人后列表即时刷新,这些手感要设备连上再点。
No dependencies set.
The note is not visible to the blocked user.
现象
资源模块端上明说「附件与共享还在网页端『资源』里管 —— App 这边暂未开放」(
FbResourceSheet.ets)。现状与依据
resourcesAPI 现有:GET/POST /api/v1/resources、GET/PATCH/DELETE /api/v1/resources/<id>。缺:附件上传/删除、共享给谁(Web 端有
resources/attach_add、resources/attach_del、resources/share、resources/unshare表单路由)。FbResourceSheet的「附件/共享」处只放说明文案,不摆入口。要做的(双端)
服务端:
resourcesAPI 补子端点:POST/DELETE /api/v1/resources/<id>/attach(multipart,参考tasks/<id>/attach已有实现);GET/POST/DELETE /api/v1/resources/<id>/shares(参考ledger/<id>/shares/Task::setShare)。端上:
2.
FbResourceSheet把「附件」「共享给谁」两个入口补上(复用既有附件上传 + 选人组件)。验收
标签
terminal/web + terminal/harmony · 双端
收尾:已修完、已验证、已部署
两端都已提交、推送,服务端已部署上线。
改了什么
服务端(commit
47247e3):GET/POST/DELETE /api/v1/resources/<id>/attach—— 附件列表 / 传 / 删(删走attachment_idquery,与任务附件同招)。GET/POST/DELETE /api/v1/resources/<id>/shares—— 共享列表 / 加 / 取消(person_idquery)。鸿蒙端(commit
f93dd92,2 文件):FbResourceRepo补 attach/share 写操作。FbResourceSheet把原来「附件与共享还在网页端」的说明,换成两个真功能区块:canWrite对齐)。一个值得注意的安全点
越权访问(拿别人名下的资源去共享/传附件)服务端返回的是 404 而不是 403 ——
Resource::find对「看不到的资源」直接返 null,连"这条资源存在"都不泄露给越权者。判据没写死具体码,只断言「非 2xx + 库里确实没被动手脚」。
验证
_i25_resource_api.py21/0:传/列/删附件 · 共享增/列/删 · 越权被拒。_i25_falsify.py:注掉附件列表、注掉 shares 分支,各自变红。部署
服务端
20261028-220022,两仓库已 push。⚠️ 真机点验待设备恢复:附件传上来能看缩略图、共享选人后列表即时刷新,这些手感要设备连上再点。