Hello All, I managed to get my component working but would like to call cake's native 'redirect' instead of "header('location...", if it is possible... Does anyone know how this can be done?
~/app/app_controller.php: <?php ... function beforeRender(){ /* * $this->SSL->reset=false;//requests continue in https if false, default = true * $this->SSL->force('controller','action'); * $this->SSL->force('controller');//all actions forced. * $array = array('controller.actionA','controller2.actionB','controller3'); * $this->SSL->force($array); */ $this->SSL->force('users'); $this->SSL->force('messages','add'); $this->SSL->check(); } ... ?> ~/app/controllers/components/s_s_l.php: <?php class SSLComponent extends Object{ var $_aryParams = array(); var $reset = true; function initialize(&$controller){ $this->_config('controller', $controller->params['controller']); $this->_config('action', $controller->params['action']); $this->_config('host', $_SERVER['SERVER_NAME']); $this->_config('cakeUrl', $controller->params['url']['url']); $this->_config('forceSSL', array()); if(strlen(trim($this->_getConfig('cakeUrl'))) > 0 && $this- >_getConfig('cakeUrl') <> '/'){ $this->_config('cakeUrl','/'.$this->_getConfig('cakeUrl')); } $this->_config('path',$this->_getConfig('cakeUrl')); } function startup(&$controller){ $this->_config('resetPath','://'.$this->_getConfig('host').$this- >_getConfig('path')); } function shutdown(&$controller){ unset($this->_aryParams); } function _config($strParam,$objValue,$bolGet=false){ if(!$bolGet){ $this->_aryParams[$strParam] = $objValue; }else{ return $this->_aryParams[$strParam]; } } function _getConfig($strParam){ return $this->_config($strParam,null,true); } function force($arySSL=null,$strAction=null){ if(is_array($arySSL)){ foreach($arySSL as $strSSL){ if(count(split('\.',$strSSL,2)) <> 2){ $strSSL .= '.*'; } list($strController,$strAction) = split('\.',$strSSL,2); $this->_config('forceSSL',array_merge($this- >_getConfig('forceSSL'),array(array('controller'=> $strController,'action'=>$strAction)))); } }elseif($arySSL <> null){ if($strAction == null){ $strAction = '*'; } $this->_config('forceSSL',array_merge($this- >_getConfig('forceSSL'),array(array('controller'=>$arySSL,'action'=> $strAction)))); } } function check(){ $this->_config('bolReset', $this->reset); $bolForced = false; foreach($this->_getConfig('forceSSL') as $arySSL){ if($arySSL['controller'] == $this->_getConfig('controller') && $arySSL['action'] == $this->_getConfig('action')){ $bolForced = true; }elseif($arySSL['controller'] == $this->_getConfig('controller') && $arySSL['action'] == '*'){ $bolForced = true; } } if(!env('HTTPS') && $bolForced){ header('location:'.'https'.$this->_getConfig('resetPath')); }elseif($this->_getConfig('bolReset')){ if(!$bolForced && env('HTTPS')){ header('location:'.'http'.$this->_getConfig('resetPath')); } } } } ?> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---