承接 codeflextech/permission-manager 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

codeflextech/permission-manager

最新稳定版本:1.1.4

Composer 安装命令:

composer require codeflextech/permission-manager

包简介

A plug-and-play Roles & Permissions management UI for Laravel using spatie/laravel-permission. Drop it in any project.

README 文档

README

A plug-and-play Roles & Permissions management UI for any Laravel project using spatie/laravel-permission + Livewire 3.

Built by CodeFlexTech.

Features

  • Permission CRUD — create, edit, delete with dot-notation grouping (module.action)
  • Role CRUD — create, edit, delete with user/permission counts
  • Role → Permissions — visual grouped checkbox matrix with select/deselect all per group
  • User → Roles — assign/revoke multiple roles per user
  • Dashboard — stats overview + quick action cards
  • Auto permission groups — auto-detects groups from module.action naming
  • Super admin protection — blocks deletion of super admin role
  • Zero Tailwind build required — ships its own standalone CSS
  • Livewire 3 — real-time search, modals, loading states, no full page reloads
  • Configurable — layout, middleware, guard, user model, route prefix

Requirements

Dependency Version
PHP ^8.2
Laravel ^11.0
spatie/laravel-permission ^6.0
livewire/livewire ^3.0

Installation

Step 1 — Install via Composer

composer require codeflextech/permission-manager

Step 2 — Publish assets

# Publish config
php artisan vendor:publish --tag=permission-manager-config

# Publish CSS (required — serves the UI styles)
php artisan vendor:publish --tag=permission-manager-assets

# Optional: publish views to customize
php artisan vendor:publish --tag=permission-manager-views

Step 3 — Make sure spatie migrations are run

php artisan migrate

Step 4 — Add HasRoles trait to your User model

use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;
}

Step 5 — Visit the UI

http://your-app.test/permission-manager

Configuration

After publishing, edit config/permission-manager.php:

return [
    // URL prefix — default: /permission-manager
    'route_prefix' => 'permission-manager',

    // Middleware on all routes
    'middleware' => ['web', 'auth'],

    // Spatie guard
    'guard' => 'web',

    // Role name that bypasses permission checks
    'super_admin_role' => 'super_admin',

    // Your User model
    'user_model' => \App\Models\User::class,

    // Set to your app layout component to embed inside your app UI
    // e.g. 'layouts.app' — leave null to use package's standalone layout
    'layout' => null,

    // Rows per page
    'per_page' => 15,

    // Disable permission creation via UI (seed-only mode)
    'allow_create_permissions' => true,
];

Middleware / Access Control

By default only auth middleware is applied. To restrict to admins only, update config:

'middleware' => ['web', 'auth', 'role:super_admin'],

Or use a gate:

'middleware' => ['web', 'auth', 'can:manage-permissions'],

Permission Naming Convention

This package works best with dot-notation:

module.action

Examples:
  clients.view
  clients.create
  clients.edit
  clients.delete
  invoices.create
  invoices.export
  reports.sales
  reports.due_payments
  organizations.edit

The UI auto-groups by the prefix before the first ..

Using Permissions in Your App

// Check permission
$user->can('clients.create');
@can('clients.create') ... @endcan

// Check role
$user->hasRole('admin');
@role('admin') ... @endrole

// Assign role
$user->assignRole('admin');

// Sync roles
$user->syncRoles(['admin', 'editor']);

// Sync permissions to role
$role->syncPermissions(['clients.view', 'clients.create']);

Seeding Permissions

Recommended: seed permissions in a seeder, use the UI only for role assignment.

class PermissionSeeder extends Seeder
{
    public function run(): void
    {
        $permissions = [
            // Clients
            'clients.view', 'clients.create', 'clients.edit', 'clients.delete',
            // Invoices
            'invoices.view', 'invoices.create', 'invoices.edit', 'invoices.delete',
            // Reports
            'reports.sales', 'reports.payments', 'reports.due',
            // Settings
            'roles.manage', 'permissions.manage', 'organizations.edit',
        ];

        foreach ($permissions as $permission) {
            Permission::firstOrCreate(['name' => $permission, 'guard_name' => 'web']);
        }

        // Create super admin role with all permissions
        $superAdmin = Role::firstOrCreate(['name' => 'super_admin']);
        $superAdmin->syncPermissions(Permission::all());
    }
}

Routes

Method URL Name Description
GET /permission-manager permission-manager.index Dashboard
GET /permission-manager/permissions permission-manager.permissions Permissions list
GET /permission-manager/roles permission-manager.roles Roles list
GET /permission-manager/roles/{id}/permissions permission-manager.role-permissions Assign permissions to role
GET /permission-manager/users permission-manager.users Assign roles to users

Customizing Views

php artisan vendor:publish --tag=permission-manager-views

Views are published to resources/views/vendor/permission-manager/.

Changelog

v1.0.0

  • Initial release
  • Permission CRUD with group auto-detection
  • Role CRUD with super admin protection
  • Role → Permission grouped matrix
  • User → Role assignment
  • Standalone CSS, no Tailwind build required
  • Livewire 3 real-time UI

License

MIT — free to use in any project.

Made with ❤️ by CodeFlexTech

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固