2009-12-18 7 views

Répondre

13

Copiez le fichier pages_controller.php dans cake/libs/controllers vers votre app/controllers/dir. Ensuite, vous pouvez le modifier pour faire ce que vous voulez. Avec le composant Auth, la manière typique pour permettre un accès spécifique est comme ceci:

class PagesController extends AppController { 
... 
function beforeFilter() { 
    $this->Auth->allow('action1', 'allowedAction2'); 
} 
... 

Je recommande la copie très le fichier sur votre contrôleurs dir, plutôt que de modifier en place, car il fera gâteau la mise à niveau beaucoup plus facile, et moins probable que vous écrasiez accidentellement certaines choses.

+3

$ this-> Auth-> allow ('*'); fonctionnera bien aussi. – Wayne

+0

Vrai, bien que cela permettra toutes les actions dans le contrôleur de pages. Je pense que le PO a dit qu'il voulait permettre l'accès à tout le monde, mais seulement sur des points de vue spécifiques dans le PC. –

+0

@Wayne Vraiment? C'est comme voler dans un avion sans couverture. –

11

Vous pouvez ajouter ce qui suit à votre app_controller.

function beforeFilter() { 
    if ($this->params['controller'] == 'pages') { 
    $this->Auth->allow('*'); // or ('page1', 'page2', ..., 'pageN') 
    } 
} 

Ensuite, vous n'avez pas besoin de copier le contrôleur de pages.

5

Je n'ai pas essayé les autres moyens mais c'est aussi la bonne façon de permettre l'accès à toutes ces pages statiques car l'affichage est une action courante. Dans l'application_controller:

//for all actions  
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display')); 

//for particular actions 
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'home')); 
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'aboutus')); 
Questions connexes