I recently had a problem very similar to this, but it may not have
been the same. Anyway, here's my explanation and solution:
AuthComponent was not creating an instance of AclComponent to use at
AuthComponent::$Acl.
To fix this I added the following function to AppController:
function _initAuthAcl() {
if (!isset($this->Auth->Acl)) {
$this->Auth->Acl =& $this->Acl;
}
}
And call it from AppController::beforeFilter():
function beforeFilter() {
/* AuthComponent configuration */
$this->_initAuthAcl();
}
And finally when you're overriding a callback don't forget to call the
original. So, in your normal controllers:
function beforeFilter() {
parent:beforeFilter();
$this->Auth->allow('add', 'index', 'login','logout');
}
This solution was very specific to my problem, but I hope it helps.
On Jul 7, 3:34 pm, Taff <[email protected]> wrote:
> In my AppController I have
>
> <?php
> class AppController extends Controller {
> var $components = array('Acl', 'Auth');
>
> function beforeFilter() {
> //Configure AuthComponent
> $this->Auth->authorize = 'actions';
> $this->Auth->loginAction = array('controller' => 'users',
> 'action' => 'login');
> $this->Auth->logoutRedirect = array('controller' => 'users',
> 'action' => 'login');
> $this->Auth->loginRedirect = array('controller' => 'posts',
> 'action' => 'add');
> }
>
> }
>
> ?>
>
> which I was under the impression would make the components available
> in all the controllers I am using in the app.
>
> function beforeFilter() {
> $this->Auth->allow('add', 'index', 'login','logout');
> }
>
> in a controller however gives me the "Call to a member function on a
> non-object" error unless I add
> var $components = array('Acl', 'Auth');
>
> to that controller too, which obviously isn't much of a problem, but I
> would like to understand why, as I am very new to cakePHP and would
> like to understand why.
>
> Thanks for any pointers!
> Taff
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---