标签: spatie

spatie/laravel-permission 没有名为`edit_project` 的权限用于guard `api`

我正在使用 Laravel 5.6 和 spatie/laravel-permission 2.9 版,还使用 ​​Laravel Passport 作为$guard = 'api'.

当我尝试在['edit_project', 'add_project' 'delete_project']此功能的帮助下为角色分配一系列权限时

public function assignPermissions($role, $permissions)
    {

        $role = Role::findByName($role);

        $role->givePermissionTo($permissions);

        return $role;
    }
Run Code Online (Sandbox Code Playgroud)

但得到错误There is no permission namededit_project for guardapi`。

我也在 config/auth.php

return [

/*
|--------------------------------------------------------------------------
| Authentication Defaults
|--------------------------------------------------------------------------
|
| This option controls the default authentication "guard" and password
| reset options for your application. You may change these defaults
| as required, but they're a perfect …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 spatie

7
推荐指数
4
解决办法
1万
查看次数

如何从 Google Analytics 4 获取视图 ID?

我试图从 GA (Google Analytics) 中检索有关我网站的所有信息。我正在使用 laravel 和这个包https://github.com/spatie/laravel-analytics来让我的生活更轻松。但是,该软件包需要来自 GA 的“查看 ID”,我无法帮助自己找到它。我读了这个线程https://support.google.com/analytics/thread/15684521?hl=en,我猜从 GA 4 开始,他们完全从 Web + 应用程序属性中删除了视图列(将创建为默认)(请纠正我)。以前有人遇到过这个问题吗?我在哪里可以找到“查看 ID”?有没有一些文章可以帮助我解决这个问题?关于实现我的目标的更好方法的任何建议?

google-analytics laravel spatie google-analytics-4

6
推荐指数
2
解决办法
3953
查看次数

允许某些角色访问 Laravel Nova 仪表板?

我安装了 Spatie Permissions 包,并创建了策略来限制使用此包的模型的访问权限。

但是,我在创建一个网关以启用某些角色(例如“管理员”和“内容编辑器”)来访问 Nova 仪表板时遇到了一些困难?

我认为它会涉及 NovaServiceProvider 中的 gate() 函数。这是我尝试过的。

   protected function gate()
    {
        Gate::define('viewNova', function ($user) {
             if ($user->hasRole('Admin') || $user->hasRole('Content Editor'))
    {
        return true;
    }
       });
    }
Run Code Online (Sandbox Code Playgroud)

permissions authorization laravel spatie laravel-nova

5
推荐指数
1
解决办法
5418
查看次数

Google 日历 api 未显示组织者名称并发送通知电子邮件 - laravel

我正在使用 laravel 包进行谷歌日历 API 集成。在这方面,我只能创建只有参加者的活动。我试过创建组织者,但没有出现。以下是我使用过的代码。此处的组织者名称默认为创建 API 凭据的电子邮件,电子邮件通知也不会发送。

我正在使用的包是"spatie/laravel-google-calendar".

谁能告诉我我在这里做错了什么?

Event::create([
               'name' => 'Latest Event dsfdsfsdfsdf',
               'location' => '800 Howard St., San Francisco, CA 94103',
               'description' => 'A chance to hear more about Google\'s developer products.',           
               'startDateTime' => Carbon\Carbon::now(),
               'endDateTime' => Carbon\Carbon::now()->addHour(),
               'sendNotifications' => true,
               'sendUpdates' => 'all',
               'organizer' => array('email' => 'test@gmail.com','displayName' => 'Darshan')
               'attendees' => array(
                array('email' => 'test@gmail.com','displayName' => 'Darshan', 'organizer' => true),
                array('email' => 'darshan@test.com','displayName' => 'Ryan')
              )
            ]); 
Run Code Online (Sandbox Code Playgroud)

google-calendar-api google-api laravel laravel-5.1 spatie

5
推荐指数
1
解决办法
858
查看次数

Laravel 5.5自动发现未注册

我正在安装spatie\laravel-backup软件包。根据说明,我只需要composer require spatie\laravel-backup识别该软件包并自动安装即可。看起来好像是这样:

Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
Discovered Package: spatie/laravel-backup
Run Code Online (Sandbox Code Playgroud)

但是,在提供程序中/config/app.php没有提及backup任何内容,/config/backup.php也没有找到预期的配置文件。

我是否需要发出其他命令才能完成自动发现?

php laravel laravel-5.5 spatie

4
推荐指数
1
解决办法
2230
查看次数

一般错误:'"mysqldump"'未被识别为内部或外部命令

我使用Laravel Spatie Backup,安装完成后,首先运行它 $ composer require spatie/laravel-backup

$ composer require spatie/laravel-backup

Using version ^5.6 for spatie/laravel-backup
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
  - Installing spatie/temporary-directory (1.1.3): Downloading (100%)
  - Installing spatie/db-dumper (2.9.0): Downloading (100%)
  - Installing spatie/laravel-backup (5.6.0): Downloading (100%)
spatie/laravel-backup suggests installing guzzlehttp/guzzle (Allows notifications to be sent via Slack)
Writing lock file
Generating optimized autoload files
Run Code Online (Sandbox Code Playgroud)

然后$ php工匠供应商:发布--provider ="Spatie\Backup\BackupServiceProvider"

 $ php artisan …
Run Code Online (Sandbox Code Playgroud)

php backup laravel spatie

4
推荐指数
3
解决办法
1630
查看次数

Laravel 5.7 + Spatie 权限 + JWT 身份验证

我正在使用 Laravel 5.7 设置 REST API。为了验证身份验证,我使用JWT-auth以及我使用Spatie 的权限和角色。

我的问题:尝试将角色链接到用户时,出现以下错误

Spatie \ Permission \ Exceptions \ RoleDoesNotExist
There is no role named admin.
Run Code Online (Sandbox Code Playgroud)

该角色确实存在于数据库中: 在此处输入图片说明

这就是我尝试为用户分配角色的方式:

$user = User::findOrFail(1);
$user->assignRole('admin');
Run Code Online (Sandbox Code Playgroud)

由于我是 Laravel 的新手,我不确定它是否相关,但是设置 JWT 我不得不将警卫的驱动程序更改config/auth.phpjwt

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'jwt',
        'provider' => 'users',
    ],
],
Run Code Online (Sandbox Code Playgroud)

我看不出我做错了什么。我添加了角色,然后尝试将角色添加到用户。

php jwt laravel spatie

4
推荐指数
1
解决办法
4667
查看次数

自定义 Spatie Laravel-Permission 异常消息

我在 Laravel 5.8 API 应用程序中添加了Saptie Laravel 权限包。一切正常,当非管理员用户尝试访问管理员特定路由时,我会遇到异常。

但是,默认异常呈现为 HTML 403 User does not have the right roles。考虑到我在 API 应用程序中使用它,我想为此类异常返回我自己的自定义消息。

我尝试检查是否auth()->user()->hasRole('admin')仍然获得相同的默认异常页面。这是我的代码

路线

Route::post('products', 'ProductController@store')->middleware('role:super-admin|admin'); // create a new product
Run Code Online (Sandbox Code Playgroud)

控制器方法

if (auth()->user()->hasRole('admin')) {

    // create & store the product
    $product = Product::create($request->all())

    // return new product
    $responseMessage    = 'Successful operation';
    $responseStatus     = 200;
    $productResource    = new ProductResource($product);

    return response()->json([
        'responseMessage'   => $responseMessage,
        'responseStatus'    => $responseStatus,
        'product'           => $productResource
    ]);
} else {

    return response()->json([
        'responseMessage'   => …
Run Code Online (Sandbox Code Playgroud)

php laravel spatie

3
推荐指数
1
解决办法
2352
查看次数

没有名为“admin”的角色。拉拉维尔

我使用这个包:

https://github.com/spatie/laravel-permission/tree/v2

代码 :

     $user=User::find(2);
    $user->assignRole('admin');
Run Code Online (Sandbox Code Playgroud)

当我将管理员角色分配给用户时,我正在处理此错误

没有名为admin.Spatie\Permission\Exceptions\RoleDoesNotExist 的角色

这是我在 auth.php 中的默认保护:

    <?php

return [

    'defaults' => [
        'guard' => 'api',
        'passwords' => 'users',
    ],


    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
    ],
Run Code Online (Sandbox Code Playgroud)

这是我的角色表:

在此处输入图片说明

这是我的 role_has_permission 表

在此处输入图片说明

这是我的权限表:

在此处输入图片说明

laravel spatie laravel-permission

2
推荐指数
1
解决办法
4870
查看次数

Laravel Spatie 通过 Eager Loading 获得所有权限

大家!我正在使用 Laravel Spatie 权限包。我可以像这样获得用户的所有分配权限。

$user->getAllPermissions()
Run Code Online (Sandbox Code Playgroud)

但是,我想通过急切加载获得所有权限。也许像这样。

$users = User::with('getAllPermissions')->get();
Run Code Online (Sandbox Code Playgroud)

但这没有用。

我试过

$users = user::with('permissions')->get();
Run Code Online (Sandbox Code Playgroud)

但查询计数与结果相同

$users = user::get();
Run Code Online (Sandbox Code Playgroud)

那么$user->getAllPermissions()已经是急切加载的查询了吗?

或者是否有任何急切加载的查询?

permissions laravel laravel-5 spatie laravel-permission

2
推荐指数
1
解决办法
3485
查看次数