Laravel Spatie权限自定义添加团队模块

时间:2020-03-18 15:46:32

标签: laravel laravel-5 permissions user-permissions spatie

我设置了默认的laravel许可包(spatie)。 在这里,我将添加一个模型Team。 这样我们就可以建立这样的团队模型。

<?php

namespace App\Models;

    class Team extends BaseModel
    {

        public function users()
        {
            return $this->belongsToMany('App\Models\User', 'team_users', 'team_id', 'user_id')->withTimestamps();
        }
    }

当然,也有用户角色,例如master admin, admin, client, employee, user。 我将向role - permission关系这样的团队分配权限。

因此,我made model_has_team, team_has_permission表。

Schema::create($tableNames['role_has_permissions'], function (Blueprint $table) use ($tableNames) {
            $table->unsignedBigInteger('permission_id');
            $table->unsignedBigInteger('team_id');

            $table->foreign('permission_id')
                ->references('id')
                ->on($tableNames['permissions'])
                ->onDelete('cascade');

            $table->foreign('team_id')
                ->references('id')
                ->on($tableNames['roles'])
                ->onDelete('cascade');

            $table->primary(['permission_id', 'team_id'], 'role_has_permissions_permission_id_role_id_primary');
        });

该如何在视图或控制器中使用它?

user-team-permission
user-permission
user-role-permission

对于一个许可,我认为我应该考虑上述三个许可。 谁能帮我吗?

0 个答案:

没有答案