Seite 1 von 1

Modul zum Setzen von Backend-Berechtigungen?

Verfasst: Mi 28. Nov 2007, 13:57
von sprotte
Hallo,

wir haben einen "Hilfsadmin" der nicht auf die Symbolleisten-Punkt "administration" im Backend zugreifen soll.

Als "Hilfsadmin" soll er unter bestimmten User-Kategorien für User neue Unter-Kategorien erstellen und
deren Rechte festsetzen können.

Neue Kategorien kann er einrichten. (Rechte durch: Administration/Kategorie/neue Kategorie/dann die Kategorien auswählen).
Die Redakteure können aber nicht über die neuen Unter-Kategorien verfügen, die der "Hilfsadmin" gesetzt hat,
da die Rechte der Eltern-Kategorien für den User-Zugriff nicht weiterverebt werden.

Die User sind nicht in der Lage, sich ihre Unterkategorien selbst zu erstellen.

Kennt einer ein Modul/Plugin etc., in dem Rechte für Katgorien von so einem "Hilfsadmin" gesetzt werden können?
Wie würdet ihr so etwas regeln?


Ich brauche Hilfe!
Marie

Verfasst: Mi 28. Nov 2007, 14:58
von emergence
Wie würdet ihr so etwas regeln?
ansatzpunkt ist im dem fall die functions.rights.php

das müsste dort so geändert werden, dass alle rechte für alle user weiterkopiert werden...
momentan werden alle rechte des aktuellen users/gruppe weiter kopiert...

ein schnellerer weg das sonst irgendwie zu implementieren fällt mir momentan nicht ein...

Im Moment ist mir einiges zu hoch!

Verfasst: Do 29. Nov 2007, 20:50
von sprotte
@emergence Danke für Deine schnelle Antwort.

Da ich von der Rechte-Programmierung no Ahnung habe und bisher nur so schlecht wie Recht contenido-module erfolgreich angepaßt oder erweitert habe, ist der von Dir vorgeschlagene Weg zunächst für mich eine Kragenweite zu groß.
Ohne Hilfe werde ich das wohl nicht raffen. Aber jeder fängt klein an.

Ich habe mich in der functions.rights.php umgesehen und folgende Funktion ausgeguckt:

Code: Alles auswählen

 function copyRightsForElement ($area, $iditem, $newiditem, $idlang=false) {
.
.
.
  $userIDContainer = $perm->getGroupsForUser($auth->auth["uid"]); // add groups if available


   $userIDContainer[] = $auth->auth["uid"]; // add user_id of current user
Ich meine nun, Änderungen an der Zeile

$userIDContainer[] = $auth->auth["uid"]; // add user_id of current user

vornehmen zu sollen. Diese Zeile berücksicht ja nur den aktuellen User des Containers und ich brauche in meinem Fall alle User der Gruppen.

Apropro, was ist denn hier mit Container gemeint? Die aktuelle Kategorie?? Die Kategorie wird doch wohl durch $iditem ausgedrückt.
Rechte werden in der Contenido-Rechtevergabe für einzelne Kategorien vergeben, nicht für die Container in den Artikeln.

Rätsel, rätsel
1. Zeile
Ich speichere in das array "$userIDContainer" alle Berechtigungen der groups, in der sich der aktuelle User befindet ,

2. Zeile
ich füge dem array die Userid als neues Glied hinzu.

Da packe ich ja Äpfel mit Birnen zusammen?

Wieso heißt es in der zweiten Zeile nicht so etwas ähnliches wie
$userIDContainer[] = $perm->getUser($auth->auth["uid"]);

@emergence, @alle
Könnt Ihr mir vielleicht da auf die Sprünge helfen?

Danke im Voraus
Marie

Verfasst: Mo 3. Dez 2007, 09:03
von emergence
zu deiner frage mit äpfel und birnen...
nicht wirklich, in der rechte tabelle werden sowohl die gruppen als auch die user mit dem md5 hash gespeichert...
zu beginn der funktion werden alle md5 hashes (also wo der user mitglied ist und seine eigene) in $userIDContainer gespeichert...
danach wird eine selektion aller rechte nach dieser enthaltenen userIds vorgenommen und die rechte in der db tabelle ergänzt...

beim duplizieren der rechte also bei der von dir angesprochen funktion, sehe ich in dem sinne noch keine schwierigkeit den entsprechenden sql teil einfach zu entfernen... also das:

Code: Alles auswählen

AND {$where_users}
geändert werden müsste auch die createRightsForElement
wie sich da die entfernung des selben teils auswirkt kann ich nicht sagen...
diese änderung ist nicht getestet und meinerseits ohne tests nicht empfohlen... kann auch sein das die rechte vergabe dann kompletter schrott ist...