0

我正在使用 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所有卖家仍然可以采取行动。

4

1 回答 1

0

您需要将Auth配置更改为 'checkAuthIn'(默认): initialize()'Controller.initialize''Controller.startup'

$this->Auth->config('checkAuthIn', 'Controller.initialize');

按照文档$this->Auth->user()中的说明使用。beforeFilter()

于 2017-01-30T09:36:41.717 回答