Heim  >  Artikel  >  CMS-Tutorial  >  Was soll ich tun, wenn phpcms eine Spalte nicht löschen kann?

Was soll ich tun, wenn phpcms eine Spalte nicht löschen kann?

藏色散人
藏色散人Original
2020-07-21 09:22:022193Durchsuche

phpcms kann die Spalte nicht löschen, da der Site-Administrator keine Berechtigung zum Löschen der Spalte hat. Die Lösung: Suchen und öffnen Sie zuerst die Datei „admin.class.php“ und fügen Sie dann die Berechtigung des Site-Administrators zum Löschen hinzu die Spalte; endgültige Änderungsdatei „category.php“ reicht aus.

Was soll ich tun, wenn phpcms eine Spalte nicht löschen kann?

phpcms kann keine Spalten löschen? Der PHPCMS-Site-Administrator hat keine Berechtigung zum Löschen von Spalten

phpcms V9 außer Super Administrator, andere Administratoren haben keine Berechtigung zum Löschen oder Ändern von Spalten. Dies kann ein Fehler im System sein.

Analyse:

PHPCMS v9 beurteilt bei der Beurteilung von Berechtigungen nur die in der Tabelle admin_role_priv aufgezeichneten Berechtigungen. Das heißt, die „Berechtigungseinstellungen“, die wir beim Einrichten von Rollen vornehmen, unabhängig von den „Spaltenberechtigungen“, die wir festlegen. Aus admin:check_priv() ist ersichtlich, dass diese Methode keine Rücksicht auf Spaltenberechtigungen nimmt. Wenn wir uns also mit Nicht-Super-Management anmelden und eine Spalte ändern oder löschen, werden wir mit der Meldung „Sie haben keine Berechtigung zum Bedienen dieses Elements“ angezeigt.

Speicherort: phpcms/modules/admin/classes/admin.class.php

Empfohlen: „phpcms-Tutorial

Lösung:

1. Suchen Sie /phpcms/modules/admin/classes/admin.class.php, suchen Sie darin

$r =$privdb->get_one(array('m'=>ROUTE_M,'c'=>ROUTE_C,'a'=>$action,'roleid'=>$_SESSION['roleid'],'siteid'=>$siteid));

, wahrscheinlich in Zeile 177, und fügen Sie dann Folgendes hinzu:

//添加站点管理员的删除栏目权限 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;
}
unter dem Satz

Was soll ich tun, wenn phpcms eine Spalte nicht löschen kann?

2. Suchen Sie

foreach ($arrchildid_arr as $arr_v) {
$this->update_priv($arr_v, $_POST['priv_groupid'], 0);
}

in /phpcms/modules/admin/category.php und ändern Sie es in:

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

Was soll ich tun, wenn phpcms eine Spalte nicht löschen kann?

Tipps:

Denken Sie daran, die entsprechende Berechtigung zum Löschen von Waren zu überprüfen, wenn Sie die Spalte „Warenänderung“ hinzufügen.

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn phpcms eine Spalte nicht löschen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn