您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMSv9修改栏目或者单页没有权限的解决方法
尤介辉2025-06-09 15:01:17phpcms教程已有2人查阅
导读问题:普通管理员没有权限修改栏目,只有超级管理员才有权限修改,凡是非超级管理员,设置栏目权限后只能添加栏目,不能对栏目进行修改和删除操作,提示您没有权限操作该项这使系统的
问题:
普通管理员没有权限修改栏目,只有超级管理员才有权限修改,凡是非超级管理员,设置栏目权限后只能添加栏目,不能对栏目进行修改和删除操作,提示您没有权限操作该项这使系统的一个BUG。
一、对于普通栏目的权限:
PHPCMS v9在判断权限的时候只判断admin_role_priv表中所记录的权限。也就是我们在设置角色的时候所进行的“权限设置”,而不考虑我们所设置的“栏目权限”。由admin:check_priv()在可以看出,该方法没有对栏目权限作任何考虑。所以当我们使用非超管登录时,修改栏目或删除栏目就会提示“您没有权限操作该项”。
(地址:phpcms/modules/admin/classes/admin.class.php)
解决办法:
1.找到/phpcms/modules/admin/classes/admin.class.php ,在里面找到 大概在171行上,然后在该句下面加上: 2.在 /phpcms/modules/admin/category.php中找到 改为: 二、对于单页的权限:
上面的方法可能只能解决栏目权限问题,并不能解决单页权限问题,这是因为后台并没有保存到我们的设置的单页权限。
解决办法:
我们找到后台的:【设置】-【管理员设置】-【角色管理】-【栏目权限】,选择我们要修改的站点,然后右边出现如下:
这是因为在后台的代码中(phpcms/modules/admin/role.php 175行)设置栏目权限setting_cat_priv()这个方法里面定义了如果是类型为 1 即单页,禁用除了查看之外所有权限,其他权限呈现灰色不可选。事实上栏目和单页在系统看来都是作为栏目来处理的。
所以我们把if这个判断去除,把foreach循环里面的内容修改为以下即可: 这个时候你去后台即可看到所有的单页和栏目都可以选择所有权限了。
4.但是我们用普通帐号去管理栏目的时候,修改单页保存之后,再点击编辑的时候提示没有权限了。
修改栏目方法地址:phpcms/modules/admin/category.php 找到edit()方法,发现默认方法中会根据栏目类型调用不同管理模版,单页模版的是:phpcms/modules/admin/templates/category_page_edit.tpl.php ,打开文件
ctrl+F 查找id="div_setting_5" (定位到第五个TAB标签),看表头中写的是[role_name]和[edit](正确应该是[view]的)两项。
原因:到这里我们应该清楚为什么修改一次就没权限了,因为每次修改之前会把默认值放到页面,然后提交的时候只提交了查看权限,其他的权限没有表单来提交过去,而更新权限是把所有先清空一遍,然后保存表单提交的数据,所以其他权限都没了。
我们把栏目模版:phpcms/modules/admin/templates/category_edit.tpl.php (ctrl+F id="div_setting_5")对应的表格内容复制替换这里即可。复制完之后把move改成remove 就是之后一项[移动]的权限的值。
保存之后,我们再点开发现后台现在已经可以选择权限了,选中保存并测试。完成!
说明:
1.在上面修改的操作中,请习惯写上注释,这是我们自己修改的,等到官方升级之后看看是否需要修改覆盖。
2.操作做完之后,默认新增的栏目只能是当前管理员才有效,这个时候我们可以在新增栏目的时候选择,在 权限设置 一栏选择哪些管理员有权限。
3.对于新增栏目权限,大家可以自己按上面的方法去检查并修复。
普通管理员没有权限修改栏目,只有超级管理员才有权限修改,凡是非超级管理员,设置栏目权限后只能添加栏目,不能对栏目进行修改和删除操作,提示您没有权限操作该项这使系统的一个BUG。
一、对于普通栏目的权限:
PHPCMS v9在判断权限的时候只判断admin_role_priv表中所记录的权限。也就是我们在设置角色的时候所进行的“权限设置”,而不考虑我们所设置的“栏目权限”。由admin:check_priv()在可以看出,该方法没有对栏目权限作任何考虑。所以当我们使用非超管登录时,修改栏目或删除栏目就会提示“您没有权限操作该项”。
(地址:phpcms/modules/admin/classes/admin.class.php)
解决办法:
1.找到/phpcms/modules/admin/classes/admin.class.php ,在里面找到 大概在171行上,然后在该句下面加上: 2.在 /phpcms/modules/admin/category.php中找到 改为: 二、对于单页的权限:
上面的方法可能只能解决栏目权限问题,并不能解决单页权限问题,这是因为后台并没有保存到我们的设置的单页权限。
解决办法:
我们找到后台的:【设置】-【管理员设置】-【角色管理】-【栏目权限】,选择我们要修改的站点,然后右边出现如下:
这是因为在后台的代码中(phpcms/modules/admin/role.php 175行)设置栏目权限setting_cat_priv()这个方法里面定义了如果是类型为 1 即单页,禁用除了查看之外所有权限,其他权限呈现灰色不可选。事实上栏目和单页在系统看来都是作为栏目来处理的。
所以我们把if这个判断去除,把foreach循环里面的内容修改为以下即可: 这个时候你去后台即可看到所有的单页和栏目都可以选择所有权限了。
4.但是我们用普通帐号去管理栏目的时候,修改单页保存之后,再点击编辑的时候提示没有权限了。
修改栏目方法地址:phpcms/modules/admin/category.php 找到edit()方法,发现默认方法中会根据栏目类型调用不同管理模版,单页模版的是:phpcms/modules/admin/templates/category_page_edit.tpl.php ,打开文件
ctrl+F 查找id="div_setting_5" (定位到第五个TAB标签),看表头中写的是[role_name]和[edit](正确应该是[view]的)两项。
原因:到这里我们应该清楚为什么修改一次就没权限了,因为每次修改之前会把默认值放到页面,然后提交的时候只提交了查看权限,其他的权限没有表单来提交过去,而更新权限是把所有先清空一遍,然后保存表单提交的数据,所以其他权限都没了。
我们把栏目模版:phpcms/modules/admin/templates/category_edit.tpl.php (ctrl+F id="div_setting_5")对应的表格内容复制替换这里即可。复制完之后把move改成remove 就是之后一项[移动]的权限的值。
保存之后,我们再点开发现后台现在已经可以选择权限了,选中保存并测试。完成!
说明:
1.在上面修改的操作中,请习惯写上注释,这是我们自己修改的,等到官方升级之后看看是否需要修改覆盖。
2.操作做完之后,默认新增的栏目只能是当前管理员才有效,这个时候我们可以在新增栏目的时候选择,在 权限设置 一栏选择哪些管理员有权限。
3.对于新增栏目权限,大家可以自己按上面的方法去检查并修复。
本文标签:
很赞哦! (1)
上一篇:phpcms分页用法简介代码示例
暂无内容 |
暂无内容 |
暂无内容 |
暂无内容 |
随机图文
phpcms模板标签使用说明
使用phpcms总是要查询各种标签,实在很烦,只好找个比较全的来备查。因为自己写一个orm来配合调用也没那么容易无缝的嵌入到引擎当中。PHPCMS和帝国CMS广告管理功能哪个好
phpcms和帝国cms的广告管理功能各有优劣,具体选择需根据需求决定。phpcms适合简单易用的广告管理,适合新手快速上手;帝国cms则更灵活强大,适合需要复杂广告策略和精细运营的用户。PHPCMSV9加密方式
PHPCMSV9加密规则相关表:v9_admin第一步:对输入的密码32位小写MD5对输入的密码进行trim过滤第二步:取得随机字符,对应记录中encrypt值和第一部结果链接phpcms上传图片选择文件无地址的原因和解决方法
phpcms图片上传选择文件后没有地址问题的解决方法:检查上传文件的类型和大小是否符合要求。检查服务器配置是否正确,确保启用GD库。确认php.ini设置正确
留言与评论 (共有 0 条评论) |