phpcms で列を削除できない場合はどうすればよいですか?

藏色散人
リリース: 2020-07-21 09:22:02
オリジナル
2307 人が閲覧しました

サイト管理者に列を削除する権限がないため、phpcms は列を削除できません。解決策: まず「admin.class.php」ファイルを見つけて開き、次にサイト管理者の削除権限を追加します。列; 最後に「category.php」ファイルを変更するだけで十分です。

phpcms で列を削除できない場合はどうすればよいですか?

phpcms は列を削除できません? PHPCMS サイト管理者には列を削除する権限がありません

phpcms V9 (スーパーを除く)管理者 、他の管理者には列を削除または変更する権限がありません。これはシステムのバグである可能性があります。

分析:

PHPCMS v9 は、権限を判断するときに、admin_role_priv テーブルに記録されている権限のみを決定します。つまり、設定した「列の権限」に関係なく、ロールを設定するときに行う「権限設定」です。 admin:check_priv() から、このメソッドが列の権限をまったく考慮していないことがわかります。そのため、スーパー管理以外でログインした場合、列を変更したり削除したりすると、「この項目を操作する権限がありません。」というメッセージが表示されます。

場所: phpcms/modules/admin/classes/admin.class.php

推奨: 「phpcms チュートリアル

解決策:

1. /phpcms/modules/admin/classes/admin.class.php を検索し、おそらく 177 行目で

$r =$privdb->get_one(array('m'=>ROUTE_M,'c'=>ROUTE_C,'a'=>$action,'roleid'=>$_SESSION['roleid'],'siteid'=>$siteid));
ログイン後にコピー

を見つけ、文の下に次の文を追加します:

//添加站点管理员的删除栏目权限 by:醒木
if(ROUTE_C == 'category'){
$catid = $_GET['catid'] ? $_GET['catid'] : $_POST['catid'];
//获取角色当前权限设置
pc_base::load_app_class('role_cat', '', 0);
$priv = role_cat::get_roleid($_SESSION['roleid'], $siteid);
if($priv[$catid][$action]) $r = true;
}
ログイン後にコピー

phpcms で列を削除できない場合はどうすればよいですか?

2. /phpcms/modules/admin/category.php で

foreach ($arrchildid_arr as $arr_v) {
$this->update_priv($arr_v, $_POST['priv_groupid'], 0);
}
ログイン後にコピー

を見つけて、次のように変更します:

foreach ($arrchildid_arr as $arr_v) {
$this->update_priv($arr_v, $_POST['priv_roleid']); //添加站点管理员的删除栏目权限 by:醒木
$this->update_priv($arr_v, $_POST['priv_groupid'], 0);
}
ログイン後にコピー

phpcms で列を削除できない場合はどうすればよいですか?

ヒント:

商品変更列を追加するときは、商品を削除するための対応する権限を必ず確認してください。

以上がphpcms で列を削除できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート