我在这里遇到了一个非常奇怪的情况,我希望这些集体知识可以提供帮助。
我正在使用传统的CakePHP 1.3应用程序,使用本机Auth
组件来保护大多数应用程序页面。但是, public 页面可供任何人访问,并使用$this->Auth->allow()
现在,我们有一个URL(使用Cake的Router
类),如果输入浏览器,直接进入预期的页面,一切正常。
但是,如果您将网址用作锚标记的href
并点击该链接,则会被退回到我们应用的登录页面,就像您访问了私有网页一样URL。
我不确定我是否可以提供确切的网址,因为这是基于客户端的公共网页,而非普通公众
我们已经调试了路由,并且知道它一旦到达最终的控制器动作就会重定向,而不是在继承链中更高。
有没有人遇到类似的东西并有解决方案?
根据评论中的要求,我已经分享了一些代码。它的编辑很简洁,但不完整
公共控制员App::import('Controller', 'Events.Bookings');
class PublicBookingsController extends BookingsController
{
public function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('*');
}
}
预订控制器
class BookingsController extends EventsAppController
{
public new_booking()
{
die('Reached new booking');
}
}
事件App Controller
App::import('Controller', 'Occurrence');
class EventsAppController extends OccurrenceController
{
public function beforeFilter()
{
parent::beforeFilter();
// various plugin set up code
}
}
发生控制器
class OccurrenceController extends AppController
{
public function beforeFilter()
{
parent::beforeFilter();
// generic plugin setup code snipped
}
}
路线
Router::connect('/path/to/url', array('plugin' => 'events', 'controller' => 'public_bookings', 'action' => 'new_booking');