bedeutung der spalten in tab. frontendpermissions?

Gesperrt
knb
Beiträge: 224
Registriert: Fr 9. Sep 2005, 14:03
Wohnort: Potsdam
Kontaktdaten:

bedeutung der spalten in tab. frontendpermissions?

Beitrag von knb »

Ich vermute ich, muss noch was in Tabelle frontendpermissions eintragen. Aber was gehört da bloss rein? Siehe SQL Kommetare, bitte ergänzen

Code: Alles auswählen

CREATE TABLE `con_frontendpermissions` (
  `idfrontendpermission` int(10) NOT NULL ,  -- anonymer PK
  `idfrontendgroup` int(10) NOT NULL ,     --FK zu Tab con_frontendgroups
  `idlang` int(10) NOT NULL ,           --FK zu Tab. con_lang ??
  `plugin` varchar(255) NOT NULL ,     -- hier steht stets "category", gibts auch andere möglcihkeiten?
  `action` varchar(255) NOT NULL ,     --access oder __GLOBAL__  ...??? 
  `item` varchar(255) NOT NULL        ---?? eine category id, oder was? Ein FK? Aber warum ist die Spalte dann varchar(255)? Altlast von 4.4?
)
FK = Foreign Key


Einige Beispielwerte damit es deutlicher wird.

Code: Alles auswählen

idfrontendpermission   	 idfrontendgroup   	 idlang   	 plugin   	 action   	 item
14 	12 	128 	category 	access 	1823
17 	12 	128 	category 	access 	1910
18 	12 	128 	category 	access 	1912

Was bedeutet "item"?
Was bedeutet "__GLOBAL__" denn genau? Ich denke mal es wird gemappt auf folgende Checkbox ...
im Menu ...

"Administration/Frontend/FEGruppen/Category "

auf der Webseite

"Rechte für Plugin 'Category'"

zur Checkbox

Globale Rechte
Access category




Wenn dem so sein sollte, dann hätte ich noch ein paar Fragen:

Was bedeutet "Globale Rechte" eigentlich genau? Was soll diese Checkbox überhaupt?
Gruss,
Knut
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ähm, vielleicht zäumst Du gerade das Pferd von der falschen Seite auf. Wirf' doch mal einen Blick in contenido/plugins/frontendlogic und plugins/chains/includes - da sollte sich eigentlich Code befinden, der das wie und warum erklärt.

Ansonsten:
Wie überall kommt die idfrontendpermission aus der con_sequence,
yep, idlang ist für lang (da ein Element nur in einer Sprache existieren könnte),
plugin entspricht dem Verweis auf das Plugins-Verzeichnis (siehe oben),
action ist - hier - wie von Dir beschrieben,
item - wie auch action - kann unterschiedliche Informationen aufnehmen (eine Permission für einen Frontend-Nutzer für irgendwas, z.B. "Tralalala" oder eine Kategorie-ID oder ...)

Wenn Du einen Blick in Administration -> Frontend -> Frontend-Groups wirfst (eine Kategorie anklicken, dann rechts auf Menü Category), solltest Du den Eintrag "Global" sehen - bedeutet einfach, dass ein Nutzer auf alle Elemente berechtigt ist (wenn es also 10 geschützte Kategorien gibt, kann die Gruppe mit einem Klick dafür berechtigt werden).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
knb
Beiträge: 224
Registriert: Fr 9. Sep 2005, 14:03
Wohnort: Potsdam
Kontaktdaten:

Beitrag von knb »

Ich wollte es nur mal genau wissen, und von (halb-)offizieller Seite erfahren.
Es gab in diesem Forum bisher kaum Postings zu dieser Tabelle frontendpermissions.

Ich habe ja letztens 2000 user in 30 gruppen importiert, nun gilt es eventuell noch per SQL gewisse "lokale" und auch möglw. globale Rechte zu setzen.
Interaktiv durch Rumklicken im Backend ist das für so viele User kaum noch möglich.

Globale Rechte zu setzen ... ist eigentlich irgendwie unintuitiv.
Wenn man das für jede Gruppe setzen kann, dann muss man später jedesmal alle Gruppen durchgehen und gucken, wo die "Globale Rechte" Checkbox gesetzt ist.

Sollte es nicht eher eine und nur eine FE-Gruppe "Global" geben, die dann auf alle geschützten Kategorien zugreifen kann?
Naja, so eine Gruppe kan nman sich ja selbst einrichten. :D
Und sollte dann dafür sorgen dass "Global" sonst nirgendwo gesetzt ist.

Potentieller Feature request:
Ausserdem bräuchte man m.E. in den Seiten mit den Frontendusern noch eine kompaktere Darstellung mit Antwort auf die Fragen:

"Zu welchen Gruppen gehört dieser FE User? Auf welche Kategorien und Artikel hat dieser FEUser Zugriff?"

"Gehört dieser FEUser zu einer Gruppe die "Globale Rechte" hat und auf alle geschützten Kategorien zugriff hat?"

Solche Fragen kann ich mir mit SQL selbst beantworten, klar.
Aber dazu muss man erst mal wissen wie Tabelle frontendpermissions definiert ist.

Gut wäre es dies gleich im Backend sehen zu können. Oder gibts das schon?
Vielleicht bastel ich mal einen Screenshot wie ich ir das vorstelle. Mal sehen.
Gruss,
Knut
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

knb hat geschrieben:Ich habe ja letztens 2000 user in 30 gruppen importiert, nun gilt es eventuell noch per SQL gewisse "lokale" und auch möglw. globale Rechte zu setzen.
Interaktiv durch Rumklicken im Backend ist das für so viele User kaum noch möglich.
Na ja, Du hast ja schon erfahren, wie ein User in eine Gruppe aufgenommen werden kann (technisch gesehen). Im Backend ist das - wie bereits erwähnt - für eine hohe Anzahl an Nutzern zur Zeit kaum brauchbar.

Aber wenn die Nutzer drin sind, musst Du - in Deinem Beispiel - 30 Gruppen konfigurieren. Halte ich für vertretbar.
Wenn man das für jede Gruppe setzen kann, dann muss man später jedesmal alle Gruppen durchgehen und gucken, wo die "Globale Rechte" Checkbox gesetzt ist.
Ja ... und? Tatsächlich führt eine aktivierte Global-Checkbox IMHO nur dazu, dass für alle Kategorien beim Speichern berechtigt wird (ich kann mich irren). Und selbst wenn, Contenido kürmmert sich doch drum... :roll:
Sollte es nicht eher eine und nur eine FE-Gruppe "Global" geben, die dann auf alle geschützten Kategorien zugreifen kann?
Ich sage jetzt mal nö, der jetzige Ansatz ist flexibler, damit besser. Über die Bezeichnung "Global" kann man sich unterhalten...
Und sollte dann dafür sorgen dass "Global" sonst nirgendwo gesetzt ist.
Sehe jetzt nicht so den entscheidenden Vorteil.
Potentieller Feature request:
...
1. "Zu welchen Gruppen gehört dieser FE User?
Ja, wäre auch einfach zu bewerkstelligen.
2. "Auf welche Kategorien und Artikel hat dieser FEUser Zugriff?"
Bekannt und bereits beim letzten Communido-Treffen angeregt. Auf Artikel kann man nicht berechtigen, daher auf alle Artikel in der Kategorie - anzeigen würde ich sie aber nicht, das sollte aus der Kategorie-Bezeichnung hervorgehen.
3. "Gehört dieser FEUser zu einer Gruppe die "Globale Rechte" hat und auf alle geschützten Kategorien zugriff hat?"
Sehe jetzt nicht so den entscheidenden Vorteil. Ob global oder nicht, entscheidend ist, dass er auf eine Kategorie berechtigt ist - und die Frage würde mir das vorherige Feature liefern.
Solche Fragen kann ich mir mit SQL selbst beantworten, klar.
Nö, die Frage, in welchen Gruppen ein Nutzer enthalten ist, kann ich auch ohne weiteres über vorhandene Contenido-Objekte beantworten. Für die anderen Fragen weiss ich gerade nicht, ob die Funktionen der Objekte ausreichend sind, da müsste man ggf. noch nachbessern.
Aber dazu muss man erst mal wissen wie Tabelle frontendpermissions definiert ist.
Das ist logisch. Wenn Du die Funktionalität des Kernsystems ändern/erweitern willst, musst Du wissen, welche Objekte es gibt, wie sie funktionieren und ggf. auch, wie die Daten gespeichert werden. Ich wüsste jetzt nicht, wie es anders geht (mal abgesehen davon, dass wenig Dokumentation verfügbar ist).
Oder gibts das schon?
Nein.
Vielleicht bastel ich mal einen Screenshot wie ich ir das vorstelle.
Och, gar nicht nötig. Die Spezifikation ist ausreichend und teilweise bekannt. Wenn Du 2. entsprechend des vorhandenen Code-Designs programmierst, mache ich 1.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
knb
Beiträge: 224
Registriert: Fr 9. Sep 2005, 14:03
Wohnort: Potsdam
Kontaktdaten:

Beitrag von knb »

Ich habe mir das gestern in SQL beantwortet. Komme nicht dazu mir das in Modulen zuprogrammieren, aber vielleicht kann es ja irgendwer trotzdem gebrauchen:

Zu welchen Gruppen gehört dieser FE User?

Code: Alles auswählen


SELECT
	DISTINCT
	con_frontendusers.username
	,con_frontendusers.idfrontenduser
	,con_frontendgroups.groupname
	,If(item = "__GLOBAL__"
	,"x"
	,Null) AS GLOBAL 
FROM
	(((con_frontendgroupmembers 
	INNER JOIN con_frontendgroups ON con_frontendgroupmembers.idfrontendgroup = con_frontendgroups.idfrontendgroup) 
	INNER JOIN con_frontendpermissions ON con_frontendgroups.idfrontendgroup = con_frontendpermissions.idfrontendgroup) 
	INNER JOIN con_frontendusers ON con_frontendgroupmembers.idfrontenduser = con_frontendusers.idfrontenduser) 
	INNER JOIN con_clients ON con_frontendgroups.idclient = con_clients.idclient 
WHERE
	(((con_clients.name)="YOUR_CLIENT_NAME")) 
ORDER BY
	con_frontendusers.username;
 

Ergebnis

Code: Alles auswählen

username  idfrontenduser  groupname       GLOBAL
AA    2161    mitarb  
BP      4       mitarb  
CC      10      mitarb  
ch      17      Adm     x
JK      6       mitarb  
JL      12      mitarb  
knbf    16      mitarb  
knbf    16      Adm     x
LW      7       mitarb  
RC      5       mitarb  
RC      5       Adm     x
RE      11      mitarb  
TW      8       mitarb  
UH      9     mitarb  



"Auf welche Kategorien hat dieser FEUser Zugriff?"

Code: Alles auswählen

SELECT
        con_frontendusers.username
        ,con_frontendgroups.groupname
        ,con_frontendpermissions.action
        ,con_frontendpermissions.item
        ,con_cat_lang.name 
FROM
        ((((con_frontendgroupmembers 
        INNER JOIN con_frontendgroups ON con_frontendgroupmembers.idfrontendgroup = con_frontendgroups.idfrontendgroup) 
        INNER JOIN con_frontendpermissions ON con_frontendgroups.idfrontendgroup = con_frontendpermissions.idfrontendgroup) 
        INNER JOIN con_frontendusers ON con_frontendgroupmembers.idfrontenduser = con_frontendusers.idfrontenduser) 
        INNER JOIN con_clients ON con_frontendgroups.idclient = con_clients.idclient) 
        INNER JOIN con_cat_lang ON con_frontendpermissions.item = con_cat_lang.idcat  
WHERE
        (((con_frontendpermissions.item)<>"__GLOBAL__") 
        AND ((con_clients.name)="icdp"))
        
ORDER BY 
        con_frontendusers.username
        ,con_frontendgroups.groupname
        ,con_cat_lang.name ; 
Ergebnis

Code: Alles auswählen


-------------+-----------+--------+------+----------------+
| username    | groupname | action | item | name           |
+-------------+-----------+--------+------+----------------+
| BP   | mitarb       | access | 1914  | 13D Model       |
| BP   | mitarb       | access | 1823  | Bayern |
| BP   | mitarb       | access | 1920  | TheNews      |
| BP   | mitarb       | access | 1916  | Internal Data  |
| BP   | mitarb       | access | 1912  | Jobs           |
| BP   | mitarb       | access | 1910  | XXXX     |
| BP   | mitarb       | access | 1924  | People     |
| CC    | mitarb       | access | 1914  | 13D Model       |
| CC    | mitarb       | access | 1823  | Bayern |
| CC    | mitarb       | access | 1920  | TheNews      |
| CC    | mitarb       | access | 1916  | Internal Data  |
| CC    | mitarb       | access | 1912  | Jobs           |
| CC    | mitarb       | access | 1910  | XXXX     |
| CC    | mitarb       | access | 1924  | People     |
| JK      | mitarb       | access | 1914  | 13D Model       |
| JK      | mitarb       | access | 1823  | Bayern |
| JK      | mitarb       | access | 1920  | TheNews      |
| JK      | mitarb       | access | 1916  | Internal Data  |
| JK      | mitarb       | access | 1912  | Jobs           |
| JK      | mitarb       | access | 1910  | XXXX     |
| JK      | mitarb       | access | 1924  | People     |
| JL | mitarb       | access | 1914  | 13D Model       |
| JL | mitarb       | access | 1823  | Bayern |
| JL | mitarb       | access | 1920  | TheNews      |
| JL | mitarb       | access | 1916  | Internal Data  |
| JL | mitarb       | access | 1912  | Jobs           |
| JL | mitarb       | access | 1910  | XXXX     |
| JL | mitarb       | access | 1924  | People     |
| knb    | mitarb       | access | 1914  | 13D Model       |
| knb    | mitarb       | access | 1823  | Bayern |
| knb    | mitarb       | access | 1920  | TheNews      |
| knb    | mitarb       | access | 1916  | Internal Data  |
| knb    | mitarb       | access | 1912  | Jobs           |
| knb    | mitarb       | access | 1910  | XXXX     |
| knb    | mitarb       | access | 1924  | People     |
| LW | mitarb       | access | 1914  | 13D Model       |
| LW | mitarb       | access | 1823  | Bayern |
| LW | mitarb       | access | 1920  | TheNews      |
| LW | mitarb       | access | 1916  | Internal Data  |
| LW | mitarb       | access | 1912  | Jobs           |
| LW | mitarb       | access | 1910  | XXXX     |
| LW | mitarb       | access | 1924  | People     |
| RC      | mitarb       | access | 1914  | 13D Model       |
| RC      | mitarb       | access | 1823  | Bayern |
| RC      | mitarb       | access | 1920  | TheNews      |
| RC      | mitarb       | access | 1916  | Internal Data  |
| RC      | mitarb       | access | 1912  | Jobs           |
| RC      | mitarb       | access | 1910  | XXXX     |
| RC      | mitarb       | access | 1924  | People     |
| RE  | mitarb       | access | 1914  | 13D Model       |
| RE  | mitarb       | access | 1823  | Bayern |
| RE  | mitarb       | access | 1920  | TheNews      |
| RE  | mitarb       | access | 1916  | Internal Data  |
| RE  | mitarb       | access | 1912  | Jobs           |
| RE  | mitarb       | access | 1910  | XXXX     |
| RE  | mitarb       | access | 1924  | People     |
| TW    | mitarb       | access | 1914  | 13D Model       |
| TW    | mitarb       | access | 1823  | Bayern |
| TW    | mitarb       | access | 1920  | TheNews      |
| TW    | mitarb       | access | 1916  | Internal Data  |
| TW    | mitarb       | access | 1912  | Jobs           |
| TW    | mitarb       | access | 1910  | XXXX     |
| TW    | mitarb       | access | 1924  | People     |
| UH      | mitarb       | access | 1914  | 13D Model       |
| UH      | mitarb       | access | 1823  | Bayern |
| UH      | mitarb       | access | 1920  | TheNews      |
| UH      | mitarb       | access | 1916  | Internal Data  |
| UH      | mitarb       | access | 1912  | Jobs           |
| UH      | mitarb       | access | 1910  | XXXX     |
| UH      | mitarb       | access | 1924  | People     |
+-------------+-----------+--------+------+----------------+


Gruss,
Knut
Gesperrt