定制 wovosoft/laravel-permissions 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wovosoft/laravel-permissions

Composer 安装命令:

composer require wovosoft/laravel-permissions

包简介

Roles and Permissions Implementation for https://github.com/spatie/laravel-permission using Laravel and Bootstrap-Vue

README 文档

README

Wovosoft Software Development Compnay

Laravel Role & Permissions Front-End Implementation using spatie/laravel-permission

Latest Stable Version Total Downloads Latest Unstable Version License

Package description

The package is a Front-End Implementationf of the spatie/laravel-permission package. The spatie/laravel-permission is an awesome package for managing Roles & Permissionf for Laravel applications out of the box. But currently it doesn't have the front-end to easily deploy in your application.

This package comes to solve this problem. The package implements almost every features provided by spatie/laravel-permission.

Features

  • Vue Components for each possible features .
  • Components are reusable. So, the default layout can be modified according to the needs of your application.
  • Currently the front-end uses Bootstrap-Vue. But you can easily change it's layout.
  • The front-end vue components are packaged as an npm package. You can use it as a module for you bundlers eg. Webpack,
  • Check the main spatie/laravel-permission for more details.

Installation

Install via composer

composer require wovosoft/laravel-permissions

Publish Configuration File

  1. Publish the configuration file.
php artisan vendor:publish --provider="Wovosoft\LaravelPermissions\ServiceProvider" --tag="config"
  1. Publish the Vue Components. The Published components will be copied to resources/laravel-permissions/permissions folder. You need to add the Main.vue component to your app.js
php artisan vendor:publish --provider="Wovosoft\LaravelPermissions\ServiceProvider" --tag="resources"
  1. Publish the Migrations
php artisan vendor:publish --provider="Wovosoft\LaravelPermissions\ServiceProvider" --tag="migrations"
  1. Publish the Seeds
php artisan vendor:publish --provider="Wovosoft\LaravelPermissions\ServiceProvider" --tag="seeds"

Configuration

  1. In App\User.php model add the HasRoles.php Trait.
//other imports goes here
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;
    // other codes goes here
}
  1. Now Run
php artisan migrate
  1. Go to config/laravel-permissions.php . Add Default Permissions and Roles.
<?php

return [
    "route_name_prefix" => "Wovosoft",
    "route_url_prefix" => "backend",
    "middleware" => ["web", "auth"],
    "users_table" => "users",                //Default Laravel Generated Name
    "roles_table" => config("permission.table_names.roles"),                //comes from spatie config file.
    "permissions_table" => config("permission.table_names.permissions"),    //comes from spatie config file
    "default_permissions" => [
        [
            "name" => "add user",
            "description" => "Can Add User"
        ],
        [
            "name" => "edit user",
            "description" => "Can Edit User"
        ],
        [
            "name" => "delete user",
            "description" => "Can Delete User"
        ]
    ],
    "default_roles" => [
        [
            "name" => "Super Admin",
            "description" => "Super Admin Manages Everything"
        ],
        [
            "name" => "User",
            "description" => "User Role"
        ],
        [
            "name" => "Customer",
            "description" => "Customer Role"
        ]
    ]
];
  1. The package adds the routes automatically prefixed by backend, so your other routes should't be prefixed by backend. But you can change it in config/laravel-permissions.php config file. To check the registered routes, run in your terminal from project the root,
php artisan route:list
  1. The gates are automatically registered during boot-up by spatie/laravel-permission

Usage

  1. So, according to config/laravel-permissions.php (#3) you can perform user abilities as follows:
if(auth()->can('permission')){
  echo "Auth user is allowed to perform this operation";
}
if(App\User::find(1)->can('permission')){
  echo "Auth user is allowed to perform this operation";
}
$role = Wovosoft\LaravelPermissions\Models\Roles::find(1);
if($role->hasAbility('permission')){
  echo "The Role with ID 1 is allowed to perform this operation";
}
  1. Check the main spatie/laravel-permission for more details.

Note

Please keep in mind, the default Role and Permission models provided by spatie/laravel-permission are extended in the package. That's why rather than using Spatie\Permission\Models\Role for Role and Spatie\Permission\Models\Permission please use Wovosoft\LaravelPermissions\Models\Roles for Role and Wovosoft\LaravelPermissions\Models\Permissions for Permission respectively.

Example Project

Click here to check the demo project https://github.com/wovosoft/laravel-permissions-example

Security

If you discover any security related issues, please email narayanadhikary24@gmail.com or create issue in the Github Repository.

Credits

This package is bootstrapped with the help of wovosoft/crud.

统计信息

  • 总下载量: 268
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 9
  • Watchers: 1
  • Forks: 2
  • 开发语言: Vue

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-04-01