Ciao,
Sono alle prese (come si può notare dal post precedente) con un lavoro che sembra un rompicapo sugli accessi. Ma a parte l'esercizio in se, io mi sto trovando parecchio in difficoltà perchè mi manca un controllo sugli accessi che a mio avviso è assurdo che non ci sia e che nessuno ne senta la mancanza.
Questa cosa mi servirebbe in ogni caso a livello di campo. Ora mi direte di utilizzare field permission... già fatto. Con field permission ho i seguenti controlli:
Create own value for field Descrizione
Edit own value for field Descrizione
Edit anyone's value for field Descrizione
View own value for field Descrizione
View anyone's value for field Descrizione
Ma io voglio che ci sia un controllo che mi faccia vedere tutti campi appartenenti ad uno specifico ruolo. Tipo "View own value for field Descrizione", ma non applicato a livello di utente, ma di ruolo.
Ovvero quel campo viene visto solo da utenti che appartengono a quel ruolo.
Cacchio è una cosa banalissima e non ce da nessuna parte.
Potete aiutarmi ?
non sei affatto chiaro...
non si capisce affatto cosa vuoi... se tu assegni determinati permessi ad un certo ruolo... assegni quei permessi a tutti gli utenti del ruolo... quindi che vuoi? è già come dici tu...
se gli attuali permessi ti stanno stretti creane di nuovi... Drupal ti da tutti i mezzi per farlo..
drupalpertutti.it
Allora,
Io ho bisogno che un campo possa essere visto solo da tutti gli utenti appartenenti ad uno specifico ruolo.
Quindi non "View anyone's value for field XXXX" e neanche "View own value for field XXXX".
Perchè il primo li fa visualizzare a tutti gli utenti di tutti i gruppi e il secondo solo all'utente "singolo" di quel gruppo.
Non esiste un permesso che dia visibilità a tutti gli utenti solo di uno specifico gruppo.
Le caselle di spunta nei permessi sul campo sono relative ad ogni ruolo che hai creato nel tuo sito.
Se hai un ruolo xxx e vuoi dare la possibilità di vedere il campo yyy solo agli utenti di quel ruolo, dovrai spuntare la casella in corrispondenza della colonna/Ruoloxxx e della riga/Permesso View anyone's value for field yyy.
E' esattamente quello che stai cercando, oppure devi chierire meglio quello che vuoi ottenere.
Ciao.
Ciao,
Quello che dici tu è vero e io mi sono forse spiegato male. Il mio fine ultimo è questo:
Ho 2 ruoli (base e exclusive)
Voglio che 1 campo specifico di un content type sia visibile solo a tutti gli utenti del ruolo exclusive.
Però... quel campo deve essere invece visibile al ruolo base solo se è stato inserito da utenti del ruolo base
Quindi se io sono un utente loggato come "base" non posso vedere il campo se è stato inserito da utenti del ruolo exclusive, ma solo se è stato inserito da utenti del ruolo base.
Quindi per fare sta cosa mi servirebbe un permesso in più in field permission che non esiste. Mi servirebbe questo permesso
View own rule value for field XXXXX = ovvero vedere solo i campi che sono stati inseriti da utenti a ppartenenti allo stesso ruolo.
Se differenziassi il tipo di contenuto, creando un tipo di contenuto per il gruppo X e uno per il gruppo Y (magari identici)? Potresti settare i permessi in modo che ogni gruppo possa creare solo un tipo di contenuto e vedere determinati campi dell'altro.
EDIT: Comunque bisognerebbe rispettare le regole base per scrivere su un forum. Hai aperto due topic identici, continuando in uno la discussione dell'altro e facendo un gran casino. Chiamasi Crossposting, ed e' vietato in tutti i forum del mondo.
Immagina una firma a tuo piacimento....
Ciao,
Non posso creare due content type. Cmq ho già risolto da codice.
In ogni caso non erano identici i due post, lo sono diventati. E cmq adesso vado a tagliarmi le vene per aver commesso questa oscenità. :-)
Il crossposting e' una mancanza di rispetto nei confronti di chi sta cercando di aiutarti. E sarebbe indicato spiegare come hai risolto il problema, visto che questo non e' il call center della tua compagnia telefonica e la tua spiegazione potrebbe essere una risorsa per chi dovesse avere il tuo stesso problema.
Immagina una firma a tuo piacimento....
Ecco qua la soluzione da codice,
function cant_see_node_view_alter (&$build) {
if (isset($build['title_field'])){
$authorid = $build['title_field']['#object']->uid; // l'uid dell'autore del nodo
$authoruser = user_load($authorid); // l'utente autore del nodo
global $user; // l'utente loggato
if (in_array('Ruolo A', $authoruser->roles)) {
if (in_array('Ruolo B', $user->roles)) {
$build['field_descrizione']['#access'] = false;
$build['field_nome_cognome_ruolo']['#access'] = false;
$build['field_email']['#access'] = false;
$build['field_referente']['#access'] = false;
$build['field_cellulare']['#access'] = false;
$build['field_telefono']['#access'] = false;
$build['field_sito_web']['#access'] = false;
$build['field_area_d_interesse']['#access'] = false;
$build['field_attivit_svolte']['#access'] = false;
$build['field_fonte']['#access'] = false;
}
}
}
}