2009-12-18 6 views

Antwort

13

Kopieren Sie die Datei pages_controller.php in cake/libs/controllers in Ihre app/controllers/dir. Dann können Sie es ändern, um alles zu tun, was Sie wollen. Mit der Auth Komponente, die typische Art und Weise spezifischer Zugang zu ermöglichen, ist wie folgt:

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

Ich empfehle Kopieren hoch die Datei auf dem Controller dir, anstatt sie an Ort und Stelle bearbeiten, weil es Kuchen macht Upgrade wird viel einfacher, und weniger wahrscheinlich, dass Sie versehentlich etwas überschreiben.

+3

$ this-> Auth-> erlauben ('*'); wird auch gut funktionieren. – Wayne

+0

True, obwohl das alle Aktionen in den Seiten Controller erlaubt. Ich denke, das OP sagte, dass er allen den Zugriff erlauben wolle, aber nur bestimmte Ansichten im PC. –

+0

@Wayne Wirklich? Es ist wie in einem Flugzeug ohne Deckung fliegen. –

11

Sie könnten Ihrem app_controller Folgendes hinzufügen.

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

Dann müssen Sie den Seitencontroller nicht kopieren.

5

Ich habe die anderen Möglichkeiten nicht ausprobiert, aber dies ist auch der richtige Weg, um Zugriff auf all diese statischen Seiten zu ermöglichen, da die Anzeige die übliche Aktion ist. In app_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')); 
Verwandte Themen