Problema query in Drupal

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.

Ho usato una View che utilizza come Contextual Filter l'id dell'agente loggato ottenendo questa query:

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') )))

ma praticamente quando inserisco un ticket loggato come agente funziona... ma se mi loggo come supervisore nella select list non trovo nulla.

inviato 8 mesi fa
jbond82
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda