public function handleAction($request, $action)
 {
     $this->record = $this->getRecord();
     $id = (int) $this->request->param('ID');
     if ($id && !$this->record) {
         return Security::permissionFailure($this, "You do not have permission to that");
     }
     return parent::handleAction($request, $action);
 }
 /**
  * Setup the handling of the actions. This is needed for the custom URL Actions set in the SiteConfig
  * @param SS_Request $request The given request
  * @param string $action The requested action
  * @return parent::handleAction
  */
 public function handleAction($request, $action)
 {
     $handles = parent::allowedActions(false);
     $defaultMapping = $this->stat('allowed_actions');
     $handles['index'] = 'handleIndex';
     $siteConfig = $this->getCurrentSiteConfig();
     foreach ($defaultMapping as $key) {
         $map = ucfirst($key . 'Action');
         if ($siteConfig->{$map}) {
             $handles[$siteConfig->{$map}] = $key;
         }
         if (!isset($handles[$key])) {
             $handles[$key] = $key;
         }
     }
     self::$url_handlers = $handles;
     $this->needsRedirect();
     return parent::handleAction($request, $handles[$action]);
 }
Ejemplo n.º 3
0
 protected function handleAction($request, $action)
 {
     if (!Member::currentUser()) {
         if (!in_array($action, self::$allowed_actions_without_auth)) {
             return $this->redirect($this->Link("landing") . "?BackURL=" . urlencode($this->Link()));
         }
     }
     return parent::handleAction($request, $action);
 }
 /**
  * handles the requested action.
  * If a product detail view is requested, the detail view template will be
  * rendered an displayed.
  *
  * @param SS_HTTPRequest $request request data
  * @param string         $action  Action
  *
  * @return mixed
  * 
  * @author Sebastian Diel <*****@*****.**>
  * @since 03.03.2014
  */
 public function handleAction($request, $action)
 {
     if (is_numeric($this->urlParams['Action'])) {
         $this->urlParams['Action'] = (int) $this->urlParams['Action'];
         $product = SilvercartProduct::get()->byID(Convert::raw2sql($this->urlParams['Action']));
         if ($product instanceof SilvercartProduct) {
             $this->redirect($product->Link());
             return;
         }
     } elseif ($this->isFilteredByManufacturer()) {
         $url = str_replace($this->urlParams['Action'] . '/' . $this->urlParams['ID'], '', $_REQUEST['url']);
         $this->urlParams['Action'] = '';
         $this->urlParams['ID'] = '';
         $customRequest = new SS_HTTPRequest('GET', $url, array(), array(), null);
         return parent::handleAction($customRequest, $action);
         exit;
     }
     return parent::handleAction($request, $action);
 }
Ejemplo n.º 5
0
 protected function handleAction($request, $action)
 {
     if (!Member::currentUser()) {
         if (!in_array($action, self::$allowed_actions_without_auth)) {
             $back_url = $request->getVar('url');
             if (empty($back_url)) {
                 $back_url = urlencode($this->Link());
             }
             return $this->redirect($this->Link("landing") . "?BackURL=" . $back_url);
         }
     }
     return parent::handleAction($request, $action);
 }
Ejemplo n.º 6
0
 protected function handleAction($request, $action)
 {
     return parent::handleAction($request, $action);
 }
Ejemplo n.º 7
0
 /**
  * @param $request
  * @param $action
  * @return HTMLText|SS_HTTPResponse
  */
 protected function handleAction($request, $action)
 {
     if (!Member::currentUser()) {
         if (!in_array($action, self::$allowed_actions_without_auth)) {
             return $this->redirect("/surveys/landing?BackURL=" . urlencode('/surveys/current'));
         }
     }
     if (strtolower($action) === 'index') {
         return $this->redirect(self::RoutePrefix . '/current');
     }
     return parent::handleAction($request, $action);
 }
 /**
  * @param SS_HTTPRequest $request
  * @param $model
  *
  * @return HTMLText|SS_HTTPResponse
  */
 protected function handleAction($request, $model)
 {
     /**
      * We return nested controllers, so the parsed URL params need
      * to be discarded for the subsequent controllers to work
      */
     $request->shiftAllParams();
     return parent::handleAction($request, $model);
 }