2009-12-18 26 views

Trả lời

13

Sao chép tệp pages_controller.php trong bánh/libs/bộ điều khiển vào ứng dụng/bộ điều khiển/thư mục của bạn. Sau đó, bạn có thể sửa đổi nó để làm bất cứ điều gì bạn muốn. Với các thành phần auth, cách điển hình để cho phép truy cập cụ thể là như thế này:

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

Tôi khuyên bạn nên đánh giá cao sao chép các tập tin vào điều khiển dir của bạn, chứ không phải chỉnh sửa nó tại chỗ, bởi vì nó sẽ làm cho việc nâng cấp bánh dễ dàng hơn nhiều, và ít có khả năng bạn vô tình ghi đè lên một số nội dung.

+3

$ this-> Auth-> allow ('*'); cũng sẽ hoạt động tốt. – Wayne

+0

Đúng, mặc dù điều đó sẽ cho phép tất cả các hành động trong bộ điều khiển trang. Tôi nghĩ rằng OP cho biết rằng ông muốn cho phép truy cập vào tất cả mọi người nhưng chỉ trên quan điểm cụ thể trong PC. –

+0

@Wayne Thật sao? Nó giống như đang bay trên máy bay mà không có trang bìa. –

11

Bạn có thể thêm thông tin sau vào app_controller của mình.

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

Sau đó, bạn không phải sao chép bộ điều khiển trang.

5

Tôi chưa thử các cách khác nhưng đây cũng là cách phù hợp để cho phép truy cập vào tất cả các trang tĩnh đó dưới dạng hiển thị là hành động chung. Trong 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')); 
Các vấn đề liên quan