UMGT - Gruppen, Rollen, AppProxy usw.

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von Coach83 » 10.03.2014, 16:40:43

Hallo zusammen,

ich versuche mich gerade am UMGT.
Dabei hab ich aber so meine Probleme - Christian vllt könntest Du mir das mal genauer erklären.

Folgende Bilder sollen meinen bisherigen Versuch darstellen:
http://www.my-society.de/Groups.jpg
http://www.my-society.de/Role.jpg
http://www.my-society.de/Proxy.jpg
http://www.my-society.de/Permission.jpg

Ich verstehe jetzt aber nicht so ganz, wann ich eine Permission und wann eine Sichtbarkeit definieren soll.
Ich könnte doch theoretisch die Sichtbarkeit ebenfalls über eine Permission steuern, oder liege ich da falsch?

Und warum muss ich eine spezielle ID für ein Sichtbarkeits-Objekt angeben? Soll ich dann quasi einem Benutzer NUR den Artikel 123 sichtbar schalten?
Letzte Frage: Warum gibt es dann bei den Sichtbarkeiten wiederum die Möglichkeit Lese-, Schreib-, Beziehungs- und Löschberechtigungen zu vergeben? Sind das keine Permissions ?!

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von dr.e. » 10.03.2014, 23:58:02

Hallo Coach,

hast du dir schon mal viewtopic.php?f=1&t=5382 angesehen? Vielleicht helfen meine Beträge dort. Schaue mir auf jeden Fall aber noch deine Grafiken an. Ist nur heute schon spät... ;)
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von dr.e. » 11.03.2014, 00:13:57

Vielleicht noch zwei Sätze zu deinem Setup:
Ich verstehe jetzt aber nicht so ganz, wann ich eine Permission und wann eine Sichtbarkeit definieren soll.
Ich könnte doch theoretisch die Sichtbarkeit ebenfalls über eine Permission steuern, oder liege ich da falsch?
Permissions nutzt du dann, wenn es um die Erteilung einer Erlaubnis geht, mit einem Objekt etwas anzustellen. Die Sichtbarkeitsberechtigung kannst du nutzen um einem Benutzer/einer Gruppe ein Objekt überhaupt erst anzuzeigen. Ich weiß, dass das nicht ganz Redundanz-frei implementiert ist, denn du kannst mit den Sichtbarkeitsberechtigungen z.B. auch Schreibrechte auf ein Objekt erteilen. Es ist daher eine gute Idee zunächst ausschließlich mit Sichtbarkeitsberechtigungen zu arbeiten und wenn diese nicht ausreichen dann das Setup um die Permissions zu erweitern.

Beispiel: wenn du einem Benutzer Schreibrechte einräumst, es aber Benutzer gibt, die nur den Text einer News ändern dürfen und andere auch den Titel, dann kannst du das mit Sichtbarkeitsberechtigungen alleine nicht mehr definieren - hier fehlt dir einfach eine weitere Qualität. Hier kommen dann die Funktionsberechtigungen ins Spiel.
Und warum muss ich eine spezielle ID für ein Sichtbarkeits-Objekt angeben? Soll ich dann quasi einem Benutzer NUR den Artikel 123 sichtbar schalten?
Sichtbarkeitsberechtigungen erteilst du auf konkrete Objekte deiner Anwendung. Das ist i.d.R. eine Datenbank-ID in deiner Anwendung. Die Sichtbarkeitsberechtigungs-Typen dienen dazu, Objekte einfacher selektieren zu können - z.B.: gib mir eine Liste von News-Einträgen, die ein Benutzer sehen/bearbeiten/etc. darf. Ohne Typ ist das nicht so einfach und v.a. nicht so performant möglich.
Letzte Frage: Warum gibt es dann bei den Sichtbarkeiten wiederum die Möglichkeit Lese-, Schreib-, Beziehungs- und Löschberechtigungen zu vergeben? Sind das keine Permissions ?!
Jein. An sich sind das "reine" Sichtbarkeits-Merkmale, die sich etwas mit "einfachen"/ein-dimensionalen Permissions vermischen. Effektiv kannst du das Konzept mit einem LINUX-File-Systen vergleichen, dort hast du neben "r" auch ein "w" und ein "x" (neben weiteren Spezial-Flags) für eine Datei definiert.

Hoffe das hilft dir schon mal weiter! :)
Viele Grüße,
Christian

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von Coach83 » 11.03.2014, 07:22:26

Danke schon mal für Deine Antwort.Ich werde dann zunächst einmal nur mit den Sichtbarkeitsberechtigungen arbeiten, wie Du vorgeschlagen hast.
Ich hab allerdings noch eine Frage - das wurde nicht so klar:
Ich muss doch bei diesen Berechtigungen eine eindeutige ID vergeben. In meinem Fall dann für den Sichtbarkeits-Typ "Article" die ArticleID.

Wie löse ich das aber, dass ich Chefredakteuren z.B. alle Artikel freigebe (zum Bearbeiten, Löschen und Editieren), anderen Redakteuren aber nur deren eigene Artikel (Zum Bearbeiten und Editieren)?

Und zu dem Linux File-System: Da nennt man das Ganze aber auch File-Permissions ;-)

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von dr.e. » 11.03.2014, 11:33:55

Hallo Coach,
Ich hab allerdings noch eine Frage - das wurde nicht so klar:
Ich muss doch bei diesen Berechtigungen eine eindeutige ID vergeben. In meinem Fall dann für den Sichtbarkeits-Typ "Article" die ArticleID.
Korrekt.
Wie löse ich das aber, dass ich Chefredakteuren z.B. alle Artikel freigebe (zum Bearbeiten, Löschen und Editieren), anderen Redakteuren aber nur deren eigene Artikel (Zum Bearbeiten und Editieren)?
Du kannst in den Sichtbarkeitsberechtigungs-Tabellen mehrere Referenzen auf deinen Artikel anlegen. In diesem Fall: einen für Chefredakteure und einen für Redakteure. Den jeweiligen Instanzen der Sichtbarkeitsberechtigung gibst du dann je Anwendungsfall die entsprechenden Berechtigungen.
Viele Grüße,
Christian

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von Coach83 » 11.03.2014, 15:39:58

dr.e. hat geschrieben:Hallo Coach,
Ich hab allerdings noch eine Frage - das wurde nicht so klar:
Ich muss doch bei diesen Berechtigungen eine eindeutige ID vergeben. In meinem Fall dann für den Sichtbarkeits-Typ "Article" die ArticleID.
Korrekt.
Dann find ich diese Sichtbarkeitsberechtigungen unpassend für meinen Anwendungsfall?! Dann muss ich doch für jeden NEUEN Artikel erst definieren, wer den sehen oder ändern darf und kann nicht von vorne herein sagen, dass die Rolle Chefredakteur alles darf und der Redakteur halt nicht.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von dr.e. » 11.03.2014, 18:58:47

Hallo Coach,
Dann find ich diese Sichtbarkeitsberechtigungen unpassend für meinen Anwendungsfall?! Dann muss ich doch für jeden NEUEN Artikel erst definieren, wer den sehen oder ändern darf und kann nicht von vorne herein sagen, dass die Rolle Chefredakteur alles darf und der Redakteur halt nicht.
Die Sichtbarkeitsberechtigung wird grundsätzlich immer pro Artikel angelegt. Bedeutet: nach dem Speichern legst du eine neue Sichtbarkeitsberechtigung an und weist dieser die entsprechenden Benutzer oder Gruppen zu. In deinem Fall legst du zwei Instanzen an und weist diesen jeweils deine Gruppen Chefredakteur und Redakteur zu. Der ersten Instanz gibst du mehr Rechte als der zweiten und damit ist dein Anwendungsfall abgedeckt.

Das scheint natürlich erst mal mehr Arbeit, effektiv schreibst du den Code jedoch immer nur einmal. Die Magic passiert dann im Hintergrund und der Benutzer bekommt davon nichts mit. Manuell musst du dann nichts mehr in der Admin-GUI des UMGT anlegen - das wäre tatsächlich umständlich. ;) Brauchst du dazu ein Code-Beispiel oder ist die API soweit klar?
Viele Grüße,
Christian

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von Coach83 » 11.03.2014, 23:46:57

D.h. ich erstelle momentan überhaupt keine Sichtbarkeitsberechtigung - sondern erst beim Erstellen eines Artikels. Ich dachte zu Beginn, dass ich diese Berechtigungen vorher anlege.
JETZT hab ich das System verstanden ^^. Danke!

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von dr.e. » 12.03.2014, 00:58:15

D.h. ich erstelle momentan überhaupt keine Sichtbarkeitsberechtigung - sondern erst beim Erstellen eines Artikels.
Korrekt! Wenn du die vorher anlegst, repräsentieren sie ja quasi nichts...
JETZT hab ich das System verstanden ^^. Danke!
Sehr schön, freut mich! :D
Viele Grüße,
Christian

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von Coach83 » 12.03.2014, 07:31:05

Moin,
ich kenne das aber aus anderen CMS: Da kann ich einer Rolle z.B. vorher die Berechtigung einräumen Artikel zu erstellen und zu bearbeiten, einer anderen dann diese zu veröffentlichen.
Damit werden dann nachfolgend alle Artikel mit diesen Berechtigungen erstellt.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von dr.e. » 12.03.2014, 08:42:54

Hallo Coach,

das kenne ich so auch - sowohl mit Gruppen als auch mit Rollen. In Endeffekt besteht jedoch kein Unterschied zwischen dem UMGT und dem was du kennst, denn in jedem Fall legst du Benutzer, Rolle oder Gruppe vor dem Artikel an und die Artikel-Anlage selbst sorgt dann dafür, dass die richtigen Benutzer, Gruppen oder Rollen zu gewiesen werden. Letzteres steckt immer im Applikations-Code bzw. im Modul-Code der Artikel-Verwaltung.

Bei einem fertigen CMS siehst du das nicht und kommst mit Code auch nicht in Berührung. Grund dafür ist, dass dort die Benutzer-Verwaltung meist direkt in den Core verwoben ist. Das UMGT des APF dagegen ist ein alleinstehendes Modul, das "nur" Schnittstellen bereitstellt, an die du eine Applikation andocken kannst. Effektiv ist das Vorgehen aber identisch.
Viele Grüße,
Christian

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von Coach83 » 12.03.2014, 15:05:40

Das stimmt - hab es jetzt auch verstanden.
Eine letzte Frage: Warum kann ich keine Rolle zur Sichtbarkeit verknüpfen?

Du hattest mich mal darin bestätigt, dass man Gruppen zb: für normale Mitglieder und zahlende Mitglieder erstellen könnte - und denen dann die Rollen Redakteur, Chefredakteur oder z.B. Fotograf. Dann müsste ich doch die Rollen mit den Sichtbarkeiten verknüpfen.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von dr.e. » 12.03.2014, 23:40:25

Hallo Coach,
Eine letzte Frage: Warum kann ich keine Rolle zur Sichtbarkeit verknüpfen?
Rollen verweisen auf Funktionsberechtigungen und gruppieren mehrere (Funktions-)Permissions. Insofern macht es wenig Sinn, hier eine Rolle zuzuweisen. Was du möchtest, ist eine Sammlung von Personen an eine Sichtbarkeitsberechtigung binden - hier ist also eine Gruppe genau das richtige Mittel. Oder einfacher gesagt: Rollen gruppieren Permissions, Gruppen deine Benutzer.
Du hattest mich mal darin bestätigt, dass man Gruppen zb: für normale Mitglieder und zahlende Mitglieder erstellen könnte - und denen dann die Rollen Redakteur, Chefredakteur oder z.B. Fotograf. Dann müsste ich doch die Rollen mit den Sichtbarkeiten verknüpfen.
In diesem Fall - wir gehen davon aus, dass du deine Applikation auf Sichtbarkeitsberechtigungen aufbaust - nutzt du Gruppen. Wird innerhalb einer Gruppe nochmal eine Spezialisierung der Berechtigung benötigt, kannst du immer noch zusätzlich(!) Rollen mit entsprechenden Permissions einsetzen.

Warum ich das damals gesagt habe ist einfach zu erklären: ich bin davon ausgegangen, dass es sinnvoll ist, deinen Anwendungsfall auf Basis von Permissions/Rollen aufzubauen. Nach der akuellen Diskussion sehe ich Sichtbarkeitsberechtigungen jedoch als die bessere Wahl an.
Viele Grüße,
Christian

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von Coach83 » 13.03.2014, 07:47:07

Gut, dann werde ich das so versuchen. Vielen Dank für Deine, wie immer, ausführliche Antwort :!: :!: :!:

Coach83
Beiträge: 271
Registriert: 13.05.2010, 17:33:12
Kontaktdaten:

Re: UMGT - Gruppen, Rollen, AppProxy usw.

Beitrag von Coach83 » 17.03.2014, 16:24:54

Hi! Ich hab nochmal ne Frage dazu und bräuchte n kleines Codebeispiel.
Chefredakteure und Administratoren haben Vollzugriff auf einen Artikel:

Code: Alles auswählen

$articleList = $aM->getPagedArticleList('', null, '', 'ASC', array(), null);
        foreach ($articleList AS $myarticle) {
            $type = new UmgtVisibilityDefinitionType();
            $type->setObjectId('1'); // 1 = Article
            // Admins
            $groups = array();
            $group = new UmgtGroup();
            $group->setObjectId('4');
            $groups[] = $group;

            $definition = new UmgtVisibilityDefinition();
            $definition->setAppObjectId($myarticle->getObjectId());
            $definition->setReadPermission(1);
            $definition->setWritePermission(1);
            $definition->setLinkPermission(1);
            $definition->setDeletePermission(1);
            $uM->createVisibilityDefinition($type, $definition, array(), $groups);

            // Chefredakteure
            $groups2 = array();
            $group2 = new UmgtGroup();
            $group2->setObjectId('1');
            $groups2[] = $group2;

            $definition2 = new UmgtVisibilityDefinition();
            $definition2->setAppObjectId($myarticle->getObjectId());
            $definition2->setReadPermission(1);
            $definition2->setWritePermission(1);
            $definition2->setLinkPermission(1);
            $definition2->setDeletePermission(1);
            $uM->createVisibilityDefinition($type, $definition, array(), $groups2);
        }
 
Soweit klar.
Aber jetzt möchte ich noch allen Redakteuren, die Zugriff auf die Artikelkategorie haben, Zugriff gewähren.
Dazu müsste ich zuerst die Kategorie(n) des Artikels laden, dann die Gruppe der Redakteure aus dieser Kategorie und anschließend die Beziehung zwischen dieser Gruppe und dem Artikel herstellen. Hab das versucht, kam aber nicht wirklich vorwärts. Ist der Ansatz so richtig?

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast