首页
Portal
业界资讯
社区
BBS
我的家园
Space
个人空间
导读
Guide
登录
/
注册
用户名
Email
自动登录
找回密码
密码
登录
注册
搜索
搜索
本版
帖子
用户
本版
帖子
用户
帖子
好友
道具
勋章
收藏
任务
淘帖
门户
导读
设置
我的收藏
退出
腾讯QQ
微信登录
首页
›
≡≡网络技术≡≡
›
PHP语言
›
Veno-File-Manager (VFM4)云盘,让编辑用户无权移动删除 ...
返回列表
CMS
Veno-File-Manager (VFM4)云盘,让编辑用户无权移动删除只读目录
[ 复制链接 ]
灰儿
2022-9-19 08:37:29
Veno-File-Manager (VFM4)云盘,让编辑用户无权移动、更名、删除
用户只读目录
1.修改前端显示UI代码,让游客和登录用户显示公共目录(public_dirs)、用户只读目录(user_read_dirs)和根目录(starting_dir)中的文件
打开根目录 vfm-admin/template/list-files.php 文件,把条件判断语句改为如下格式:
if ($gateKeeper->isAccessAllowed()){
if( $location->editAllowed()
|| $location->guestReadtAllowed()
|| $location->userReadtAllowed() && $gateKeeper->isUserLoggedIn()
|| $location->getCleanPath() ==="") {
if ($gateKeeper->isAllowed('view_enable')) {
列表显示文件代码 }
显示上传文件功能区块代码 }
}
复制代码
存在问题,当以上代码中添加 guestReadtAllowed()、userReadtAllowed() 、getCleanPath() ==="" 三条判断语句后,会出现一个新的bug,即编辑(editor)用户打开首页、游客公共目录(public_dirs)或用户只读公共目录(user_read_dirs),一直显示加载状态,打不开网页。
解决方法:
打开根目录 vfm-admin/include/load-js.php文件,查找与更名 (rename_enable) 相关代码,把显示条件判断语句改为如下格式:
单选操作(右侧):更名
if ($gateKeeper->isAllowed('rename_enable') && $location->editAllowed())
复制代码
解决浏览公共目录(user_read_dirs)下文件时时,“多选操作”菜单中仍显示移动、复制和删除按钮的问题:
大概在65行左右,添加条件判断语句,使“多选操作”菜单中不显示移动、复制和删除按钮,改后代码如下:
if ($gateKeeper->isAllowed('move_enable') && $location->checkUserDir()) { ?>
[url=#]getString("move"); ?>[/url]
}
if ($gateKeeper->isAllowed('copy_enable') && $location->checkUserDir()) { ?>
[url=#]getString("copy"); ?>[/url]
}
if ($gateKeeper->isAllowed('delete_enable') && $location->checkUserDir()) { ?>
[url=#]getString("delete"); ?>[/url]
} ?>
复制代码
也可以把条件语句改为如下代码:
if ($gateKeeper->isAllowed('move_enable') && !$location->guestReadtAllowed() && !$location->userReadtAllowed() && $location->getCleanPath() !=="")
复制代码
解决PC列表模式下显示公共目录(user_read_dirs)下文件时时,表格仍显示重命名和删除列的问题:
大概在137行左右,添加条件判断语句,使表格不显示重命名和删除列,改后代码如下:
if ($gateKeeper->isAllowed('rename_enable') && $location->checkUserDir()) { ?>
} ?>
if ($gateKeeper->isAllowed('delete_enable') && $location->checkUserDir()) { ?>
} ?>
复制代码
存在问题:即是游客公共目录(public_dirs)又是用户私有目录的文件夹,编辑用户没有编辑权限。
2.修改ajax请求代码,使游客和登录用户能获取到公共目录(public_dirs)、用户只读目录(user_read_dirs)和根目录(starting_dir)中的文件
打开根目录 /vfm-admin/ajax/get-files.php 文件,查找如下代码:
if ($gateKeeper->isAccessAllowed() && $location->editAllowed('../../') && $gateKeeper->isAllowed('view_enable'))
{
$fullpath = $location->getFullPath();
...
}
复制代码
改为如下代码:
$cleanlocdir = rtrim(ltrim($locdir, './'), '/');
$startdir = './'.$setUp->getConfig('starting_dir');
$cleanstartdir = rtrim(ltrim($startdir, './'), '/');
if ($cleanlocdir === $cleanstartdir
|| $gateKeeper->isAccessAllowed()
&& $location->guestReadtAllowed('../../')
|| $location->editAllowed('../../')
|| $location->userReadtAllowed('../../')
&& $gateKeeper->isAllowed('view_enable')) {
$fullpath = $location->getFullPath();
...
}
复制代码
解决平铺视图模式下显示公共目录(user_read_dirs)下文件时时,在文件右上角显示重命名和删除按钮问题:
大概在271行左右,添加条件判断语句,使平铺视图文件右上角不显示重命名和删除按钮,改后代码如下:
if ($gateKeeper->isAllowed('rename_enable') && $location->editAllowed('../../')) {
$data['icon'] .= '
';
}
if ($gateKeeper->isAllowed('delete_enable') && $location->editAllowed('../../')) {
$data['icon'] .= '
';
}
复制代码
解决PC浏览器打开公共目录(user_read_dirs)时,在文件列表右侧显示重命名和删除按钮问题:
大概在326行左右,添加条件判断语句,使文件列表右侧不显示重命名和删除按钮,改后代码如下:
$data['delete'] = '';
if ($gateKeeper->isAllowed('delete_enable') && $location->editAllowed('../../')) {
$data['delete'] .= '
';
}
复制代码
解决手机端打开公共目录(user_read_dirs)时,在文件列表右侧显示重命名和删除按钮问题:
大概在342行左右,添加条件判断语句,使文件列表右侧不显示重命名和删除按钮,改后代码如下码:
if ($gateKeeper->isAllowed('rename_enable') && $location->editAllowed('../../')) {
$data['delete'] .= '
'.$setUp->getString("rename").'';
}
if ($gateKeeper->isAllowed('delete_enable') && $location->editAllowed('../../')) {
$data['delete'] .= '
'.$setUp->getString("delete").'';
}
复制代码
相关文件:
打开根目录 vfm-admin/template/list-files.php //多选操作(左侧):移动、复制、删除
根目录 vfm-admin/include/load-js.php //单选操作(右侧):更名
根目录 vfm-admin/ajax/get-files.php //单选操作(右侧):删除
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
回复
(1)
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
回复
本版积分规则
回帖后跳转到最后一页
灰儿
管理员
9840篇
主题总数
7
总热度
提问
+关注
产品动态
2024-05-14
泛微E10(e-cology)文件存储位置与打开方式
2024-05-14
神州数码云科(DCN) DCME-320路由器关闭互联网22、23、53端口方法
2024-05-13
关于webapp与WEB-INF的记录
2024-05-13
泛微(weaver)e-cology_V10公文管理,上传套红模板教程
2024-05-13
防火墙指标:吞吐量、时延、新建连接速率、并发连接数
2024-05-13
核心路由器十项性能指标
2024-05-11
神州数码(DCN) DCME-320 路由器(linux软路由)常用命令详解
2024-05-10
泛微(weaver)e-cology_V10公文管理模块套红模板制作教程
热点推荐
1
泛微E10(e-cology)文件存储位置与打开方式
2
神州数码云科(DCN) DCME-320路由器关闭互联网22、23、53端口方法
3
关于webapp与WEB-INF的记录
4
泛微(weaver)e-cology_V10公文管理,上传套红模板教程
5
防火墙指标:吞吐量、时延、新建连接速率、并发连接数
6
核心路由器十项性能指标
7
神州数码(DCN) DCME-320 路由器(linux软路由)常用命令详解
8
泛微(weaver)e-cology_V10公文管理模块套红模板制作教程
热门板块
PC操作系统
启动和引导
手机操作系统
硬件相关
办公软件
多媒体技术
产品动态
2024-05-14
泛微E10(e-cology)文件存储位置与打开方式
2024-05-14
神州数码云科(DCN) DCME-320路由器关闭互联网22、23、53端口方法
2024-05-13
关于webapp与WEB-INF的记录
2024-05-13
泛微(weaver)e-cology_V10公文管理,上传套红模板教程
2024-05-13
防火墙指标:吞吐量、时延、新建连接速率、并发连接数
2024-05-13
核心路由器十项性能指标
2024-05-11
神州数码(DCN) DCME-320 路由器(linux软路由)常用命令详解
2024-05-10
泛微(weaver)e-cology_V10公文管理模块套红模板制作教程
热点推荐
1
泛微E10(e-cology)文件存储位置与打开方式
2
神州数码云科(DCN) DCME-320路由器关闭互联网22、23、53端口方法
3
关于webapp与WEB-INF的记录
4
泛微(weaver)e-cology_V10公文管理,上传套红模板教程
5
防火墙指标:吞吐量、时延、新建连接速率、并发连接数
6
核心路由器十项性能指标
7
神州数码(DCN) DCME-320 路由器(linux软路由)常用命令详解
8
泛微(weaver)e-cology_V10公文管理模块套红模板制作教程
热门板块
PC操作系统
启动和引导
手机操作系统
硬件相关
办公软件
多媒体技术
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言
了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言
了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。