hasOne(
            Role::class,
            'id',
            'role_id'
        );
    }
    public function getStatusWithCssAttribute()
    {
        return ($this->status ?? 0) ?
            sprintf('', '启用') :
            sprintf('', '禁用');
    }
    public function sites(): BelongsToMany
    {
        return $this->belongsToMany(
            Site::class,
            'user_has_sites',
            'user_id',
            'site_id'
        );
    }
    public function permissions()
    {
        return $this->belongsToMany(
            Permission::class,
            'user_has_permissions',
            'user_id',
            'permission_id'
        );
    }
    protected static $permissions; //静态缓存
    public function hasAuth($auth): bool
    {
        if (!empty($this->is_super)) return true;
        if (self::$permissions === null) {
            $role = $this->role ?? null;
            if (!$role) return false;
            self::$permissions = $role->permissions->where('type', 2)->pluck('rule')->toArray();
        }
        if (in_array($auth, self::$permissions)) {
            return true;
        }
        return false;
    }
    public function username()
    {
        return $this->username ?? '';
    }
    public static function getUserList()
    {
        $userList = User::query()->pluck('nickname', 'id')->toArray()??[];
        return $userList;
    }
}