2016-12-08 4 views
0

Ich habe eine Klasse in Java mit einigen Informationen, wie UserId, CompanyId und JournalArticle. Also muss ich prüfen, ob dieser Benutzer die Berechtigung zum Anzeigen des journalArticle hat. Ich sah einen anderen Beitrag mit der gleichen Idee, aber es ist nicht das, was ich brauche. Was ist der beste Weg, dies zu tun?überprüfen Sie die Berechtigungen in Fachartikel für bestimmte Benutzer

Danke !!!

In Teil meines Code:

List<User> users = doListUsr(); //list of users 
List<JournalArticle> listArticles = generatedListArticles(); //list of articles 
for(User tmp: users){ 
    for(JournalArticle tmp2: listArticles){ 
     //check if this user has permission to view every journal article 
    } 
} 
+4

Sie benötigen mehr Informationen bereitzustellen, um eine sinnvolle Antwort zu bekommen. Bitte geben Sie an, wie Sie diese Klasse verwenden, wo sie sich befindet (implementiert oder extern), was die Liferay-Version ist, ... –

+0

Ich benutze liveray 6.2 ce ga 5, Ich benutze diese Klasse für den Versand eines Newsletters und ihre Verwendung wird mit dem Scheduler bereitgestellt Job, so die Hauptidee ist, die Liste der Zeitschrift Artikel veröffentlicht die letzte Woche, um diese Informationen zu senden, so ... die erste Arbeit ist Liste der Zeitschriftenartikel erhalten und Liste der Benutzer für senden Newsletter jedes Wochenende, aber ich brauche validieren Wenn der Benutzer autorisiert ist, finden Sie Informationen zu jedem Zeitschriftenartikel –

+0

Es ist immer noch nicht klar, ob Ihre Klasse Teil des Liferay-Moduls oder der externen App ist. Wenn es Liferay-Plug-in ist, können Sie die [lokalen Dienste] aufrufen (https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/finding-and-invoking-limeray-services#invoking- liferay-services-local) müssen Sie [remote services] verwenden (https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/finding-and-invoking-liferay-services#invoking- liferay-Dienste-remote). Die Dienste, für die Sie am wahrscheinlichsten sind, sind [UserService] (https://docs.liferay.com/portal/6.2/javadocs/com/liferay/portal/service/UserServ –

Antwort

0

Ich löse es mit API ResourcePermission:

resourcePermissionList = ResourcePermissionLocalServiceUtil.getRoleResourcePermissions(roles[i]); 

ich die Rollen des Benutzers erhalten.

+0

Bitte erklären Sie, wie Sie nach einem bestimmten JournalArticle suchen, wie in der Frage gefragt. Danke! :-) –

0

Ich schlage vor, dieses Problem zu lösen:

ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); 
List<Role> roleList = themeDisplay.getUser().getRoles(); 
request.setAttribute("roleList", roleList); 

Und dann <c:if> Tags verwenden, um zu verwalten, dass die Rollen in Ihrem .jsp

+0

Dies überprüft nicht für ein bestimmtes JournalArticle. –

+0

@NicolasRaoul, tut es! Sie müssen userId für jedes JournalArticle haben. Und Sie können beispielsweise sagen, dass Benutzer mit id = xxx diese Entität bearbeiten oder löschen können, und Benutzer mit Gastrollen können nichts tun. – German

Verwandte Themen