Inserimento contenuti e regole permessi
Salve,
io progongo sempre problemi molto particolari... oggi mi trovo ad affrontarne un altro:
premetto che ho creato 4 tipologie di ruoli "supervisiore" "tecnico" "agente" "cliente"
Quando inserisco un "utente" posso scegliere oltre al ruolo anche l' "agente" assegnato.
ESEMPIO:
Utente A ---> Ruolo "Cliente" ----> Agente 1 (gli agenti non sono altro che altri utenti con ruolo "agente" e possono essere assegnati a più clienti)
Utente B ---> Ruolo "Cliente" ----> Agente 2
Utente C----> Ruolo "cliente" -----> Agente 1
Utente D----> Ruolo "tecnico" ----> non ha agenti
Utente E ----> Ruolo "agente"----> non ha agenti
Utente F ----> Ruolo "Supervisiore" ---> non ha agenti
Questo è più o meno lo schema.
Poi ho creato un tipo di contenuto "ticket" Che può essere aggiunto dal ruolo "agente".
All'interno del ticket ho inserito un campo di tipo lista di selezione "user reference" da cui è possibile scegliere un "cliente".
Tutto funziona benissimo ma io vorrei però che l'AGENTE1 non possa vedere dalla lista di selezione i clienti associati all'AGENTE2 e così via.
come posso creare questa regola?
capisco che è molto complicato ma avrei necessità di aiuto! sepro che qualcuno possa aiturami.
grazie
Risposte
Per la select devi utilizzare
Per la select devi utilizzare una View che utilizzi come Contextual Filter l'id dell'Agente loggato e restituisca la lista dei suoi Clienti.
ciao ikb. Allora... premetto
ciao ikb.
Allora... premetto che io uso la view per vedere i risultati e nella view sono riuscito ad ottenere quello che voglio.
Il problema è invece quando l'"agente" inserisce un nuovo contenuto:
quindi è al momento dell'inserimento del contenuto che si presenta il select list da cui escono tutti i cilenti. E che invece io voglio filtrare come nei risultati della view.
Spero di essere stato chiaro
Eri stato chiarissimo anche
Eri stato chiarissimo anche al primo post. Cerco di spiegare meglio la mia risposta. Nelle impostazioni del campo User reference è possibile specificare di voler utilizzare una View per popolare le options della select permettendo di fatto di poter visualizzare solo i Clienti dell'Agente loggato. Parliamo quindi entrambi della Form di inserimento.
Perfetto.. Andando a
Perfetto..
Andando a modificare il campo (miosito/admin/structure/types/manage/ticket/fields/field_cliente) infondo alle opzioni trovo quello di cui mi parlavi.
sono riuscito a creare quello che volevo... e funziona benissimo con l'utente "AGENTE".
Ma se inserisco il ticket con un altro ruolo tipo "superviosore" nell'elenco cliente non compare nulla.
questa è la query che ho della vista references:
SELECT users.name AS users_name, users.uid AS uid
FROM
{users} users
LEFT JOIN {field_data_field_agente1} field_data_field_agente1 ON users.uid = field_data_field_agente1.entity_id AND (field_data_field_agente1.entity_type = 'user' AND field_data_field_agente1.deleted = '0')
LEFT JOIN {users} users_field_data_field_agente1 ON field_data_field_agente1.field_agente1_uid = users_field_data_field_agente1.uid
WHERE ((( (users_field_data_field_agente1.uid = '1') )))
LIMIT 10 OFFSET 0
diciamo che dovrei far escludere tutti gli altri ruoli dalla query... questo non sto riuscendo a fare...
Serve organic group per fare
Serve organic group per fare quello che vuoi fare. http://www.drupal.it/moduli/organic-groups
Ecco una guida salva vita fatta da uno che se ne intende
Considera che potrebbe
Considera che potrebbe interessarti anche evitare l'accesso ai nodi di altri utenti e non solo il filtraggio attraverso le viste.
ciao tommy55. mi sembra Molto
ciao tommy55.
mi sembra Molto interessante ma un pò complesso forse.... il fatto è che mi manca solo l'ultimo passaggio per avere quello che voglio ottenere. con la soluzione della view references ci sono quasi...
appunto devo capire cosa manca nella view che ho creato.
Sto riguardando la vista referecence. Ho impostato come ruolo solo AGENTE ma nulla.
Cioè se accedo come supervisore la lista di selezione mi compare vuota come se applicasse il filtro sempre e funzionasse solo con il ruolo AGENTE.
dove sbaglio?
aiuto... :)
aiuto... :)
Secondo me continua sfuggirti
Secondo me continua sfuggirti una considerazione.
Ammesso che tu riesca , la tua costruzione prevede che i nodi tiket siano privati?
l'agente 2 può accedere ai nodi del aggente 1 sapendo il link? E per gli altri ruoli utente?
Esiste a parità di ruolo un vincolo , dato da un permesso.
User reference rereferenzia e basta o vincola gli accessi ?
Per la creazione dei nodi ho
Per la creazione dei nodi ho creato un alias automatico il che rende difficile accedervi se non si conosce il giusto indirizzo e questo non mi preoccupa. Certo se si conosce esattamente il link accede. però ripeto sorvolo.
A pari ruolo però l'agente 1 non può vedere la lista dei clienti assegnati all'agente 2 e viceversa.
Questo lo ottengo dalle viste e funziona discretamente.
Il problema è nell'inserimento dei contenuti dove sono riuscito ad ottenere quello che voglio ma il problema è che come amministratore non vedo la lista di tutti i clienti nella select list.
Ancora nesuna soluzione ho
Ancora nesuna soluzione ho trovato. non ne vengo a capo :(
non hai spiegato se gli
non hai spiegato se gli utenti clienti hanno necessità di accedere al sito
se non hanno questa necessità la cosa si può facilmente risolvere equiparando i clienti alle mele
i clienti inseriscili come termini di tassonomia
ogni agente ha il proprio vocabolario di clienti accessibile solo a lui