2016-12-08 13 views
0

У меня есть класс в java с некоторой информацией, такой как userId, companyId и 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-local), в противном случае вам необходимо использовать [удаленные службы] (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

Это не проверяет конкретную статью журнала. –

+0

@NicolasRaoul, он делает! Вы должны иметь userId для каждой статьи журнала. И вы можете сказать, например, что пользователь с id = xxx может редактировать или удалять этот объект, а пользователи с ролью гостя ничего не могут сделать. – German

 Смежные вопросы

  • Нет связанных вопросов^_^