update to v1.2.0 进一步完善了移动文件夹时的未授权信息

This commit is contained in:
kohgylw 2024-01-06 18:09:35 +08:00
parent c8211ec1ef
commit 82aef830d0
8 changed files with 28 additions and 11 deletions

View File

@ -215,3 +215,4 @@ test.auth.xxx=ucd
【已完成】进一步优化了命令模式下的“文件”功能现在可以通过“ls -l”显示所有项目的详细信息了。
【已完成】修复了几处在执行文件导入导出操作时可能导致死锁的问题。
【已完成】新增“文件”功能的导入账户设置在账户配置文件中可通过“import.account=?”设置项来为“文件”功能中的导入操作指定“创建者”。
【已完成】进一步完善了移动文件时的提示信息:当用户不具备创建文件夹权限并移动文件夹时,会显示未授权提示。

View File

@ -559,6 +559,14 @@ public class FileServiceImpl extends RangeFileStreamWriter implements FileServic
// 获取涉及移动的文件节点的ID数组
final List<String> idList = gson.fromJson(strIdList, new TypeToken<List<String>>() {
}.getType());
// 获取涉及移动的文件夹的ID数组
final List<String> fidList = gson.fromJson(strFidList, new TypeToken<List<String>>() {
}.getType());
// 如果移动文件夹则还需要创建文件夹权限
if (fidList.size() > 0 && !ConfigureReader.instance().authorized(account, AccountAuth.CREATE_NEW_FOLDER,
fu.getAllFoldersId(locationpath))) {
return NO_AUTHORIZED;
}
// 对涉及的文件节点逐一进行操作
for (final String id : idList) {
// 先对涉及的原节点进行合法性检查
@ -699,9 +707,6 @@ public class FileServiceImpl extends RangeFileStreamWriter implements FileServic
}
// 完成了一个原节点的操作继续循环直至所有涉及节点均操作完毕
}
// 获取涉及移动的文件夹的ID数组
final List<String> fidList = gson.fromJson(strFidList, new TypeToken<List<String>>() {
}.getType());
// 对涉及的文件夹节点逐一进行操作
for (final String fid : fidList) {
// 该过程与移动文件节点的流程类似
@ -907,6 +912,11 @@ public class FileServiceImpl extends RangeFileStreamWriter implements FileServic
}.getType());
final List<String> fidList = gson.fromJson(strFidList, new TypeToken<List<String>>() {
}.getType());
// 如果移动文件夹则还需要创建文件夹权限
if (fidList.size() > 0 && !ConfigureReader.instance().authorized(account, AccountAuth.CREATE_NEW_FOLDER,
fu.getAllFoldersId(locationpath))) {
return NO_AUTHORIZED;
}
List<Node> repeNodes = new ArrayList<>();
List<Folder> repeFolders = new ArrayList<>();
// 检查每个涉及的文件节点是否合法

View File

@ -1,5 +1,5 @@
#Generated by Maven Integration for Eclipse
#Fri Jan 05 19:02:49 CST 2024
#Sat Jan 06 18:07:31 CST 2024
m2e.projectLocation=/Users/kohgylw/Programs/java_workspace/kiftd
m2e.projectName=kiftd
groupId=kohgylw

View File

@ -925,13 +925,22 @@ function showAccountView(folderView) {
"showDeleteAllCheckedModel()");
}
if (checkAuth(authList, "M")) {
$("#cutFileButtonLi").removeClass("disabled");
$("#stickFileButtonLi").removeClass("disabled");
// 若具备M权限则允许复制文件
$("#copyFileButtonLi").removeClass("disabled");
$("#cutFileButtonLi a").attr("onclick", "cutFile()");
$("#stickFileButtonLi").removeClass("disabled");
$("#copyFileButtonLi a").attr("onclick", "copyFile()");
$("#stickFileButtonLi a").attr("onclick", "stickFile()");
$("#copyFileButtonLi").removeClass("hidden");
$("#copyFileButtonLi").addClass("show");
if (checkAuth(authList, "D")) {
// 若同时具备D权限则允许剪切文件
$("#cutFileButtonLi").removeClass("disabled");
$("#cutFileButtonLi a").attr("onclick", "cutFile()");
$("#cutFileButtonLi").removeClass("hidden");
$("#cutFileButtonLi").addClass("show");
}
if (checkedMovefiles !== undefined && checkedMovefiles.size > 0) {
// 如果移动目标列表已经有项目则启用粘贴按钮
if (checkedMovefiles.size < 100) {
$("#stickFilesCount").text(
"" + checkedMovefiles.size + "");
@ -941,10 +950,7 @@ function showAccountView(folderView) {
$("#stickFileButtonLi").removeClass("hidden");
$("#stickFileButtonLi").addClass("show");
} else {
$("#copyFileButtonLi").removeClass("hidden");
$("#copyFileButtonLi").addClass("show");
$("#cutFileButtonLi").removeClass("hidden");
$("#cutFileButtonLi").addClass("show");
// 如果移动目标列表没有项目则隐藏粘贴按钮
$("#stickFileButtonLi").removeClass("show");
$("#stickFileButtonLi").addClass("hidden");
$("#stickFilesCount").text("");