Sitemap soll Benuzterberechtigung überprüfen

Gesperrt
malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Sitemap soll Benuzterberechtigung überprüfen

Beitrag von malsdgtac »

Hallo,

Ich habe letzten schon länger gesucht, um eine Navigation zu finden, die alle Unterpunkte anzeigt, also nicht nur die des aktiven Navigationspunktes.

Nach meiner Recherche hier im Forum habe ich diese dann mit der Sitemap vpNavigation 0.2 umsetzt. Dies war meine Wahl, weil diese Sitemap schön mit verschachtelten Listen arbeitet, so wie ich es benötige.

Nun gibt es in dieser Navigation allerdings in einem internen Bereich angewendet, in dem nicht alle Benutzer alle Inhalte sehen dürfen. Diese können zwar den Inhalt nicht sehen, aber die Navigationspunkte. Dies hätte ich nun gerne unterbunden.

Daher meine Frage an euch - kennt ihr ein Navigationsmodul oder eine Sitemap, die meinen Anforderungen entsprechen könnte? Gerne kann ich z.B. die von mir vewendete Sitemap auch weiterentwickeln - gibt es Funktionen, die mir helfen könnten abzufragen, ob der Benutzer den entsprechenden Navigationspunkt sehen darf?

Vielen Dank für Eure Hilfe.
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Sitemap soll Benuzterberechtigung überprüfen

Beitrag von GaMbIt_ »

Jepp.. funktioniert..

Einfach mal nach auth suchen...
ich glaube auch dass

Code: Alles auswählen

if ($auth) {bla}
genügt...
Nützliche Contenido Infos gibts hier: Contenido Wiki
malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Re: Sitemap soll Benuzterberechtigung überprüfen

Beitrag von malsdgtac »

Danke für die Antwort - ich werde es nachher gleich mal ausprobieren.
malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Re: Sitemap soll Benuzterberechtigung überprüfen

Beitrag von malsdgtac »

So, hat ein paar Tage gedauert, und ging leider auch nicht so einfach. Aber ich habe eine Lösung gefunden. Abgeschaut habe ich mir eigentlich alles aus den Klassen des Beispielmandanten.

Für alle die es interssiert - hier eine kurze Anleitung zur Erweiterung der eigenen Navigation:

1. Erstellung der $oFrontendPermissionCollection - somit weiß man welcher Frontend-Gruppe der User angehört:

Code: Alles auswählen

$sFieldsToSelect = 'cattree.idcat, cattree.level, catlang.public, catlang.idcatlang';
// load needed classes
cInclude("classes","class.frontend.permissions.php");
cInclude("classes","class.frontend.groups.php");
cInclude("classes","class.frontend.users.php");
// load user's frontendgroups if any
if((strlen($auth->auth['uid']) > 0) && ($auth->auth['uid'] != 'nobody')) {
	$oFrontendGroupMemberCollection = new FrontendGroupMemberCollection();
	$oFrontendGroupMemberCollection->setWhere('idfrontenduser', $auth->auth['uid']);
	$oFrontendGroupMemberCollection->addResultField('idfrontendgroup');
	$oFrontendGroupMemberCollection->query();
	// Fetch all groups the user belongs to (no goup, one group, more than one group).
	$aFeGroups = array();
	while($oFEGroup = $oFrontendGroupMemberCollection->next()) {
		$aFeGroups[] = $oFEGroup->get("idfrontendgroup");
	}
	$iNumFeGroups = count($aFeGroups);
}
// initialize fe-permission object
$oFrontendPermissionCollection = new FrontendPermissionCollection();
2. Bei der Ausgabe der einzelnen Navigationspunkte folgendes ergänzen (Abfrage ob diese Gruppe auf die idcatlang zugreifen darf):

Code: Alles auswählen

if ($iNumFeGroups > 0) {
	for ($i = 0; $i < $iNumFeGroups; $i++) {					
    		if($oFrontendPermissionCollection->checkPerm($aFeGroups[$i], 'category', 'access', $menupunkt["idcatlang"], true)) {
			// hier dann die Ausgabe des Navigationspunktes!!!!
   			break;
   		}	
	}
}
Vielleicht kann ich ja jemanden damit weiterhelfen ;-)
Gesperrt