/**
  * @param HTTPRequest $request
  * @return bool
  */
 public function userIsAdmin(HTTPRequest $request)
 {
     $user = $request->getCurrentUser();
     $forge_user_manager = new User_ForgeUserGroupPermissionsManager(new User_ForgeUserGroupPermissionsDao());
     $has_special_permission = $forge_user_manager->doesUserHavePermission($user, new User_ForgeUserGroupPermission_MediawikiAdminAllProjects());
     return $has_special_permission || $user->isMember($request->getProject()->getID(), 'A');
 }
 public function displayHeader(HTTPRequest $request, $title)
 {
     $toolbar = array();
     if ($this->userIsAdmin($request->getCurrentUser())) {
         $toolbar[] = array('title' => $GLOBALS['Language']->getText('global', 'Administration'), 'url' => MEDIAWIKI_BASE_URL . '/forge_admin?' . http_build_query(array('group_id' => $request->get('group_id'))));
     }
     $title = $title . ' - ' . $GLOBALS['Language']->getText('plugin_mediawiki', 'service_lbl_key');
     $breadcrumbs = array();
     parent::displayHeader($title, $breadcrumbs, $toolbar);
 }
 private function checkAccess(HTTPRequest $request)
 {
     if (!$request->getCurrentUser()->isSuperUser()) {
         $GLOBALS['Response']->redirect('/');
     }
 }
 private function assertSiteAdmin(HTTPRequest $request)
 {
     if (!$request->getCurrentUser()->isSuperUser()) {
         $GLOBALS['Response']->redirect('/');
     }
 }
 private function assertUserIsProjectAdmin(ServiceMediawiki $service, HTTPRequest $request)
 {
     if (!$service->userIsAdmin($request->getCurrentUser())) {
         $GLOBALS['Response']->redirect(MEDIAWIKI_BASE_URL . '/wiki/' . $request->getProject()->getUnixName());
     }
 }