Ao acessar o item “Painel de Controle” do menu “Bem-Vindo” e a opção de “Conteúdo Web”, o usuário tem a listagem dos conteúdos que o portal possui. Nem sempre é interessante que o usuário tenha essa visualização, e para isso realizamos uma modificação, que será detalhada a seguir:
Trabalhamos com os arquivos:
{amb_extensao}/docroot/html/portlet/journal/article_action.jsp e:
{amb_extensao}/docroot/html/portlet/journal/view.jsp
No início do primeiro arquivo, colocamos as seguintes modificações:
boolean isOwner = false;
if (Long.valueOf(request.getRemoteUser()) == article.getUserId())
isOwner = true;
boolean isAdmin = false;
if (request.isUserInRole("Administrator"))
isAdmin = true;
boolean isAprovador = false;
if (request.isUserInRole("Aprovador de conteúdo web")&&
(JournalArticlePermission.contains(permissionChecker, article, ActionKeys.VIEW)))
isAprovador = true;
E utilizamos esses dados para modificar as opções que se seguem, como por exemplo:
c:if test="%= JournalArticlePermission.contains(permissionChecker, article, ActionKeys.UPDATE) %"
ou:
c:if test="%= ((JournalArticlePermission.contains(permissionChecker, article, ActionKeys.PERMISSIONS)&& isOwner) || isAdmin || isAprovador) %"
E dessa maneira conseguimos alterar quais usuários tem permissões sobre as ações de determinado conteúdo.
Para melhorar a filtragem, alteramos o segundo arquivo da seguinte maneira:
Alteramos a linha #137 da seguinte maneira:
JournalArticle article = (JournalArticle)results.get(i);
if (JournalArticlePermission.contains(permissionChecker, article, ActionKeys.VIEW)
|| (Long.valueOf(request.getRemoteUser()) == article.getUserId())) {
Soluções Web, Linux e Windows
fevereiro 26th, 2010 : 4:35 pm
[...] Uma melhor abordagem de como editar esse artigo pode ser encontrada nesse outro artigo que fizemos: http://www.weblibre.com.br/alterar-a-listagem-dos-conteudos-no-liferay/ [...]