/**
  * @return array BaseUserWatchesNotifyContent
  */
 public function getUserNotifyContents(SiteModel $site, UserAccountModel $userAccountModel)
 {
     $out = array();
     $userWatchesSiteRepo = new \repositories\UserWatchesSiteRepository();
     $data = $userWatchesSiteRepo->getUserNotifyContentForSiteAndUser($site, $userAccountModel);
     if ($data) {
         // no point carrying on; someone watching a site overrides any data contained within
         return array($data);
     }
     $siteFeatureRepo = new \repositories\SiteFeatureRepository($this->app);
     if ($siteFeatureRepo->doesSiteHaveFeatureByExtensionAndId($site, 'org.openacalendar', 'Group')) {
         $userWatchesGroupRepo = new \repositories\UserWatchesGroupRepository();
         $data = $userWatchesGroupRepo->getUserNotifyContentForSiteAndUser($site, $userAccountModel);
         if ($data) {
             $out = array_merge($out, $data);
         }
     }
     $userWatchesAreaRepo = new \repositories\UserWatchesAreaRepository();
     $data = $userWatchesAreaRepo->getUserNotifyContentForSiteAndUser($site, $userAccountModel);
     if ($data) {
         $out = array_merge($out, $data);
     }
     return $out;
 }
 $site = $siteRepository->loadById($CONFIG->singleSiteID);
 if (!$site) {
     die("404 Not Found");
     // TODO
 }
 $app['twig']->addGlobal('currentSite', $site);
 $app['currentSite'] = $site;
 # ////////////// Site closed
 if ($app['currentSite']->getIsClosedBySysAdmin()) {
     $app['twig']->addGlobal('currentUserInSite', null);
     $app['twig']->addGlobal('currentUserCanAdminSite', false);
     $app['twig']->addGlobal('currentUserCanEditSite', false);
     return new Response($app['twig']->render('site/closed_by_sys_admin.html.twig', array()));
 }
 # ////////////// Features
 $siteFeaturesRepo = new repositories\SiteFeatureRepository($app);
 $app['currentSiteFeatures'] = new SiteFeaturesList($siteFeaturesRepo->getForSiteAsTree($app['currentSite']));
 $app['twig']->addGlobal('currentSiteFeatures', $app['currentSiteFeatures']);
 $app['currentSiteFeatures']->setFeaturesOnSite($app['currentSite']);
 # ////////////// Permissions and Watch
 $userPermissionsRepo = new \repositories\UserPermissionsRepository($app['extensions']);
 // We do not check UserHasNoEditorPermissionsInSiteRepository(); because that is site mode only.
 // 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();