2016-12-08 34 views
0

我在java中有一個類,具有一些信息,如userId,companyId和JournalArticle。所以我需要檢查這個用戶是否有權查看journalArticle。我看到另一篇文章有​​着同樣的想法,但這不是我所需要的。這是做這件事的最好方法?在特定用戶的期刊文章中檢查權限

謝謝!!!我的代碼

部分添加:

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

角色,您需要提供一些信息,以獲得一個有意義的答案。請說明你如何使用這個類,它位於何處(已部署或外部),什麼是Liferay版本,... –

+0

我使用liferay 6.2 ce ga 5,我使用這個類來發送新聞簡報,並且其調度部署與調度程序因此主要想法是獲得上週發佈的期刊文章列表以發送此信息,所以...第一項工作是獲取期刊文章列表並獲取每週末發送通訊的用戶列表,但我需要驗證如果用戶被自動化以查看關於每篇期刊文章的信息 –

+0

目前尚不清楚您的課程是否爲Liferay模塊或外部應用程序的一部分。如果是Liferay插件,則可以調用[本地服務](https://dev.liferay.com/develop/tutorials//knowledge_base/6-2/finding-and-invoking-liferay-services#invoking- liferay-services-locally)否則你需要使用[遠程服務](https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/finding-and-invoking-liferay-services#invoking- Liferay的服務 - 遠程)。您最可能感興趣的服務是[UserService](https://docs.liferay.com/portal/6.2/javadocs/com/liferay/portal/service/UserServ –

回答

0

我用API ResourcePermission解決它:

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

我得到的用戶的角色。

+0

請詳細說明如何檢查特定的JournalArticle,如問題所述。謝謝!:-) –

0

我建議要解決的問題是這樣的:

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

然後用<c:if>標籤來管理您的.jsp

+0

這並不檢查特定的JournalArticle。 –

+0

@NicolasRaoul,它的確如此!每個JournalArticle必須擁有userId。你可以說,例如,id = xxx的用戶可以編輯或刪除這個實體,並且具有guest角色的用戶不能做任何事情。 – German