christhompsontldr/impersonate

该软件包的最新版本(v2.0.0)没有可用的许可信息。

允许用户模拟其他用户。

v2.0.0 2020-10-13 19:48 UTC

This package is auto-updated.

Last update: 2024-09-15 13:07:18 UTC


README

此Laravel软件包允许用户模拟其他用户。

安装

Composer

使用Composer要求此软件包

composer require christhompsontldr/impersonate

模型

更新您的用户模型以使其可模拟。

namespace App\Models;

use Christhompsontldr\Impersonate\Models\Traits\Impersonatable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Impersonatable;

访问控制

您必须完成此步骤,否则您的用户将没有模拟权限。

可以通过特质来控制哪些授权用户可以进行模拟以及他们可以模拟哪些用户。这可以在您的用户模型上重载

在此示例中,用户模型有一个 is_admin 属性正在被检查。

public function canImpersonate(User $user)
{
    return $this->is_admin ?: false;
}

或者如果您正在使用 Laratrust

public function canImpersonate(User $user)
{
    // can't impersonate other admins
    if ($user->hasRole('admin')) {
        return false;
    }

    // current user is admin
    return $this->hasRole('admin');
}

问题

将同时对主用户和被模拟用户执行注销操作。

源代码

此软件包基于 此示例