Hey,
When throwing the exception it seems that the request will still be executed
and then additionally the errorController will be executed.
Is something like this
throw new My_Exception_AccessDenied('Access Denied.');
not sufficient from the preDispatch() ?
Jurian Sluiman wrote:
>
> Op Monday 24 August 2009 01:13:36 schreef debussy007:
>> Hi,
>>
>> I have a plugin checking in the preDispatch() method if the user (role)
>> may
>> have access to the requested resource.
>> If not, I will display an error message 'Access Denied'.
>> I detect if the request was Ajax, in this case, I'll have to send the
>> message through Json:
>>
>>
>> if($this->_request->isXmlHttpRequest()) {
>> echo Zend_Json::encode( array('success' => false, 'msg' => 'Access
>> denied.') );
>> die();
>> }
>>
>> If I don't use die(), the request will continue its way and go to some
>> method, probably displaying also Json. But the access should be denied
>> and
>> nothing should be printed afterwards.
>>
>> Is die() a good way of doing this or is there a more proper way ?
>>
>> Thank you !!
>
> If you throw an Zend_Controller_Action_Exception you get a 404: not found.
> If
> you throw some other exceptions, you get a 500: server error. I extended
> the
> error plugin by recognizing My_Acl_Exception. It will return a 403:
> Forbidden
> error.
>
> Your error controller might have a AJAX context switch for all AJAX calls
> (and
> such: might be able to return 404's and 500's as well).
>
> Regards, Jurian
> --
> Jurian Sluiman
> Soflomo.com
>
>
>
>
--
View this message in context:
http://www.nabble.com/Proper-way-to-stop-a-request-from-preDispatch---tp25108403p25123878.html
Sent from the Zend Framework mailing list archive at Nabble.com.