Combination View Flat View Tree View
Threads [ Previous | Next ]
María Caso de los Cobos
Relación Community Member y Organization Member
March 1, 2012 9:49 AM
Answer

María Caso de los Cobos

Rank: New Member

Posts: 1

Join Date: June 4, 2010

Recent Posts

Hola a todos,

Antes de nada decir que estamos trabajando con la versión 5.2 EE SP3 por requisito del cliente.

Tenemos una organización y una comunidad. Un grupo de usuarios asociado a ambas y un usuario no administrador que forma parte del grupo.
Contamos con un componente que muestra todos los contenidos de los grupos (comunidades y organizaciones) a los que pertenece el usuario. Utilizamos el permissionChecker para filtrar los contenidos para los que no tiene permiso de visualización. Tenemos un contenido asociado a la comunidad y otro asociado a la organización.
Por defecto, si el usuario está asociado a la comunidad y el grupo de usuarios está asociado a la organización, nos muestra los dos contenidos.

Ahora, el problema:
Por requisito del cliente, no se desea que todos los miembros de la organización vean todo el contenido de la misma. Por tanto, hemos quitado en la pestaña "Permisos" del contenido el check "Ver" para el rol "Organization Member" y funciona.
Lo más raro es que si vamos al rol Community Member y editamos los permisos sobre "Contenido Web" a nivel de portlet y le damos el permiso para "Ver" todo el contenido web, entonces SI vemos todos los contenidos tanto de la Comunidad como de la Organización.

¿Existe alguna relación entre estos dos roles? Entendemos que no debería ser así pues uno es a nivel de comunidad y otro a nivel de organización. Entre ellas no hay ninguna relación, la organización no es miembro de la comunidad.

La llamada al permissionChecker utilizada es la siguiente:

 1
 2
 3Iterator<Object> elementsIt = filteredList.iterator();
 4JournalArticle currentelement;
 5while (elementsIt.hasNext()) {
 6    currentelement = (JournalArticle) elementsIt.next();
 7    if (!themeDisplay.getPermissionChecker().hasPermission(currentelement.getGroupId(),JournalArticle.class.getName(),
 8                                                                        currentelement.getResourcePrimKey(), ActionKeys.VIEW)) {
 9        elementsIt.remove();
10    }
11}


Siendo filteredList la lista de todos los contenidos de la comunidad y de la organización.

Muchas gracias por adelantado.
Un saludo.