Używam komponentu Auth CakePHP i jest on w moim app_controller.php
.Jak usunąć autoryzację ze kontrolera stron w CakePHP?
Teraz chcę zezwolić na określone widoki ze sterownika stron. Jak mogę to zrobić?
Używam komponentu Auth CakePHP i jest on w moim app_controller.php
.Jak usunąć autoryzację ze kontrolera stron w CakePHP?
Teraz chcę zezwolić na określone widoki ze sterownika stron. Jak mogę to zrobić?
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.
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.
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'));
$ this-> Auth-> allow ('*'); też będzie działać dobrze. – Wayne
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. –
@Wayne naprawdę? To jak latanie w samolocie bez osłony. –