Custom Permission

cancel
Showing results for 
Search instead for 
Did you mean: 
nellooo
Member II

Custom Permission

Buongiorno, ho cercato in lungo e in largo in rete ma non ho trovato nulla.
Vorrei disabilitare per tutti gli utenti lo spazio "File Personali" impedendo a chiunque di uppare contenuti.
Tuttavia, un gruppo ristretto di questi utenti, appartiene ad un sito sul quale deve poter continuare a caricare contenuti.
E' possibile?
Grazie
7 Replies
davidciamberlan
Alfresco Employee

Re: Custom Permission

Ciao,

la cartella "File Personali" punta a "User Homes/nomeutente".
Una prima soluzione (ma non so se si adatta ai tuoi scopi) potrebbe essere quella di disabilitare la creazione della cartella utente all'atto della creazione dell'utente stesso.
Fare questo è semplice… basta settare nell'alfresco-global.properties:

home.folder.creation.eager=false


Invece impedire la creazione di nuovi contenuti potrebbe essere più complicato. L'utente infatti è owner della cartella e virtualmente può farci quello che vuole.
Non è una procedura che ho testato personalmente… però potresti provare a eliminare (con qualche script o regola) l'aspetto Ownable dalla cartella dell'utente e settare opportunamente i permessi in modo che sia accessibile solo da un certo gruppo di utenti…

Appena ho un po di tempo testo questa soluzione e ti faccio sapere se effettivamente funziona.

davidciamberlan
Alfresco Employee

Re: Custom Permission

Ciao di nuovo,

ti confermo che puoi procedere eliminando l'aspect "cmSmiley Surprisedwnable" dalle cartelle degli utenti. Potrai poi attribuire ad esse solo i permessi di lettura (salvo il gruppo speciale).

L'aspect è di default invisibile (non lo puoi eliminare da share) ma puoi utilizzare uno script del genere:


var folder = search.findNode('workspace://SpacesStore/2fa452b2-47a2-4569-958d-eed74a256101');
folder.removeAspect('cm:ownable');


nellooo
Member II

Re: Custom Permission

Grazie per la risposta. Non mi è chiaro come lanciare lo script, che da quanto ho capito dovrebbe fare quello che sto cercando di fare io, eliminare quella riga dal file permissionDefinition.xml.
Come lo lancio quello script?
davidciamberlan
Alfresco Employee

Re: Custom Permission

Ciao,

potresti creare una regola sulla cartella "User Homes" che intercetta l'evento di creazione di una sottodirectory ed esegue uno script (custom action) che rimuove l'aspect ownable ed anche tutti i permessi.

La custom action potrebbe essere qualcosa del genere:


var perms = document.getPermissions();

perms.forEach( function (perm) {   
   document.removePermission("All",perm.split(';')[1]);
});

document.removeAspect ('cm:ownable');


Questo naturalmente  è solo un esempio… puoi complicare lo script a piacere in modo da abilitare solo alcuni utenti e gruppi…

Se hai bisogno di altri chiarimenti scrivi pure!
nellooo
Member II

Re: Custom Permission

Buongiorno.
Sono riuscito nel mio intento in una maniera più brutale.
Ho aggiunto il seguente codice all'interno di tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/share/header/share-header.get.js

if (user.istest1)
{
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_MY_FILES");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER ADMIN CONSOLE");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_REPOSITORY");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_PEOPLE");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_TASKS");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_SITES_MENU");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_SHARED_FILES");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_HOME");
}

Gli utenti in tal modo sono vincolati a restare unicamente all'interno della sezione sito.
Grazie
davidciamberlan
Alfresco Employee

Re: Custom Permission

Ciao,

non so bene cosa faccia il codice che hai postato… ma ho l'impressione (se sbaglio correggimi pure) che si limiti ad eliminare i collegamenti dal menu di share. Se così fosse avresti risolto solo parzialmente il tuo problema perchè gli utenti avrebbero la possibilità, scrivendo a mano gli url, di accedere comunque a tutto il repository e avrebbero ancora i loro permessi di scrittura sulle cartelle.

Questo può essere pericoloso… sta a te valutare.
nellooo
Member II

Re: Custom Permission

Ciao.
Si, si limita ad eliminare i pulsanti.

Non mi è chiaro come implementare la regola sulla cartella "User Homes".
Grazie