[Yii 1] Relazione RBAC tramite tabella intermedia

Usano l’implementazione RBAC di Yii 1 ho

tabella tbl_auth_item

  • name

  • type [che può essere 0 (operation), 1 (task) o 2 (ruolo)]

  • altri campi non necessari

tabella tbl_auth_assignment

  • itemname [che punta a tbl_auth_item.name]

  • userid [che punta a tbl_user.id]

C’è mod nella classe User di avere una relation ‘role’ che mi dia l’unico auth_asisgnment dell’utente dove il type sia 2 (ruolo) ?

Credo di dover combinare il pass trough (cioè una tabella di collegamento) con un filtro where ma non so come voltare la cosa…

Io arrivo alla relation many to many definita così




'auth_item_assigned' => array(self::MANY_MANY, 'AuthItem', $assegnazioni_utente . "(userid, itemname)", "condition" =>  'type=2' ),



Solo che così facendo mi tocca usare un virtual attribute per visualizzare il nome del ruolo nella tabella degli utenti a video (dato che questa relation restituisce un array, anche se con un unico elemento, ma è sempre un array…)