mirror of
https://github.com/KOHGYLW/kiftd-source.git
synced 2025-01-09 04:27:56 +08:00
update to v1.0.20 进一步增强文件系统的安全性
This commit is contained in:
parent
617995a8b3
commit
d08aafa669
5
TODO.txt
5
TODO.txt
@ -48,15 +48,14 @@ kiftd项目 计划表-2019-08-05 by 青阳龙野
|
||||
|
||||
计划中 v1.0.20
|
||||
--------------
|
||||
【已完成】设置扩展存储区——允许用户最多挂载31个额外存储区,以便在不使用磁盘阵列的情况下,将多个硬盘分区作为kiftd的扩展存储空间使用。
|
||||
【已完成】上传文件夹——允许用户直接“上传”文件夹,在保留目录结构的情况下一次性上传文件夹内的所有文件。
|
||||
该功能是新建文件夹和上传文件的结合版,仅当用户同时具备“上传”和“新建文件夹”权限时才可使用该功能。
|
||||
【已完成】设置扩展存储区——允许用户最多挂载31个额外存储区,以便在不使用磁盘阵列的情况下,将多个硬盘分区作为kiftd的扩展存储空间使用。
|
||||
【已完成】PPT预览——ppt/pptx幻灯片预览功能现已加入kiftd豪华预览午餐(是否能正确处理未安装的中文字体仍待验证)。
|
||||
【已完成】优化了配置检查机制,当配置出现错误时不再自动还原初始配置,方便用户对其进行检查和修改操作。
|
||||
【已完成】优化了文件列表显示逻辑,将最新上传的文件显示在最上方,便于用户查找。
|
||||
【已完成】升级文件列表的排序功能——文件列表可以对文件的各项属性进行切换式的双向(升序/降序)排序。
|
||||
【已完成】进一步完善了文件上传操作的合法性检查流程,提高文件系统的安全性。
|
||||
【已完成】其他一些细节优化。
|
||||
【已完成】进一步增强了文件系统的安全性和稳定性。
|
||||
|
||||
|
||||
|
||||
|
@ -104,22 +104,27 @@ public class FolderServiceImpl implements FolderService {
|
||||
return "cannotCreateFolder";
|
||||
}
|
||||
|
||||
// 删除文件夹的实现方法
|
||||
public String deleteFolder(final HttpServletRequest request) {
|
||||
final String folderId = request.getParameter("folderId");
|
||||
final String account = (String) request.getSession().getAttribute("ACCOUNT");
|
||||
// 检查权限
|
||||
if (!ConfigureReader.instance().authorized(account, AccountAuth.DELETE_FILE_OR_FOLDER)) {
|
||||
return "noAuthorized";
|
||||
}
|
||||
if (folderId == null || folderId.length() <= 0) {
|
||||
// 检查删除目标的ID参数是否正确
|
||||
if (folderId == null || folderId.length() == 0 || "root".equals(folderId)) {
|
||||
return "errorParameter";
|
||||
}
|
||||
final Folder folder = this.fm.queryById(folderId);
|
||||
if (folder == null) {
|
||||
return "deleteFolderSuccess";
|
||||
}
|
||||
// 检查删除者是否具备删除目标的访问许可
|
||||
if (!ConfigureReader.instance().accessFolder(folder, account)) {
|
||||
return "noAuthorized";
|
||||
}
|
||||
// 执行迭代删除
|
||||
final List<Folder> l = this.fu.getParentList(folderId);
|
||||
if (this.fu.deleteAllChildFolder(folderId) > 0) {
|
||||
this.lu.writeDeleteFolderEvent(request, folder, l);
|
||||
@ -128,6 +133,7 @@ public class FolderServiceImpl implements FolderService {
|
||||
return "cannotDeleteFolder";
|
||||
}
|
||||
|
||||
// 对编辑文件夹的实现
|
||||
public String renameFolder(final HttpServletRequest request) {
|
||||
final String folderId = request.getParameter("folderId");
|
||||
final String newName = request.getParameter("newName");
|
||||
@ -136,7 +142,8 @@ public class FolderServiceImpl implements FolderService {
|
||||
if (!ConfigureReader.instance().authorized(account, AccountAuth.RENAME_FILE_OR_FOLDER)) {
|
||||
return "noAuthorized";
|
||||
}
|
||||
if (folderId == null || folderId.length() <= 0 || newName == null || newName.length() <= 0) {
|
||||
if (folderId == null || folderId.length() == 0 || newName == null || newName.length() == 0
|
||||
|| "root".equals(folderId)) {
|
||||
return "errorParameter";
|
||||
}
|
||||
if (!TextFormateUtil.instance().matcherFolderName(newName) || newName.indexOf(".") == 0) {
|
||||
@ -224,7 +231,11 @@ public class FolderServiceImpl implements FolderService {
|
||||
if (!ConfigureReader.instance().authorized(account, AccountAuth.DELETE_FILE_OR_FOLDER)) {
|
||||
return "deleteError";
|
||||
}
|
||||
if (parentId == null || parentId.length() <= 0) {
|
||||
if (parentId == null || parentId.length() == 0) {
|
||||
return "deleteError";
|
||||
}
|
||||
Folder p = fm.queryById(parentId);
|
||||
if (p == null) {
|
||||
return "deleteError";
|
||||
}
|
||||
final Folder[] repeatFolders = this.fm.queryByParentId(parentId).parallelStream()
|
||||
|
@ -1,5 +1,5 @@
|
||||
#Generated by Maven Integration for Eclipse
|
||||
#Thu Aug 15 16:34:49 CST 2019
|
||||
#Fri Aug 16 15:33:56 CST 2019
|
||||
version=1.0.20-SNAPSHOT
|
||||
groupId=kohgylw
|
||||
m2e.projectName=kiftd
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user