PHPackages                             daliendev/permissiongroup - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. daliendev/permissiongroup

Abandoned → [outl1ne/nova-permissions](/?search=outl1ne%2Fnova-permissions)ArchivedPackage

daliendev/permissiongroup
=========================

Permission Group for Laravel Nova allows for the management of various permission values within a single JSON column.

0.0.2(3y ago)024MITVuePHP ^8.2

Since Feb 10Pushed 3y ago1 watchersCompare

[ Source](https://github.com/daliendev/permission-group)[ Packagist](https://packagist.org/packages/daliendev/permissiongroup)[ RSS](/packages/daliendev-permissiongroup/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)DependenciesVersions (3)Used By (0)

PermissionGroup Field
=====================

[](#permissiongroup-field)

Prerequisites
-------------

[](#prerequisites)

1. Laravel Nova 4 installed in your application
2. Composer installed on your system

Installation
------------

[](#installation)

```
composer require daliendev/permissiongroup
```

Prepare your migrations
-----------------------

[](#prepare-your-migrations)

You will need a column in JSON format.

```
class CreateRolesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('roles', function (Blueprint $table) {
            ...
            $table->json('permissions')->nullable();
            ...
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('roles');
    }
}
```

Basic Usage
-----------

[](#basic-usage)

To use the PermissionGroup field in your Nova application, you need to add the field to your Nova resource. To do this, simply add the following code:

```
use Daliendev\PermissionGroup

public function fields(Request $request)
{
    return [
        ...
        PermissionGroup::make('Permissions', 'permissions')
        ->on(User::class)
        ->on(Role::class)
        ...
    ];
}
```

This will display two CRUD oriented BooleanGroups and all the value will be stored in same {permissions} attribute/column of your model.

Custom permissions can also be specified (in addition to the CRUD on a resource and as an independent group):

```
    PermissionGroup::make('Permissions', 'permissions')
        ->on(User::class, [
            'test' => 'Test'
        ])
        ->on(Role::class)
        ->with('Other', [
            'can_view_secret_page' => 'can view secret page'
        ])
        ->with('Other2', [
            'can_view_logs' => 'can view logs'
        ]),
```

So **permissions** column of your role can store as much value as needed in JSON format:

```
["can_view_role", "can_view_user", "can_view_logs_other", "test_user"]
```

As all Laravel Nova Fields the following methods may be used to show / hide fields based on the display context:

```
    showOnIndex
    showOnDetail
    showOnCreating
    showOnUpdating
    showOnPreview
    showWhenPeeking
    hideFromIndex
    hideFromDetail
    hideWhenCreating
    hideWhenUpdating
    onlyOnIndex
    onlyOnDetail
    onlyOnForms
    exceptOnForms

```

For more details please refer to related [Laravel Nova documentation page](https://nova.laravel.com/docs/4.0/resources/fields.html#showing-hiding-fields).

Some example screenshots:

[![Permission Group on Form page](./docs/images/form.png)](./docs/images/form.png)[![Permission Group on Detail page](./docs/images/detail.png)](./docs/images/detail.png)[![Permission Group on Index page](./docs/images/index.png)](./docs/images/index.png)

---

2023

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~18 days

Total

2

Last Release

1173d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d507e4b7010ff0be02683b0f20658bfa8e7961f331778b1e8800f4ccf50cdb88?d=identicon)[daliendev](/maintainers/daliendev)

---

Top Contributors

[![daliendev](https://avatars.githubusercontent.com/u/53065505?v=4)](https://github.com/daliendev "daliendev (12 commits)")

---

Tags

laravellaravel-frameworklaravel-novalaravel-nova-fieldlaravel-packagelaravelnova

### Embed Badge

![Health badge](/badges/daliendev-permissiongroup/health.svg)

```
[![Health](https://phpackages.com/badges/daliendev-permissiongroup/health.svg)](https://phpackages.com/packages/daliendev-permissiongroup)
```

###  Alternatives

[optimistdigital/nova-multiselect-field

A multiple select field for Laravel Nova.

3403.5M7](/packages/optimistdigital-nova-multiselect-field)[coreproc/nova-notification-feed

A Laravel Nova package that adds a notification feed in your Nova app.

10149.1k](/packages/coreproc-nova-notification-feed)[inspheric/nova-defaultable

Default values for Nova fields when creating resources and running resource actions.

51174.8k1](/packages/inspheric-nova-defaultable)[cybercog/laravel-nova-ban

A Laravel Nova banning functionality for your application.

40199.8k](/packages/cybercog-laravel-nova-ban)[insenseanalytics/nova-server-monitor

A Laravel Nova tool for Spatie's Server Monitor library.

6546.9k](/packages/insenseanalytics-nova-server-monitor)[datomatic/nova-detached-actions

A Laravel Nova tool to allow for placing actions in the Nova toolbar detached from the checkbox selection mechanism.

11229.2k](/packages/datomatic-nova-detached-actions)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
