mirror of
https://github.com/kuaifan/dootask.git
synced 2026-08-01 19:05:55 +00:00
fix(file): 文件管理删除入口收敛为所有者/创建者,拦截只读用户
- file.vue:右键「删除」项及工具栏批量「删除」按钮对非所有者/创建者禁用, 与后端 file/remove 的 permissionFind(...,1000) 规则对齐(修复只读用户可见可点删除入口) - 同步 ai-kb:delete-restore chunk 更正前置权限为「所有者或创建者」并补只读无权限说明
This commit is contained in:
parent
bc0fe9c748
commit
eb672eaef1
@ -15,13 +15,14 @@ aliases:
|
|||||||
related_tools: [list_files]
|
related_tools: [list_files]
|
||||||
related_pages: [file]
|
related_pages: [file]
|
||||||
prerequisites:
|
prerequisites:
|
||||||
- 对要删除的文件有所有权或写权限
|
- 必须是该文件的所有者或创建者(仅这两类人可删除)
|
||||||
negative:
|
negative:
|
||||||
|
- 只读或仅可读写(非创建者)的共享成员无删除权限:删除入口在界面被禁用,后端 file/remove 也会拒绝并返回「仅限所有者或创建者操作」
|
||||||
- 文件删除采用软删除(数据库 soft delete),但前端无回收站 UI,普通用户无法自助恢复
|
- 文件删除采用软删除(数据库 soft delete),但前端无回收站 UI,普通用户无法自助恢复
|
||||||
- 一次最多删除 100 个文件 / 文件夹
|
- 一次最多删除 100 个文件 / 文件夹
|
||||||
- 删文件夹会级联删除其内所有文件与子文件夹
|
- 删文件夹会级联删除其内所有文件与子文件夹
|
||||||
- 删除会同时清理共享配置(FileUser)和分享链接(FileLink)
|
- 删除会同时清理共享配置(FileUser)和分享链接(FileLink)
|
||||||
last_verified: v1.7.90
|
last_verified: v1.8.45
|
||||||
---
|
---
|
||||||
|
|
||||||
# 删除文件或恢复文件
|
# 删除文件或恢复文件
|
||||||
|
|||||||
@ -73,7 +73,7 @@
|
|||||||
<span v-show="showBtnText">{{$L('打包下载')}}</span>
|
<span v-show="showBtnText">{{$L('打包下载')}}</span>
|
||||||
</div>
|
</div>
|
||||||
</Button>
|
</Button>
|
||||||
<Button size="small" type="error" @click="deleteFile(selectedItems.map(({id}) => id))">
|
<Button size="small" type="error" :disabled="batchDeleteDisabled" @click="deleteFile(selectedItems.map(({id}) => id))">
|
||||||
<div class="tool-box">
|
<div class="tool-box">
|
||||||
<Icon type="ios-trash" />
|
<Icon type="ios-trash" />
|
||||||
<span v-show="showBtnText">{{$L('删除')}}</span>
|
<span v-show="showBtnText">{{$L('删除')}}</span>
|
||||||
@ -252,7 +252,7 @@
|
|||||||
<DropdownItem name="download" :disabled="contextMenuItem.ext == '' || (contextMenuItem.userid != userId && contextMenuItem.permission == 0)">{{$L('下载')}}</DropdownItem>
|
<DropdownItem name="download" :disabled="contextMenuItem.ext == '' || (contextMenuItem.userid != userId && contextMenuItem.permission == 0)">{{$L('下载')}}</DropdownItem>
|
||||||
<DropdownItem v-if="selectedItems.length > 1" name="downloadzip" :disabled="contextMenuItem.userid != userId && contextMenuItem.permission == 0">{{$L('打包下载')}}</DropdownItem>
|
<DropdownItem v-if="selectedItems.length > 1" name="downloadzip" :disabled="contextMenuItem.userid != userId && contextMenuItem.permission == 0">{{$L('打包下载')}}</DropdownItem>
|
||||||
|
|
||||||
<DropdownItem name="delete" divided style="color:red">{{$L('删除')}}</DropdownItem>
|
<DropdownItem name="delete" divided style="color:red" :disabled="contextMenuItem.userid != userId && contextMenuItem.created_id != userId">{{$L('删除')}}</DropdownItem>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<DropdownItem
|
<DropdownItem
|
||||||
@ -973,6 +973,11 @@ export default {
|
|||||||
return !!this.fileList?.find((res) => res._checked && res.permission < 1)
|
return !!this.fileList?.find((res) => res._checked && res.permission < 1)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
batchDeleteDisabled() {
|
||||||
|
// 与后端 file/remove 一致:仅所有者或创建者可删除(getPermission 返回 1000)
|
||||||
|
return !!this.fileList?.find((res) => res._checked && res.userid != this.userId && res.created_id != this.userId)
|
||||||
|
},
|
||||||
|
|
||||||
maxSize() {
|
maxSize() {
|
||||||
if(this.systemConfig?.file_upload_limit){
|
if(this.systemConfig?.file_upload_limit){
|
||||||
return this.systemConfig.file_upload_limit * 1024
|
return this.systemConfig.file_upload_limit * 1024
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user