Fórum

Creare una Discussione via codice ed impostare i permessi

thumbnail
Marco Azzalini, modificado 7 Anos atrás.

Creare una Discussione via codice ed impostare i permessi

Regular Member Postagens: 146 Data de Entrada: 18/11/14 Postagens Recentes
Ciao a tutti, come da titolo sto realizzando un meccanismo che permetta (tramite dei pulsanti) agli utenti con un certo ruolo (Redattore) di creare in automatico una discussione (thread) sulla MessaggeBoard in modo tale che poi altri utenti con un altro ruolo (Verificatore) possano rispondere a tale messaggio. In pratica ciò che devo realizzare è questo:
Redattore-1 ---> crea il primo messaggio (VIEW per i redattori e REPLY per i verificatori)
Verificatore-1 ---> risponde al messaggio
Verificatore-2 ---> risponde al messaggio

Mi sono accorto però che non è facile impostare in automatico questi permessi :-(
Per iniziare il thread, utilizzo questa API
message=MBMessageServiceUtil.addMessage(getScopeGroupId(), 0, title, body, "html", inputStreamOVPs, false, 0, false, serviceCtx);


che funziona bene, e mi inizia la discussione sulla radice della MessageBoard (perchè ho categoryId=0), poi per impostare i permessi:
lascio la VIEW all'owner
ResourcePermissionLocalServiceUtil.setOwnerResourcePermissions(getCompanyId(), 
  MBMessage.class.getName(), ResourceConstants.SCOPE_INDIVIDUAL, 
  message.getPrimaryKey()+"",RoleLocalServiceUtil.getRole(getCompanyId(), RoleConstants.OWNER).getRoleId() ,
   userId, new String[]{messageResActionVIEW.getActionId()});


e fin qui tutto bene, ma poi non riesco a concedere la possibilità di rispondere ai soli Verificatori con questa analoga chiamata:
ResourcePermissionLocalServiceUtil.setResourcePermissions(companyId ,MBCategory.class.getName(), 
  ResourceConstants.SCOPE_INDIVIDUAL,""+message.getCategory().getPrimaryKey(), verificatoriRole.getRoleId(),new String[]{categoryResActionREPLY.getActionId()});

dove opero sulla category del messaggio perché a tale oggetto è legato il permesso di REPLY-TO-MESSAGGE.
Al momento l'unico modo per avvicinarmi allo scopo che ho trovato è impostare questi permessi a livello di ruolo tramite pannello di controllo ma non è ottimale e poi vorrei fare tutto via codice.
Qualcuno sa darmi qualche consiglio? Ovviamente se non sono riuscito a spiegare bene, chiedete pure!
ciao e grazie