Seite 1 von 1
nach Update keine Mandantenauswahl für Readkteure
Verfasst: Do 31. Aug 2006, 14:38
von Uwe
Hallo,
nach einem Update von 4.4.4 auf 4.6.8.5 können die Redakteure keinen Mandanten (Contenido Übersicht) mehr wählen.
Die Installation umfasst drei Mandanten, Mandant 1 hat zwei Sprachen. In der Benutzerverwaltung sind einige Benutzer angelegt, die auf Sysadmins und drei Gruppen aufgeteilt sind. Eine Gruppe hat das Recht alle drei Mandanten und alle Sprachen zu bearbeiten (redaktionell). Weitere Gruppen haben nur das Recht auf einen Mandatnen zuzugreifen. Das funktioniert auch, nach dem Login landen die Redakteure im richtigen Mandanten.
Die Redakteure der Gruppe mit dem Recht für alle Mandanten landen nach dem Login im ersten Mandanten. Das Auswahl-Pulldown wird angezeigt, ist jedoch leer.
Error-Log ist leer.
Kann mir da jemand weiterhelfen?
Viele Grüsse vom Bodensee, Uwe
Verfasst: Do 31. Aug 2006, 16:11
von emergence
und die rechte auf die mandanten stimmen wirklich ?
sieht der sysadmin die mandanten auswahl ?
Verfasst: Do 31. Aug 2006, 16:26
von Uwe
Der Sysadmin sieht alles korrekt.
Die Rechte habe ich alle noch einmal überprüft und sollten so stimmen. Dort habe ich ja auch nichts verändert und vor dem Update lief es. Dennoch habe ich alle Rechte neu zugewiesen, leider ohne Erfolg. Wo kann ich noch nachsehen? Hilft Dir ein Zugang?
Viele Grüsse, Uwe
Verfasst: Fr 1. Sep 2006, 09:24
von Uwe
So, ich habe noch mal einiges versucht. Wenn ich beim Benutzer selbst die Mandanten und Sprachen angebe, dann funktioniert es. Wenn ich diese Einstellung bei der Gruppe vornehme, dann nicht. Jedenfalls, wenn ich mehr als einen Mandanten angebe.
Noch ne Idee?
Viele Grüsse, Uwe
Verfasst: Fr 1. Sep 2006, 09:35
von Dodger77
Uwe hat geschrieben:Noch ne Idee?
Habe ich gerade nachgestellt.
Gruppe hat Zugriff auf mehr als einen Mandanten. Mitglied der Gruppe kann keinen Mandanten auswählen, wenn es sich einloggt. Ist nur ein Mandant für die Gruppe zugeteilt, klappt es.
Ich vermute mal, das sollten wir nach Bugs schieben.
Verfasst: Fr 1. Sep 2006, 09:40
von Uwe
Ist das bei allen 4.6.8 Versionen so?
Verfasst: Fr 1. Sep 2006, 10:50
von emergence
ich habs mal verschoben...
Verfasst: Fr 1. Sep 2006, 10:56
von Dodger77
Beheben lies sich das bei durch Änderung der "conlib/perm.inc".
Code: Alles auswählen
/**
* isClientUser
* Checks if the given user has access permission for a client
*
* @param integer $iClient idclient to check
* @param object $oUser User object to check against
*/
function isClientUser ($iClient, $oUser)
{
$oUser = $this->_checkUserObject($oUser);
$aPermissions = explode(",", $oUser->getField("perms"));
if (in_array("client[$iClient]", $aPermissions))
{
return true;
}
return false;
}
ändern in
Code: Alles auswählen
/**
* isClientUser
* Checks if the given user has access permission for a client
*
* @param integer $iClient idclient to check
* @param object $oUser User object to check against
*/
function isClientUser ($iClient, $oUser)
{
$oUser = $this->_checkUserObject($oUser);
$aPermissions = explode(",", $oUser->getField("perms"));
if (in_array("client[$iClient]", $aPermissions))
{
return true;
}
$groups = $this->getGroupsForUser($oUser->getField("user_id"));
if (is_array($groups))
{
foreach ($groups as $group)
{
$oGroup = new Group;
$oGroup->loadGroupByGroupID($group);
$aPermissions = explode(",", $oGroup->getField("perms"));
if (in_array("client[$iClient]", $aPermissions))
{
return true;
}
}
}
return false;
}
Verfasst: Mo 2. Okt 2006, 15:07
von HerrB
Im CVS bereits gefixt (4fb), jedoch an anderer Stelle:
Code: Alles auswählen
function hasClientPermission ($iClient = false, $oUser = false)
{
global $auth;
if ($iClient === false)
{
global $client;
$iClient = $client;
}
$oUser = $this->_checkUserObject($oUser);
if ($this->isSysadmin($oUser) || $this->isClientAdmin($iClient, $oUser) || $this->isClientUser($iClient, $oUser))
{
return true;
} else {
#Check clients' rights of users' group(s)
$aGroups = $this->getGroupsForUser($auth->auth["uid"]);
if (is_array($aGroups))
{
foreach ($aGroups as $group)
{
$oGroup = new Group;
$oGroup->loadGroupByGroupID ($group);
if ($this->isClientGroup($iClient, $oGroup))
{
return true;
}
}
}
return false;
}
}
Done.
Gruß
HerrB