我正在使用CakePHP 3.2开发卖家小组。
有sellers
表来存储所有详细信息和凭据,整数类型上有一列status
。
status
列用于标记卖家是否已批准
0 = Registered not approved
1 = Approved
2 = Canceled
sell
中有ProductsController.php
次操作。
我想允许此操作仅限状态为1的卖家。如果用户未获批准,则按照状态ID打印消息
1 : Sorry! Your account is not verified yet.
2 : Sorry! Your account has been canceled. Contact Admin.
这就是我正在采取的阻止sell
行动的方法。我在beforeFilter()
ProductsController.php
中添加了以下代码
public function beforeFilter(Event $event)
{
parent::beforeFilter($event);
if ($this->Auth->user('status') != 1) {
$this->Auth->deny(['sell']);
}
}
但这不起作用,所有卖家仍然可以使用sell
行动。
答案 0 :(得分:0)
您需要将'checkAuthIn'
上的身份验证配置initialize()
更改为'Controller.initialize'
(默认'Controller.startup'
):
$this->Auth->config('checkAuthIn', 'Controller.initialize');
如documentation中所述,在$this->Auth->user()
中使用beforeFilter()
。