mlab817/lighthouse-graphql-permission

此包已被弃用且不再维护。未建议替代包。

为 spatie/laravel-permission 添加 GraphQL 类型和方法

1.16.0 2020-12-20 13:00 UTC

This package is auto-updated.

Last update: 2021-02-20 13:20:35 UTC


README

一个 composer 包,用于向 spatie/laravel-permission 添加 GraphQL 类型。

安装

要安装此包,请在项目目录中运行以下命令

composer require mlab817/lighthouse-graphql-permission

该命令还将安装包的依赖项: spatie/laravel-permissionnuwave/lighthouse

设置

  1. 按照常规设置 spatie/laravel-permission。在 config/app.php 文件中添加 Spatie Permission Service Provider。也在您的用户模型中添加 HasRoles 特性。不要忘记发布和运行迁移。如果您需要修改包的配置,也可以通过发布包的配置文件来这样做。
  2. config/app.php 文件中添加 \Mlab817\LighthouseGraphQLPermission\Providers\LighthouseGraphQLPermissionServiceProvider::class。这将把包的服务提供者添加到您的应用中。然后,通过运行 php artisan vendor:publish 并选择相关选项,发布包的 configschema 文件。
  3. 现在您可以使用此包了。

模式

type Permission {
  id: ID
  name: String
  guard_name: String
}

type Role {
  id: ID
  name: String
  guard_name: String
}

input CreateRoleInput {
  name: String!
}

input CreatePermissionInput {
  name: String!
}

input GivePermissionToUserInput {
  user_id: ID!
  permission: String!
}

input AssignRoleInput {
  user_id: ID!
  role: String!
}

input GivePermissionToRoleInput {
  user_id: ID!
  permission: String!
}

input RevokePermissionToUserInput {
  user_id: ID!
  permission: String!
}

input RevokePermissionToRoleInput {
  role: String!
  permission: String!
}

type Mutation {
  createRole(input: CreateRoleInput!): Role!
  createPermission(input: CreatePermissionInput!): Permission!
  givePermissionToUser(input: GivePermissionToUserInput!): String
  assignRole(input: AssignRoleInput!): User!
  givePermissionToRole(input: GivePermissionToRoleInput!): String
  revokePermissionToUser(input: RevokePermissionToUserInput!): String
  revokePermissionToRole(input: RevokePermissionToRoleInput!): String
}