<?php
namespace common\modules\rbac\rules;

use common\modules\user\models\User;
use yii\rbac\Item;
use yii\rbac\Rule;

class UserRule extends Rule
{
    const RULE_NAME = 'UserRule';
    const PERMISSION_NAME = 'user';

    /**
     * 用户权限规则判断
     * @param int|string $userId 用户 ID.
     * @param Item $item 该规则相关的角色或者权限
     * @param array $params 传给 ManagerInterface::checkAccess() 的参数
     * @return bool 代表该规则相关的角色或者权限是否被允许
     * @author nodelog
     */
    public function execute($userId, $item, $params)
    {
        //无信息参数
        if (!isset($params['user'])) {
            return false;
        }

        /* @var $user User */
        $user = $params['user'];
        if ($user instanceof User && $user->id == $userId) {
            return true;
        }
        return false;
    }
}

?>