diff --git a/application/modules/admin/controllers/UsersController.php b/application/modules/admin/controllers/UsersController.php
index 5322dbbbad0692789386d7c2930278486837e64b..13590087f06b28d8113157039653e45c740bfecc 100644
--- a/application/modules/admin/controllers/UsersController.php
+++ b/application/modules/admin/controllers/UsersController.php
@@ -127,6 +127,11 @@ class Admin_UsersController extends Zend_Controller_Action
 			if($data['role'] > 4) $data['bib']=0;
 			if($data['role'] < 2) {$data['id_abon']=0; $data['ordre']=0;}
 
+			$user_groups = array_filter(
+				array_map(function($id) { return Class_UserGroup::find((int)$id);},
+									explode('-', $data['id_items']))
+				);
+
 			$user
 				->setLogin($data['username'])
 				->setPassword($data['password'])
@@ -145,7 +150,8 @@ class Admin_UsersController extends Zend_Controller_Action
 				->setCivilite($data['civilite'])
 				->setAdresse($data['adresse'])
 				->setVille($data['ville'])
-				->setCodePostal($data['code_postal']);
+				->setCodePostal($data['code_postal'])
+				->setUserGroups($user_groups);
 	
 			try {
 				if ($user->save())
diff --git a/application/modules/admin/views/scripts/users/_form.phtml b/application/modules/admin/views/scripts/users/_form.phtml
index 1c98e5aca92f0ea1b659f1d6c7047f9843ed63d5..17717172c4eed5243231e6a3a3ca87e0e153da0f 100644
--- a/application/modules/admin/views/scripts/users/_form.phtml
+++ b/application/modules/admin/views/scripts/users/_form.phtml
@@ -9,140 +9,144 @@
       <legend><?php echo $this->traduire('Utilisateur'); ?></legend>
       <span id="abonne_erreur" class="abonne"><?php echo $this->erreurs; ?></span>
       <table cellspacing="2">
-	<tr>
-	  <td class="droite">Identifiant&nbsp;*</td>
-	  <td class="gauche"><input type="text" name="username" onkeypress="if (event.keyCode == 13) {javascript:PicToolbarOver( getElementById('menu_item975'), 'menu_item975');this.form.submit();return false;}" value="<?php echo $this->escape($this->user->getLogin());?>" maxlength="80"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Mot de passe&nbsp;*</td>
-	  <td class="gauche"><input type="text" name="password" onkeypress="if (event.keyCode == 13) {javascript:PicToolbarOver( getElementById('menu_item975'), 'menu_item975');this.form.submit();return false;}" value="<?php echo $this->escape($this->user->getPassword());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Nom&nbsp;</td>
-	  <td class="gauche"><input type="text" name="nom" size="50" value="<?php echo $this->escape($this->user->getNom());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Prénom&nbsp;</td>
-	  <td class="gauche"><input type="text" name="prenom" size="50" value="<?php echo $this->escape($this->user->getPrenom());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Pseudo&nbsp;</td>
-	  <td class="gauche"><input type="text" name="pseudo" size="50" value="<?php echo $this->escape($this->user->getPseudo());?>"/></td>
-	</tr>
+				<tr>
+					<td class="droite">Identifiant&nbsp;*</td>
+					<td class="gauche"><input type="text" name="username" onkeypress="if (event.keyCode == 13) {javascript:PicToolbarOver( getElementById('menu_item975'), 'menu_item975');this.form.submit();return false;}" value="<?php echo $this->escape($this->user->getLogin());?>" maxlength="80"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Mot de passe&nbsp;*</td>
+					<td class="gauche"><input type="text" name="password" onkeypress="if (event.keyCode == 13) {javascript:PicToolbarOver( getElementById('menu_item975'), 'menu_item975');this.form.submit();return false;}" value="<?php echo $this->escape($this->user->getPassword());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Nom&nbsp;</td>
+					<td class="gauche"><input type="text" name="nom" size="50" value="<?php echo $this->escape($this->user->getNom());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Prénom&nbsp;</td>
+					<td class="gauche"><input type="text" name="prenom" size="50" value="<?php echo $this->escape($this->user->getPrenom());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Pseudo&nbsp;</td>
+					<td class="gauche"><input type="text" name="pseudo" size="50" value="<?php echo $this->escape($this->user->getPseudo());?>"/></td>
+				</tr>
 
-	<tr>
-	  <td class="droite">Civilité&nbsp;</td>
-	  <td class="gauche">
-			<?php 
-			echo $this->formSelect('civilite',
-														 $this->user->getCivilite(),
-														 null,
-														 [Class_Users::CIVILITE_INDEFINIE => 'Indéfinie',
-															Class_Users::CIVILITE_MADAME => 'Madame',
-															Class_Users::CIVILITE_MONSIEUR => 'Monsieur']);
-			?>
-		</td>
-	</tr>
+				<tr>
+					<td class="droite">Civilité&nbsp;</td>
+					<td class="gauche">
+						<?php 
+						echo $this->formSelect('civilite',
+																	 $this->user->getCivilite(),
+																	 null,
+																	 [Class_Users::CIVILITE_INDEFINIE => 'Indéfinie',
+																		Class_Users::CIVILITE_MADAME => 'Madame',
+																		Class_Users::CIVILITE_MONSIEUR => 'Monsieur']);
+						?>
+					</td>
+				</tr>
 
-	<tr>
-	  <td class="droite">Date de naissance&nbsp;</td>
-	  <td class="gauche"><input type="text" name="naissance" size="10" value="<?php echo $this->escape($this->user->getNaissance());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite"><?php echo $this->traduire('Rôle'); ?>&nbsp;</td>
-	  <td class="gauche">
-	    <?php $comboListeRole = new ZendAfi_Acl_AdminControllerRoles();
-          	  if ($this->user->getId() == '1') 
-	    echo '<select disabled="disabled"><option selected="selected" value="7">super_admin</option></select><input type="hidden" value="7" name="role" id="role"/>';
-	    else 
-	    print $comboListeRole->rendCombo($this->user->getRole(),$this->authUser->ROLE_LEVEL); 
-	    ?>
+				<tr>
+					<td class="droite">Date de naissance&nbsp;</td>
+					<td class="gauche"><input type="text" name="naissance" size="10" value="<?php echo $this->escape($this->user->getNaissance());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite"><?php echo $this->traduire('Rôle'); ?>&nbsp;</td>
+					<td class="gauche">
+						<?php $comboListeRole = new ZendAfi_Acl_AdminControllerRoles();
+          	if ($this->user->getId() == '1') 
+						echo '<select disabled="disabled"><option selected="selected" value="7">super_admin</option></select><input type="hidden" value="7" name="role" id="role"/>';
+						else 
+						print $comboListeRole->rendCombo($this->user->getRole(),$this->authUser->ROLE_LEVEL); 
+						?>
 
-	  </td>
-	</tr>
+					</td>
+				</tr>
 
-	<tr>
-	  <td class="droite"><?php echo $this->traduire('Groupe'); ?>&nbsp;</td>
-	  <td class="gauche">
-   <?php $groups=[];
-	 foreach ($this->user->getUserGroups() as $group) {
-		 $groups[]= $group->getLibelle();
-	  } 
-   echo implode($groups,',');
+				<tr>
+					<td class="droite"><?php echo $this->traduire('Groupes'); ?>&nbsp;</td>
+					<td class="gauche">
+						<?php 
+						echo $this->getHelper('TreeSelect')
+											->categoriesNotSelectable()
+											->treeSelect(implode('-', $this->user->getUserGroupsIds()),
+																	 '',
+																	 true,
+																	 $this->url(['module' => 'admin',
+																							 'controller' => 'usergroup',
+																							 'action' => 'list.json']),
+																	 "form", 
+																	 "usergroup_categories_ids");
+						?>
+					</td>
+				</tr>
 
-?>
 
-	  </td>
-	</tr>
-
-
-	<tr id="option_bib">
-	  <td class="droite">Bibliothèque&nbsp;</td>
-	  <td class="gauche">
-	    <?php
-	       if (($this->user->getRoleLevel() <= ZendAfi_Acl_AdminControllerRoles::ADMIN_BIB) and ($bib = Class_Bib::getLoader()->find($this->id_bib))) {
-	      echo '<select disabled="disabled"><option selected="selected" value="'.$this->id_bib.'">'.$bib->LIBELLE.'</option></select>
+				<tr id="option_bib">
+					<td class="droite">Bibliothèque&nbsp;</td>
+					<td class="gauche">
+						<?php
+						if (($this->user->getRoleLevel() <= ZendAfi_Acl_AdminControllerRoles::ADMIN_BIB) and ($bib = Class_Bib::getLoader()->find($this->id_bib))) {
+							echo '<select disabled="disabled"><option selected="selected" value="'.$this->id_bib.'">'.$bib->LIBELLE.'</option></select>
 	      <input type="hidden" value="'.$this->id_bib.'" name="bib" id="bib"/>';
-	      }	else {
-	      $bib = new Class_Bib();
-	      echo $bib->getComboBib($this->user->getIdSite());  
-	      }
-	      ?>
-	    <script type="text/javascript">
-	      formSelectToggleVisibilityForElement("select[name='role']",
-	      "#option_bib", 
-	      ["2", "3", "4"]);
-	      formSelectToggleVisibilityForElement("select[name='role']",
-	      "#abonne_sigb", "2");
-	    </script>
-	  </td>
-	</tr>
-	<tr>
-	  <td class="droite">E-mail&nbsp;</td>
-	  <td class="gauche"><input type="text" name="mail" size="50" value="<?php echo $this->escape($this->user->getMail());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Téléphone&nbsp;</td>
-	  <td class="gauche"><input type="text" name="telephone" size="50" value="<?php echo $this->escape($this->user->getTelephone());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Mobile&nbsp;</td>
-	  <td class="gauche"><input type="text" name="mobile" size="50" value="<?php echo $this->escape($this->user->getMobile());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Adresse&nbsp;</td>
-	  <td class="gauche"><textarea name="adresse" rows="5"><?php echo $this->escape($this->user->getAdresse());?></textarea></td>
-	</tr>
-	<tr>
-	  <td class="droite">Code postal&nbsp;</td>
-	  <td class="gauche"><input type="text" name="code_postal" size="10" value="<?php echo $this->escape($this->user->getCodePostal());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Ville&nbsp;</td>
-	  <td class="gauche"><input type="text" name="ville" size="50" value="<?php echo $this->escape($this->user->getVille());?>"/></td>
-	</tr>
+						}	else {
+							$bib = new Class_Bib();
+							echo $bib->getComboBib($this->user->getIdSite());  
+						}
+						?>
+						<script type="text/javascript">
+						 formSelectToggleVisibilityForElement("select[name='role']",
+																									"#option_bib", 
+																									["2", "3", "4"]);
+						 formSelectToggleVisibilityForElement("select[name='role']",
+																									"#abonne_sigb", "2");
+						</script>
+					</td>
+				</tr>
+				<tr>
+					<td class="droite">E-mail&nbsp;</td>
+					<td class="gauche"><input type="text" name="mail" size="50" value="<?php echo $this->escape($this->user->getMail());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Téléphone&nbsp;</td>
+					<td class="gauche"><input type="text" name="telephone" size="50" value="<?php echo $this->escape($this->user->getTelephone());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Mobile&nbsp;</td>
+					<td class="gauche"><input type="text" name="mobile" size="50" value="<?php echo $this->escape($this->user->getMobile());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Adresse&nbsp;</td>
+					<td class="gauche"><textarea name="adresse" rows="5"><?php echo $this->escape($this->user->getAdresse());?></textarea></td>
+				</tr>
+				<tr>
+					<td class="droite">Code postal&nbsp;</td>
+					<td class="gauche"><input type="text" name="code_postal" size="10" value="<?php echo $this->escape($this->user->getCodePostal());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Ville&nbsp;</td>
+					<td class="gauche"><input type="text" name="ville" size="50" value="<?php echo $this->escape($this->user->getVille());?>"/></td>
+				</tr>
       </table>
     </fieldset>
 
     <fieldset id="abonne_sigb">
       <legend><?php echo $this->traduire('Abonné sigb'); ?></legend>
       <table cellspacing="2">
-	<tr>
-	  <td class="droite" style="width:150px">Numéro de carte&nbsp;</td>
-	  <td class="gauche"><input type="text" name="id_abon" value="<?php echo $this->escape($this->user->getIdabon());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Ordre&nbsp;</td>
-	  <td class="gauche"><input type="text" name="ordre" size="3" onkeypress="if (event.keyCode == 13) {javascript:PicToolbarOver( getElementById('menu_item975'), 'menu_item975');this.form.submit();return false;}" value="<?php echo $this->escape($this->user->getOrdreabon());?>"/></td>
-	</tr>
-	<tr>
-	  <td class="droite">Abonnement valide - du&nbsp;</td>
-	  <td class="gauche"><?php echo formatDate($this->user->getDateDebut(),1);?></td>
-	</tr>
-	<tr>
-	  <td class="droite">au&nbsp;</td>
-	  <td class="gauche"><?php echo formatDate($this->user->getDateFin(),1);?></td>
-	</tr>
+				<tr>
+					<td class="droite" style="width:150px">Numéro de carte&nbsp;</td>
+					<td class="gauche"><input type="text" name="id_abon" value="<?php echo $this->escape($this->user->getIdabon());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Ordre&nbsp;</td>
+					<td class="gauche"><input type="text" name="ordre" size="3" onkeypress="if (event.keyCode == 13) {javascript:PicToolbarOver( getElementById('menu_item975'), 'menu_item975');this.form.submit();return false;}" value="<?php echo $this->escape($this->user->getOrdreabon());?>"/></td>
+				</tr>
+				<tr>
+					<td class="droite">Abonnement valide - du&nbsp;</td>
+					<td class="gauche"><?php echo formatDate($this->user->getDateDebut(),1);?></td>
+				</tr>
+				<tr>
+					<td class="droite">au&nbsp;</td>
+					<td class="gauche"><?php echo formatDate($this->user->getDateFin(),1);?></td>
+				</tr>
       </table>
 
       <input type="hidden" name="id" value="<?php echo $this->user->getId(); ?>" />
@@ -150,8 +154,8 @@
 
     <table>
       <tr>
-	<td align="right" style="padding-right:5px;"><?php echo $this->bouton('type=V'); ?> </td>
-	<td align="left" style="padding-left:5px;"> <?php echo $this->bouton('id=29','picto=del.gif','texte=Annuler','url='.BASE_URL.'/admin/users?z='.$this->id_zone.'&b='.$this->id_bib,'largeur=120px'); ?></td>
+				<td align="right" style="padding-right:5px;"><?php echo $this->bouton('type=V'); ?> </td>
+				<td align="left" style="padding-left:5px;"> <?php echo $this->bouton('id=29','picto=del.gif','texte=Annuler','url='.BASE_URL.'/admin/users?z='.$this->id_zone.'&b='.$this->id_bib,'largeur=120px'); ?></td>
       </tr>
     </table>
   </form>
diff --git a/library/Class/Users.php b/library/Class/Users.php
index f0c46e191b955ed20c382df6a31eb5de11585264..9534b6491a9be1e1443da8d1f4af28d98d4d9013 100644
--- a/library/Class/Users.php
+++ b/library/Class/Users.php
@@ -481,6 +481,17 @@ class Class_Users extends Storm_Model_Abstract {
 	}
 
 
+	/**
+	 * @return array
+	 */
+	public function getUserGroupsIds() {
+		$groups = $this->getUserGroups();
+		return array_map(
+			function($group) { return $group->getId();},
+			$groups);
+	}
+
+
 	/**
 	 * @return array
 	 */
diff --git a/library/ZendAfi/View/Helper/Admin/TreeSelect.php b/library/ZendAfi/View/Helper/Admin/TreeSelect.php
index 553f4f3ce04ba4f36cb9c2390eb5ba14e54d459c..0ac50174ad3d03a46936c5e735762f171afadc93 100644
--- a/library/ZendAfi/View/Helper/Admin/TreeSelect.php
+++ b/library/ZendAfi/View/Helper/Admin/TreeSelect.php
@@ -23,7 +23,16 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////
 
 class ZendAfi_View_Helper_Admin_TreeSelect extends ZendAfi_View_Helper_BaseHelper {
-	function treeSelect($id_items, $id_categories, $default_visibility, $url_data_source, $form_selector, $input_id_categories_name = "id_categorie"){
+	protected 
+		$_categories_selectable = true;
+
+	function treeSelect($id_items, 
+											$id_categories, 
+											$default_visibility, 
+											$url_data_source, 
+											$form_selector, 
+											$input_id_categories_name = "id_categorie"){
+
 		$this->id_items = $id_items;
 		$this->id_categories = $id_categories;
 		$this->default_visibility = $default_visibility;
@@ -38,6 +47,12 @@ class ZendAfi_View_Helper_Admin_TreeSelect extends ZendAfi_View_Helper_BaseHelpe
 	}
 
 
+	function categoriesNotSelectable() {
+		$this->_categories_selectable = false;
+		return $this;
+	}
+
+
 	function setHeader(){
 		$this->view->headScript()
 			->appendFile(JQUERYUI)
@@ -69,8 +84,12 @@ class ZendAfi_View_Helper_Admin_TreeSelect extends ZendAfi_View_Helper_BaseHelpe
 							treeselect("selectItems", [$js_id_items]).
 							treeselect("selectCategories", [$js_id_categories]).
 							treeselect('toggleVisibility', $js_default_visibility);
+CONTENT;
 
+		if (!$this->_categories_selectable) 
+			$content .= "$(\".treeselect\").treeselect('categoriesNotSelectable');";
 
+		 $content .= <<<CONTENT
 					\$("$this->form_selector").submit(function(){
 							\$(".treeselect").treeselect("readSelection", function(items, categories){
 									\$("#$this->input_id_categories_name").val(pack_ids(categories));
diff --git a/public/admin/js/treeselect/treeselect.js b/public/admin/js/treeselect/treeselect.js
index b37371317aa270eaf2c2709c5907779132c99efa..61129186864f1eee1b34f99984c42f06912c8261 100644
--- a/public/admin/js/treeselect/treeselect.js
+++ b/public/admin/js/treeselect/treeselect.js
@@ -398,6 +398,9 @@ $.widget("ui.treeselect", {
 				this._selectByIdAndType(ids, 'category');
 		},
 
+		categoriesNotSelectable: function() {
+			$('li.ui-treeselect-category>input:first-child').remove();
+		},
 
 		readSelection: function(callback) {
 				callback(
@@ -416,4 +419,4 @@ $.widget("ui.treeselect", {
 						this.element.hide('fast');
 				}
 		}
-})})(jQuery);
\ No newline at end of file
+})})(jQuery);
diff --git a/tests/application/modules/admin/controllers/CmsControllerTest.php b/tests/application/modules/admin/controllers/CmsControllerTest.php
index a3518c7bae8168a01602d1e8a62ba760bf3e9272..2be7592f422523451aaa3315cc614d18fe6abf1d 100644
--- a/tests/application/modules/admin/controllers/CmsControllerTest.php
+++ b/tests/application/modules/admin/controllers/CmsControllerTest.php
@@ -517,8 +517,7 @@ class CmsControllerArticleConcertEditActionTest extends CmsControllerTestCase {
 
 	/** @test */
 	public function checkBoxShouldCheckedDomaineArtEtHistoire() {
-		$this->assertXPath("//input[@name='domaine_ids'][@value='11-12']",$this->_response->getBody());
-		
+		$this->assertXPath("//input[@name='domaine_ids'][@value='11-12']",$this->_response->getBody());		
 	}
 }
 
diff --git a/tests/application/modules/admin/controllers/UsersControllerTest.php b/tests/application/modules/admin/controllers/UsersControllerTest.php
index 32dc5971979d665667e75e13b7e31d5fb5c336b0..145361ad8731d87e1b2bb6791fea765881e6c34c 100644
--- a/tests/application/modules/admin/controllers/UsersControllerTest.php
+++ b/tests/application/modules/admin/controllers/UsersControllerTest.php
@@ -23,11 +23,14 @@ require_once 'AbstractControllerTestCase.php';
 abstract class UsersControllerWithMarcusTestCase extends AbstractControllerTestCase {
 	public function setUp() {
 		parent::setUp();
-		$group_vodeclic = Class_UserGroup::newInstanceWithId('20', ['libelle' => 'Multimedia',
-																																				'rights_token' => Class_UserGroup::RIGHT_ACCES_VODECLIC]);
+		$group_vodeclic = Class_UserGroup::newInstanceWithId(20, ['libelle' => 'Multimedia',
+																															'rights_token' => Class_UserGroup::RIGHT_ACCES_VODECLIC]);
+
+		$group_referent = Class_UserGroup::newInstanceWithId(22, ['libelle' => 'Referent',
+																															'rights_token' => Class_UserGroup::RIGHT_USER_DOMAINES_SUPPRESSION_LIMIT]);
+
+		$group_stagiaires = Class_UserGroup::newInstanceWithId(25, ['libelle' => 'Stagiaires']);
 
-		$group_referent = Class_UserGroup::newInstanceWithId('20', ['libelle' => 'Referent',
-																																				'rights_token' => Class_UserGroup::RIGHT_USER_DOMAINES_SUPPRESSION_LIMIT]);
 		
 		$this->marcus = Class_Users::getLoader()
 			->newInstanceWithId(10)
@@ -94,7 +97,7 @@ class UsersControllerIndexTest extends UsersControllerWithMarcusTestCase {
 class UsersControllerEditMarcusTest extends UsersControllerWithMarcusTestCase {
 	public function setUp() {
 		parent::setUp();
-		$this->dispatch('/admin/users/edit/id/10');
+		$this->dispatch('/admin/users/edit/id/10', true);
 	}
 
 
@@ -117,7 +120,12 @@ class UsersControllerEditMarcusTest extends UsersControllerWithMarcusTestCase {
 
 
 	public function testGroupesAreMultimediaAndReferent() {
-		$this->assertXPathContentContains("//td","Multimedia,Referent",$this->_response->getBody());
+		$this->assertXPath("//input[@name='id_items'][@value='20-22']",$this->_response->getBody());
+	}
+
+
+	public function testUserGroupCategoriesNotSelectable() {
+		$this->assertXPathContentContains('//script', 'categoriesNotSelectable');
 	}
 
 	public function testSelectedRoleIsAbonneSIGB() {
@@ -177,7 +185,7 @@ class UsersControllerEditMarcusTest extends UsersControllerWithMarcusTestCase {
 }
 
 
-class UsersControllerEditMarcusAsAdminPortailTest extends UsersControllerWithMarcusTestCase {
+class rsControllerEditMarcusAsAdminPortailTest extends UsersControllerWithMarcusTestCase {
 	public function setUp() {
 		parent::setUp();
 		$this->marcus->setRoleLevel(ZendAfi_Acl_AdminControllerRoles::ADMIN_PORTAIL);
@@ -228,7 +236,9 @@ class UsersControllerPostMarcusDataTest extends UsersControllerWithMarcusTestCas
 															 'ville' => 'Paris',
 															 'civilite' => 1,
 															 'mobile' => '06 12 45 09 87',
-															 'naissance' => '1976-02-17'));
+															 'naissance' => '1976-02-17',
+															 'id_items' => '22-25-e',
+													 ));
 		$this->assertRedirectTo('/admin/users');
 	}
 
@@ -307,9 +317,14 @@ class UsersControllerPostMarcusDataTest extends UsersControllerWithMarcusTestCas
 	public function testPseudoIsDave() {
 		$this->assertEquals('Dave', $this->marcus->getPseudo());
 	}
+
+	public function testUserGroupsAreReferentAndStagiaires() {
+		$this->assertEquals([22, 25], $this->marcus->getUserGroupsIds());
+	}
 }
 
 
+
 class UsersControllerPostMarcusInvalidDataTest extends UsersControllerWithMarcusTestCase {
 	public function testNoUsernamePasswordAndRole() {
 		$this->_postEditData(array('username' => '',