Il modulo trust permette ad un utente di concedere ad un secondo utente la possibilità di modificare i suoi nodi, per semplificare il lavoro di gruppo nei casi in cui solo il proprietario di un nodo può aggiornarlo.
Questo "travaso" di permessi è effettuato dall'unica funzione del modulo:
function trust_get_trust ($user, $node) {
$node_owner = user_load(array('uid' => $node->uid));
profile_load_profile($node_owner);
$trusted_users = explode("\n", $node_owner->profile_trust);
if (in_array($user->name, $trusted_users) ||
($node_owner->name == $user->name)) {
return TRUE;
}//THEN
else {
return FALSE;
}//ELSE
}//TRUST_GET_TRUST
Per prima cosa viene caricato il profilo del proprietario del
nodo in questione, da cui viene estratto il campo
profile_trust, che contiene una lista degli utenti
fidati (uno per riga). Se l'utente che sta cercando di manipolare
il nodo è tra questi, il controllo è superato,
altrimenti no.
È comunque importante notare che:
- gli utenti con permessi amministrativi (come
administer node) possono modificare e cancellare qualunque nodo. - il modulo non permette di restringere la concessione dei permessi solo ad alcuni nodi.
- il modulo in sè definisce solo la funzione;
perchè il controllo venga effettivamente usato va
impostato a mano nella funzione
node_accessinnode.module.