Foren

Datei Permissions über Webservice-API auslesen

Ricco Serfling, geändert vor 11 Jahren.

Datei Permissions über Webservice-API auslesen

New Member Beiträge: 2 Beitrittsdatum: 25.02.13 Neueste Beiträge
Hallo,
ich schreibe einen Indexierungsdienst der Liferay Daten über die Webservice API indexiert. Dabei sollen die Rechte aus Liferay übernommen werden, d.h wenn Nutzer X im Liferay die Datei A sehen darf aber die nicht Datei B, sollen diese Beschränkungen auch über den Indexierungsdienst wirken. Die Rechte müssen hierbei schon zur Indexierungszeit augelesen werden. Weiterhin lese ich die Daten über einen Admin Account aus, womit ich eigtlich auf alles Zugriff haben sollte.

Jetzt zum Problem:
Wie ich über die API an die Dateien und Nutzer komme ist mir klar, leider finde ich keine Möglichkeit die Permissions auszulesen.
Gibt es eine Möglichkeit die gesetzten Permissions für eine Datei remote auszulesen oder ist das einfach nicht in der API vorgesehen?

Danke
thumbnail
Olaf Kock, geändert vor 11 Jahren.

RE: Datei Permissions über Webservice-API auslesen

Liferay Legend Beiträge: 6403 Beitrittsdatum: 23.09.08 Neueste Beiträge
Da Rechte in Liferay stets über Rollen vergeben werden (die auch indirekt über Usergroups und Organisationen vergeben werden können) führt der Weg über diese: Der Inhalt wird für bestimmte Rollen verfügbar gemacht, Benutzer haben diese Rollen - explizit oder implizit.

Eine alternative Möglichkeit, die indizierung zu implementieren ist übrigens ein Hook, der direkt in die Indizierung eingreift. Dazu kommt der folgende Code in liferay-hook.xml

<indexer-post-processor>
    <indexer-class-name>com.liferay.portal.model.User</indexer-class-name>
    <indexer-post-processor-impl>com.example.hook.indexer.UserIndexerPostProcessor</indexer-post-processor-impl>
</indexer-post-processor>


Die zu implementierende Klasse erbt von com.liferay.portal.kernel.search.BaseIndexerPostProcessor, dann wird bei jedem Indizierungsvorgang eines Objektes der angegebenen Klasse der eigene Code aufgerufen. Allerdings löst das das zugrundeliegende Problem nicht - Obwohl ich die APIs nicht direkt genannt habe, hoffe ich, dass die Richtung für's erste hilft.
Ricco Serfling, geändert vor 11 Jahren.

RE: Datei Permissions über Webservice-API auslesen

New Member Beiträge: 2 Beitrittsdatum: 25.02.13 Neueste Beiträge
Danke ersteinmal für die Antwort.
Ich hätte vllt. noch anmerken sollen das Eingriffe/Modifikationen von Liferay auszuschließen sind, weswegen der Hook als Lösung von vornherein ausfällt.

Dass Liferay bei den Berechtigungen über Rollen arbeitet ist mir schon bewusst. Das Problem ist, dass ich über die DLFileEntrySoap keine Rollenberechtigungen erhalte und über die RoleSoap keine Dateien. Oder überseh ich da etwas?

Überdies scheint PermissionServiceSoap seit algorithm 6 obsolet zu sein, da hier Ressourcen verlangt werden.

Ich brauche auch nicht alle permissions,es reicht wenn ich herausbekomme wer Lesezugriff besitzt.