/** * @inheritdoc */ public function checkAccess($userId, $permissionName, $params = []) { $permissionName = preg_replace('#^\\/(.*)#', '$1', $permissionName); foreach ($this->getPermissions() as $permission) { if ($permission->type == $permission::TYPE_ROLE) { continue; } if (!preg_match('#^' . $permission->name . '$#', $permissionName)) { continue; } if (parent::checkAccess($userId, $permission->name, $params)) { return true; } } return parent::checkAccess($userId, $permissionName, $params); }
public function checkAccess($userId, $permission, $params = []) { if (isset(Yii::$app->user)) { $user = Yii::$app->user->identity; if (!$user || $user->id != $userId) { $user = call_user_func([Yii::$app->user->identityClass, 'findIdentity'], $userId); } if (isset($user->username)) { $userId = $user->username; } if (isset($user->roles)) { $this->setAssignments($user->roles, $userId); } } return parent::checkAccess($userId, $permission, $params); }