2013-02-24 3 views
8

Sto utilizzando l'opzione FOSUserBundle e Group. Lavori di registrazione. Anche la creazione di gruppi funziona. Se creo 2 gruppi, admin e client e MANUALMENTE aggiungo: 1: {i: 0; s: 10: "ROLE_ADMIN";} al gruppo admin nella tabella fos_group e quindi MANULLY setup e entry nel fos_user_user_group che lega un utente al gruppo admin, l'accesso con tale utente sarà in grado di accedere come amministratore.Impostazione ruolo gruppo FOSUserBackle

Tuttavia, ci sono, ovviamente, alcuni svantaggi di questo metodo. Cosa posso usare per aggiungere un utente a un gruppo ora? L'utilizzo dell'opzione della riga di comando di promozione aggiungerà semplicemente il ruolo a quell'utente, ma nella tabella fos_user e poiché utilizzo i gruppi, sospetto che la colonna dei ruoli della tabella fos_user non sia più utilizzata. E se ancora serve a uno scopo, come posso assegnare un utente a un gruppo a livello di programmazione?

Un'altra mia grande domanda è come assegnare ruoli ai gruppi. Forse non sto ottenendo qualcosa sull'intera idea di Google Gruppi, ma mi sarei aspettato di poter aggiungere il ruolo (i) per un gruppo al momento della creazione, ma il modulo "nuovo" richiede solo il nome del gruppo e non esiste Sembra che esista un equivalente del comando di promozione dell'utente per i gruppi.

Grazie.

risposta

14

Come si assegna un utente a un gruppo a livello di programmazione?

$user->addGroup($group); 

Dal momento che si sta usando FOSUserBundle vostra entità utente si estende FOS\UserBundle\Model che implementa GroupableInterface. Quindi la tua classe utente ha già metodi di gruppo getGroups, hasGroup($name), addGroup(GroupInterface $group), removeGroup(GroupInterface $group). Per riferimento guarda qui https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Model/User.php

Come si assegnano i ruoli ai gruppi?

$em = $this->getDoctrine()->getEntityManager(); 

$group = new Group(); 
$group->setRoles(array()); 
$group->addRole('ROLE_ACTOR'); 
$em->persist($group); 
$em->flush(); 

è necessario implementare l'assegnazione del ruolo da soli, fosuserbundle non avere forme predefinite per questo.

+0

Grazie, l'ha fatto. – cbaltatescu

+0

E se - nel mio caso - ho il rapporto di Gruppo -> oneTutti -> Utente, ho un caso d'uso specifico ?? Non posso, cosa dovrei fare ???? – krachleur