Seiten: [1]   Nach unten
  Drucken  
Autor Thema: Kein Zugriff auf Seitenbearbeitung u.a.  (Gelesen 190 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
stefan.avi
Normal
*
Offline Offline

Beiträge: 178


« am: 29. Juni 2010, 08:58:42 »

Hallo,

mir ist aufgefallen, dass ich keine neuen Seiten erstellen oder vorhandene bearbeiten kann.
Es erscheint dann folgende Fehlermeldung:
Code:
Kein Zugriff auf Seite bearbeiten
oder
Code:
Kein Zugriff auf neue Seite erstellen

Danach scheint es so, als wenn kein die Admin-Seiten ohne CSS dargestellt werden.

Folgende Fehlermeldung trat auch auf:
Code:
Fatal error: Call to a member function on a non-object in /mnt/web2/12/61/51442561/htdocs/avigmbh/verwaltung/editcontent.php  on line 261

Benutzer lassen sich auch keine neuen anlegen:
Code:
Kein Zugriff auf Neuen Benutzer hinzufügen
Es läuft folgende Version:
CMS_VERSION = "1.1 Frankfurt"
CMS_VERSION_NAME = "PowerCMS"
CMS_SCHEMA_VERSION = "1.2"

Irgendwas scheint da nicht mehr zu stimmen

mfg Stefan
Gespeichert
piratos
Administrator
Normal
*****
Offline Offline

Beiträge: 8020



« Antworten #1 am: 29. Juni 2010, 11:09:05 »

Das erste praktische Problem ist - ich selbst habe diese Version schon nicht mehr da überaltert.

Es sieht aber so aus, als wenn es ein Rechteproblem wäre.

Der Superadmin - der mit der ID 1 müsste immer Zugriff haben.

Zugewiesene Admins müssen das aber die Rechte zugewiesen bekommen.

Vielleicht mal die Admin Gruppe checken ob alle Rechte zugewiesen sind.
Gespeichert

stefan.avi
Normal
*
Offline Offline

Beiträge: 178


« Antworten #2 am: 29. Juni 2010, 11:19:19 »

lässt sich denn da noch was updaten/upgraden??

Gespeichert
piratos
Administrator
Normal
*****
Offline Offline

Beiträge: 8020



« Antworten #3 am: 29. Juni 2010, 11:36:17 »

Auf die einfache Art wohl nicht.
Die Tabellen haben sich teils geändert, das DB Format ist auf InnoDB gesetzt, PHP 5.2 ist Pflicht wie auch Dbestimmte Dinge die bei einer normal guten PHP 5.2X Installation vorhanden sind wie pdo_mysql.

Grundsätzlich geht das aber - wie gesagt das praktische Problem ich selbst habe die Version nicht mehr.

Ich würde das zunächst lokal - also nie produktiv wie folgt versuchen.

1. aktuelle Version lokal installieren
2. Demodaten löschen
3. Dump von der Altinstallation ohne die Tabellenstrukturen nehmen und ohne die Permissions_daten
4. Restore ausführen und bei Dingen die nicht importierbar sind manuell aufbereiten und dann importieren.

Aber ich glaube dennoch das das konkrete Problem ein Rechteproblem ist, das einfach zu korrigieren wäre.
Gespeichert

stefan.avi
Normal
*
Offline Offline

Beiträge: 178


« Antworten #4 am: 29. Juni 2010, 11:44:24 »

Berechtigungen sind alle richtig gesetzt.
Manchmal geht es ja auch, beim erneuten Versuch was zu ändern dann wieder nicht.
Gespeichert
piratos
Administrator
Normal
*****
Offline Offline

Beiträge: 8020



« Antworten #5 am: 29. Juni 2010, 11:46:09 »

Poste mal  die Zeilen 240 bis 261.
Gespeichert

stefan.avi
Normal
*
Offline Offline

Beiträge: 178


« Antworten #6 am: 29. Juni 2010, 11:59:58 »

hier mal Zeile 213:
Code:
if ($access)
{
if ($submit || $apply)
{
#Fill contentobj with parameters

$contentobj->FillParams($_REQUEST);
$error = $contentobj->ValidateData();

if (isset($_REQUEST["ownerid"]))
$contentobj->SetOwner($_REQUEST["ownerid"]);

#Fill Additional Editors (kind of kludgy)
if (isset($_REQUEST["additional_editors"]))
{
$addtarray = array();
foreach ($_REQUEST["additional_editors"] as $addt_user_id)
$addtarray[] = $addt_user_id;
$contentobj->SetAdditionalEditors($addtarray);
}
else if ($adminaccess)
$contentobj->SetAdditionalEditors(array());

if ($error === FALSE)
{
$contentobj->Save();
global $gCms;
$contentops =& $gCms->GetContentOperations();
$contentops->SetAllHierarchyPositions();
$contentops->ClearCache();
if ($submit) redirect("listcontent.php?page=".$pagelist_id.'&message=contentupdated');
}
}
else if ($content_id != -1 && !$preview && strtolower(get_class($contentobj)) != strtolower($content_type))
{
global $gCms;
$contentops =& $gCms->GetContentOperations();
$contentobj = $contentops->LoadContentFromId($content_id);
$content_type = $contentobj->Type();
$contentobj->SetLastModifiedBy($userid);
}
else
{
updatecontentobj($contentobj, $preview);
$contentops->ClearCache();
}
}

if (strlen($contentobj->Name()) > 0)
$CMS_ADMIN_SUBTITLE = $contentobj->Name();
Gespeichert
piratos
Administrator
Normal
*****
Offline Offline

Beiträge: 8020



« Antworten #7 am: 29. Juni 2010, 12:24:43 »

Es ist mit Sicherheit eine Rechteproblem.

Entweder sind die Rechte nicht gesetzt oder nicht in der Tabelle permissions vorhanden.

Es fehlt das Recht was vorher geprüft wird:

Code:
$userid = get_userid();
$access = check_ownership($userid, $content_id) || check_permission($userid, 'Modify Any Page');
$adminaccess = $access;
if (!$access)
    $access = check_authorship($userid, $content_id);

Zunächst einmal die Tabelle cms_permission prüfen ob Modify Any Page vorhanden ist.

Dann nochmals prüfen ob die Gruppenrechte Admin auch so gesetzt sind für den User mit Adminrechten oder der Gruppe die da bearbeiten soll.


Zeile 261 könnte man so ändern dann wäre die Meldung verschwunden, das Rechteproblem aber nicht gelöst .

Code:
if (is_object($contentobj) && strlen($contentobj->Name()) > 0)
Gespeichert

stefan.avi
Normal
*
Offline Offline

Beiträge: 178


« Antworten #8 am: 29. Juni 2010, 13:14:36 »

Zitat
Tabelle cms_permission prüfen ob Modify Any Page vorhanden ist.

ist vorhanden.

glaub langsam es liegt am Provider, da 3 andere Domains mit powerCMS auch das gleiche Verhalten aufweisen.
Gespeichert
piratos
Administrator
Normal
*****
Offline Offline

Beiträge: 8020



« Antworten #9 am: 29. Juni 2010, 13:24:24 »

Hat sich denn das schlagartig ergeben Huch

Eine entscheidende Funktion ist in lib/page.functions.php - die Funktion load_all_permissions die z.Z. so aussieht:

Code:
function load_all_permissions($userid) {
    global $gCms,$db,$config;
    $variables = &$gCms->variables;
    $perms = array();
    $result = $db->GetCol("SELECT DISTINCT permission_name FROM ".$config['db_prefix']."user_groups ug INNER JOIN ".$config['db_prefix']."group_perms gp ON gp.group_id = ug.group_id INNER JOIN ".$config['db_prefix']."permissions p ON p.permission_id = gp.permission_id WHERE ug.user_id = ?", array($userid));
    if ($result)
        $variables['userperms'] = $result;
    else
        $variables['userperms'] = $perms;
}

ich würde da mal vor     if ($result)  ein var_dump($result); einsetzen um mal zu schauen ob die Rechte überhaupt ausgelesen werden.
Gespeichert

stefan.avi
Normal
*
Offline Offline

Beiträge: 178


« Antworten #10 am: 29. Juni 2010, 13:44:02 »

Ok alles auf Stopp...

Der Fehler entsteht durch den Router der mit Dual-WAN  arbeitet.
Somit ändert sich immer die Session ID und die Rechte gehen logischerweise verloren.

Thema ist erledigt.

Danke für deine Bemühungen!!!!!

mfg Stefan
Gespeichert
piratos
Administrator
Normal
*****
Offline Offline

Beiträge: 8020



« Antworten #11 am: 29. Juni 2010, 13:44:50 »

Ok -  kein Wunder das man da in's schwitzen kommt.
Gespeichert

stefan.avi
Normal
*
Offline Offline

Beiträge: 178


« Antworten #12 am: 29. Juni 2010, 13:46:59 »

bei 30°C im Büro auch kein Wunder...und eh man darauf kommt...
Gespeichert
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu: