/**
  * Only the owner of a mission can edit a mission.
  * @param Mission $mission
  */
 public static function resolveCanCurrentUserWriteOrDeleteMission(Mission $mission)
 {
     if (Yii::app()->user->userModel->isSame($mission->owner)) {
         return;
     }
     $messageView = new AccessFailureView();
     $view = new AccessFailurePageView($messageView);
     echo $view->render();
     Yii::app()->end(0, false);
 }
 /**
  * @param int $userId
  */
 public static function resolveCanCurrentUserAccessAction($userId)
 {
     if (Yii::app()->user->userModel->id == $userId || RightsUtil::canUserAccessModule('SendGridModule', Yii::app()->user->userModel)) {
         return;
     }
     $messageView = new AccessFailureView();
     $view = new AccessFailurePageView($messageView);
     echo $view->render();
     Yii::app()->end(0, false);
 }
 protected function resolveCanCurrentUserAccessDetailsAction($userId)
 {
     if (Yii::app()->user->userModel->id == $userId) {
         return;
     }
     $messageView = new AccessFailureView();
     $view = new AccessFailurePageView($messageView);
     echo $view->render();
     Yii::app()->end(0, false);
 }
 /**
  * Allow access to all upgrade actions only to Super Administrators.
  * @param CFilterChain $filterChain
  */
 public function filterMaintananceModeAccessControl($filterChain)
 {
     if (!Yii::app()->isApplicationInMaintenanceMode()) {
         $message = Zurmo::t('InstallModule', 'Please set $maintenanceMode = true in perInstance.php config file.');
         $messageView = new AccessFailureView($message);
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     $filterChain->run();
 }
 public function actionDownload($id, $modelId, $modelClassName)
 {
     $model = $modelClassName::getById((int) $modelId);
     if (!ActionSecurityUtil::canCurrentUserPerformAction('Details', $model)) {
         $messageView = new AccessFailureView();
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     $fileModel = FileModel::getById((int) $id);
     Yii::app()->request->sendFile($fileModel->name, $fileModel->fileContent->content, $fileModel->type, false);
 }
 /**
  * Used by my list portlets to do pagination and sort order changes.
  * @param integer $id
  */
 public function actionMyListDetails()
 {
     $portlet = Portlet::getById(intval($_GET['portletId']));
     $portletView = $portlet->getView();
     if (!RightsUtil::canUserAccessModule($portletView::getModuleClassName(), Yii::app()->user->userModel)) {
         $messageView = new AccessFailureView();
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     $view = new AjaxPageView($portletView);
     echo $view->render();
 }
 public static function resolveAccessingASystemUser($user, $renderAccessViewOnFailure = true)
 {
     if (!$user->isSystemUser) {
         return true;
     } elseif (!$renderAccessViewOnFailure) {
         return false;
     } else {
         $messageView = new AccessFailureView();
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
 }
 public function actionDetails($id, $runReport = false)
 {
     $savedReport = SavedReport::getById((int) $id);
     ControllerSecurityUtil::resolveCanCurrentUserAccessModule($savedReport->moduleClassName);
     ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($savedReport, true);
     $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport);
     $portlet = Portlet::getById(intval($_GET['portletId']));
     $portlet->params = array('controllerId' => 'default', 'relationModuleId' => $this->getModule()->getId(), 'relationModel' => $report, 'redirectUrl' => Yii::app()->request->getRequestUri(), 'dataProvider' => $this->getDataProvider($report, $report->getId(), (bool) $runReport));
     $portletView = $portlet->getView();
     if (!RightsUtil::canUserAccessModule($portletView::getModuleClassName(), Yii::app()->user->userModel)) {
         $messageView = new AccessFailureView();
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     $view = new AjaxPageView($portletView);
     echo $view->render();
 }
 protected function resolveCanGroupBeEdited($group)
 {
     if (!$group->isEveryone && !$group->isSuperAdministrators) {
         return;
     }
     $messageView = new AccessFailureView();
     $view = new AccessFailurePageView($messageView);
     echo $view->render();
     Yii::app()->end(0, false);
 }
 protected function resolveCanCurrentUserAccessEmailTemplates()
 {
     if (!RightsUtil::doesUserHaveAllowByRightName('EmailTemplatesModule', EmailTemplatesModule::RIGHT_CREATE_EMAIL_TEMPLATES, Yii::app()->user->userModel)) {
         $messageView = new AccessFailureView();
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     return true;
 }
 protected function resolveCanCurrentUserAccessReports()
 {
     if (!RightsUtil::doesUserHaveAllowByRightName('ReportsModule', ReportsModule::RIGHT_CREATE_REPORTS, Yii::app()->user->userModel)) {
         $messageView = new AccessFailureView();
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     return true;
 }
 /**
  * Renders mobile access failure page
  */
 protected static function renderMobileAccessFailureContent()
 {
     $messageView = new AccessFailureView(Zurmo::t('ZurmoModule', 'This page is not available in mobile mode.'));
     $view = new AccessFailurePageView($messageView);
     echo $view->render();
 }
 protected static function renderAccessFailureContent($fromAjax = false, $nonAjaxFailureMessageContent = null)
 {
     if ($fromAjax) {
         $messageView = new AccessFailureAjaxView();
         $view = new AjaxPageView($messageView);
     } else {
         $messageView = new AccessFailureView($nonAjaxFailureMessageContent);
         $view = new AccessFailurePageView($messageView);
     }
     echo $view->render();
 }
 protected static function renderAccessFailureContent()
 {
     $messageView = new AccessFailureView();
     $view = new AccessFailurePageView($messageView);
     echo $view->render();
 }
 public function actionModalListAllContacts()
 {
     $modalListLinkProvider = new SelectFromRelatedEditModalListLinkProvider($_GET['modalTransferInformation']['sourceIdFieldId'], $_GET['modalTransferInformation']['sourceNameFieldId'], $_GET['modalTransferInformation']['modalId']);
     $adapterName = ContactsUtil::resolveContactStateAdapterByModulesUserHasAccessTo('LeadsModule', 'ContactsModule', Yii::app()->user->userModel);
     if ($adapterName === false) {
         $messageView = new AccessFailureView();
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     echo ModalSearchListControllerUtil::setAjaxModeAndRenderModalSearchList($this, $modalListLinkProvider, $adapterName);
 }
 public function actionRebuildSecurityCache($User_page = 1, $continue = false)
 {
     if (!Group::isUserASuperAdministrator(Yii::app()->user->userModel)) {
         $failureMessageContent = Zurmo::t('Core', 'You must be a super administrator to rebuild the security cache.');
         $messageView = new AccessFailureView($failureMessageContent);
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     if ($User_page == 1) {
         //to more quickly show the view to the user. To give a better indication of what is happening.
         $pageSize = 1;
     } else {
         $pageSize = 25;
     }
     $namedSecurableItems = array();
     $modules = Module::getModuleObjects();
     foreach ($modules as $module) {
         if ($module instanceof SecurableModule) {
             $namedSecurableItems[] = NamedSecurableItem::getByName(get_class($module));
         }
     }
     if ($continue) {
         $page = static::getMassActionProgressStartFromGet('User_page', $pageSize);
     } else {
         $page = 1;
     }
     $title = Zurmo::t('ZurmoModule', 'Rebuilding Cache');
     $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'isSystemUser', 'operatorType' => 'equals', 'value' => 0), 2 => array('attributeName' => 'isSystemUser', 'operatorType' => 'isNull', 'value' => null));
     $searchAttributeData['structure'] = '1 or 2';
     $dataProvider = RedBeanModelDataProviderUtil::makeDataProvider($searchAttributeData, 'User', 'RedBeanModelDataProvider', null, false, $pageSize);
     $selectedRecordCount = $dataProvider->getTotalItemCount();
     $users = $dataProvider->getData();
     foreach ($users as $user) {
         if (!$user->isSuperAdministrator()) {
             foreach ($namedSecurableItems as $namedSecurableItem) {
                 $namedSecurableItem->getActualPermissions($user);
             }
         }
         RightsUtil::cacheAllRightsByPermitable($user);
     }
     $rebuildView = new RebuildSecurityCacheProgressView($this->getId(), $this->getModule()->getId(), new User(), $selectedRecordCount, $page, $pageSize, $User_page, 'rebuildSecurityCache', $title);
     if (!$continue) {
         $view = new ZurmoPageView(ZurmoDefaultAdminViewUtil::makeStandardViewForCurrentUser($this, $rebuildView));
         echo $view->render();
         Yii::app()->end(0, false);
     } else {
         echo $rebuildView->renderRefreshJSONScript();
     }
 }