2009-12-18 5 views

Odpowiedz

13

Skopiuj plik pages_controller.php do ciast/bibliotek/kontrolerów do swojej aplikacji/kontrolerów/katalogu. Następnie możesz go zmodyfikować, aby zrobił cokolwiek chcesz. Ze składnikiem auth, typowy sposób, aby umożliwić specyficzne dostęp jest tak:

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

Polecam bardzo kopiując plik na kontrolerów dir, zamiast edytowania go na miejscu, ponieważ uczyni modernizacji ciasto o wiele łatwiej, i mniej prawdopodobne, że przypadkowo nadpiszesz niektóre rzeczy.

+3

$ this-> Auth-> allow ('*'); też będzie działać dobrze. – Wayne

+0

To prawda, chociaż pozwoli to na wszystkie czynności w sterowniku stron. Uważam, że PO powiedział, że chce umożliwić dostęp wszystkim, ale tylko w określonych widokach na PC. –

+0

@Wayne naprawdę? To jak latanie w samolocie bez osłony. –

11

Możesz dodać następujące elementy do kontrolera app_controller.

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

Następnie nie trzeba kopiować kontrolera stron.

5

Nie próbowałem innych sposobów, ale jest to również właściwy sposób na umożliwienie dostępu do wszystkich tych stron statycznych, ponieważ wyświetlanie jest tym typowym działaniem. W 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'));