// In Single Site mode sysadmins can remove this right.
 $app['currentUserPermissions'] = $userPermissionsRepo->getPermissionsForUserInSite($app['currentUser'], $app['currentSite'], false, true);
 # ////////////// User and their watch and perms
 $app['currentUserActions'] = new UserActionsSiteList($app['currentSite'], $app['currentUserPermissions']);
 $app['currentUserWatchesSite'] = false;
 if ($app['currentUser']) {
     $uwsr = new UserWatchesSiteRepository();
     $uws = $uwsr->loadByUserAndSite($app['currentUser'], $app['currentSite']);
     $app['currentUserWatchesSite'] = $uws && $uws->getIsWatching();
 }
 $app['twig']->addGlobal('currentUserActions', $app['currentUserActions']);
 $app['twig']->addGlobal('currentUserWatchesSite', $app['currentUserWatchesSite']);
 # ////////////// if not current user, let templates see what currentUser could do
 if (!$app['currentUser']) {
     // We don't pass $removeEditorPermissions here because that is about specific users being banned and this is potential users
     $app['anyVerifiedUserPermissions'] = $userPermissionsRepo->getPermissionsForAnyVerifiedUserInSite($app['currentSite'], false, true);
     $app['anyVerifiedUserActions'] = new UserActionsSiteList($app['currentSite'], $app['anyVerifiedUserPermissions']);
     $app['twig']->addGlobal('anyVerifiedUserActions', $app['anyVerifiedUserActions']);
 }
 # ////////////// Timezone
 $timezone = "";
 if (isset($_GET['mytimezone']) && in_array($_GET['mytimezone'], $app['currentSite']->getCachedTimezonesAsList())) {
     setcookie("site" . $app['currentSite']->getId() . "timezone", $_GET['mytimezone'], time() + 60 * 60 * 24 * 365, '/', $CONFIG->webCommonSessionDomain, false, false);
     $timezone = $_GET['mytimezone'];
 } else {
     if (isset($_COOKIE["site" . $app['currentSite']->getId() . "timezone"]) && in_array($_COOKIE["site" . $app['currentSite']->getId() . "timezone"], $site->getCachedTimezonesAsList())) {
         $timezone = $_COOKIE["site" . $app['currentSite']->getId() . "timezone"];
     } else {
         if (in_array('Europe/London', $site->getCachedTimezonesAsList())) {
             $timezone = 'Europe/London';
         } else {
 function testSiteOwnerSpecificEdit()
 {
     global $CONFIG;
     $CONFIG->newUsersAreEditors = true;
     $this->addCountriesToTestDB();
     $userOwner = new UserAccountModel();
     $userOwner->setEmail("*****@*****.**");
     $userOwner->setUsername("test");
     $userOwner->setPassword("password");
     $userVerified = new UserAccountModel();
     $userVerified->setEmail("*****@*****.**");
     $userVerified->setUsername("verified");
     $userVerified->setPassword("password");
     $userUnverified = new UserAccountModel();
     $userUnverified->setEmail("*****@*****.**");
     $userUnverified->setUsername("unverified");
     $userUnverified->setPassword("password");
     $userRepo = new UserAccountRepository();
     $userRepo->create($userOwner);
     $userRepo->verifyEmail($userOwner);
     $userRepo->create($userVerified);
     $userRepo->verifyEmail($userVerified);
     $userRepo->create($userUnverified);
     // reload user object so all flags set correctly
     $userOwner = $userRepo->loadByUserName($userOwner->getUsername());
     $userVerified = $userRepo->loadByUserName($userVerified->getUsername());
     $userUnverified = $userRepo->loadByUserName($userUnverified->getUsername());
     $extensionsManager = new ExtensionManager($this->app);
     $userPerRepo = new \repositories\UserPermissionsRepository($extensionsManager);
     $siteModel = new \models\SiteModel();
     $siteModel->setTitle("Test");
     $siteModel->setSlug("test");
     $siteRepository = new \repositories\SiteRepository();
     $countryRepository = new \repositories\CountryRepository();
     $siteRepository->create($siteModel, $userOwner, array($countryRepository->loadByTwoCharCode("GB")), $this->getSiteQuotaUsedForTesting(), false);
     ## Check!
     $extensionsManager = new ExtensionManager($this->app);
     $userPerRepo = new \repositories\UserPermissionsRepository($extensionsManager);
     $permissions = $userPerRepo->getPermissionsForUserInSite($userOwner, $siteModel, false);
     $this->assertEquals(2, count($permissions->getPermissions()));
     $permissions = $userPerRepo->getPermissionsForUserInSite($userOwner, $siteModel, true);
     $this->assertEquals(0, count($permissions->getPermissions()));
     $permissions = $userPerRepo->getPermissionsForUserInSite($userVerified, $siteModel, false);
     $this->assertEquals(0, count($permissions->getPermissions()));
     $permissions = $userPerRepo->getPermissionsForUserInSite($userVerified, $siteModel, true);
     $this->assertEquals(0, count($permissions->getPermissions()));
     $permissions = $userPerRepo->getPermissionsForUserInSite($userUnverified, $siteModel, false);
     $this->assertEquals(0, count($permissions->getPermissions()));
     $permissions = $userPerRepo->getPermissionsForUserInSite($userUnverified, $siteModel, true);
     $this->assertEquals(0, count($permissions->getPermissions()));
     $permissions = $userPerRepo->getPermissionsForAnonymousInSite($siteModel, false, false);
     $this->assertEquals(0, count($permissions->getPermissions()));
     $permissions = $userPerRepo->getPermissionsForAnyUserInSite($siteModel, false, false);
     $this->assertEquals(0, count($permissions->getPermissions()));
     $permissions = $userPerRepo->getPermissionsForAnyVerifiedUserInSite($siteModel, false, false);
     $this->assertEquals(0, count($permissions->getPermissions()));
 }