function listUsersNotEditors(Application $app, Request $request)
 {
     $repo = new UserHasNoEditorPermissionsInSiteRepository();
     if ($request->request->get('action') == "add" && $request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) {
         $ur = new UserAccountRepository();
         $user = $ur->loadByUserName($request->request->get('username'));
         if ($user) {
             $repo->addUserToSite($user, $app['currentSite'], $app['currentUser']);
             return $app->redirect('/admin/usernoteditor/');
         }
     } else {
         if ($request->request->get('action') == "remove" && $request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) {
             $ur = new UserAccountRepository();
             $user = $ur->loadByID($request->request->get('id'));
             if ($user) {
                 $repo->removeUserFromSite($user, $app['currentSite'], $app['currentUser']);
                 return $app->redirect('/admin/usernoteditor/');
             }
         }
     }
     $userAccountRepoBuilder = new UserAccountRepositoryBuilder();
     $userAccountRepoBuilder->setUserHasNoEditorPermissionsInSite($app['currentSite']);
     return $app['twig']->render('site/admin/listUsersNotEditors.html.twig', array('users' => $userAccountRepoBuilder->fetchAll()));
 }
 function testAddAndRemove()
 {
     $this->addCountriesToTestDB();
     $user = new UserAccountModel();
     $user->setEmail("*****@*****.**");
     $user->setUsername("test");
     $user->setPassword("password");
     $userRepo = new UserAccountRepository();
     $userRepo->create($user);
     $siteModel = new \models\SiteModel();
     $siteModel->setTitle("Test");
     $siteModel->setSlug("test");
     $siteRepository = new \repositories\SiteRepository();
     $countryRepository = new \repositories\CountryRepository();
     $siteRepository->create($siteModel, $user, array($countryRepository->loadByTwoCharCode("GB")), $this->getSiteQuotaUsedForTesting(), true);
     // ########################################## Not there
     $userHasNoEditorPermissionsInSiteRepo = new UserHasNoEditorPermissionsInSiteRepository();
     $this->assertFalse($userHasNoEditorPermissionsInSiteRepo->isUserInSite($user, $siteModel));
     $userAccountRepoBuilder = new \repositories\builders\UserAccountRepositoryBuilder();
     $userAccountRepoBuilder->setUserHasNoEditorPermissionsInSite($siteModel);
     $this->assertEquals(0, count($userAccountRepoBuilder->fetchAll()));
     // ########################################## Add
     $userHasNoEditorPermissionsInSiteRepo->addUserToSite($user, $siteModel);
     // ########################################## There
     $this->assertTrue($userHasNoEditorPermissionsInSiteRepo->isUserInSite($user, $siteModel));
     $userAccountRepoBuilder = new \repositories\builders\UserAccountRepositoryBuilder();
     $userAccountRepoBuilder->setUserHasNoEditorPermissionsInSite($siteModel);
     $this->assertEquals(1, count($userAccountRepoBuilder->fetchAll()));
     // ########################################## Remove
     $userHasNoEditorPermissionsInSiteRepo->removeUserFromSite($user, $siteModel);
     // ########################################## There
     $this->assertFalse($userHasNoEditorPermissionsInSiteRepo->isUserInSite($user, $siteModel));
     $userAccountRepoBuilder = new \repositories\builders\UserAccountRepositoryBuilder();
     $userAccountRepoBuilder->setUserHasNoEditorPermissionsInSite($siteModel);
     $this->assertEquals(0, count($userAccountRepoBuilder->fetchAll()));
 }