serenysoft / nova-permissions

Laravel Nova 4 Roles & Permissions
72 stars 25 forks source link

There is no permission named `viewAny` for guard `web`. When I created a new rol #34

Closed Robertv9 closed 1 year ago

Robertv9 commented 1 year ago

Hello,

I create a new rol with some permissions. But I have this error. There is no permission named viewAny for guard web.

I created all roles from my different models. And Registered in my AuthServiceProvider.phhp file.

protected $policies = [ // 'App\Models\Model' => 'App\Policies\ModelPolicy', Appointment::class => AppointmentPolicy::class, BlogCategory::class => BlogCategoryPolicy::class, Blog::class => BlogPolicy::class, Brand::class => BrandPolicy::class, Client::class => ClientPolicy::class, ClientType::class => ClientTypePolicy::class, Color::class => ColorPolicy::class, Composition::class => CompositionPolicy::class, EmploymentLead::class => EmploymentLeadPolicy::class, Employment::class => EmploymentPolicy::class, Faq::class => FaqPolicy::class, FirmPage::class => FirmPagePolicy::class, Gallery::class => GalleryPolicy::class, HistoryPage::class => HistoryPagePolicy::class, HistoryYear::class => HistoryYearPolicy::class, HomeSlider::class => HomeSliderPolicy::class, HomeSliderType::class => HomeSliderTypePolicy::class, IdentificationType::class => IdentificationTypePolicy::class, Internship::class => InternshipPolicy::class, Lead::class => LeadPolicy::class, LeadType::class => LeadTypePolicy::class, LiaCollection::class => LiaCollectionPolicy::class, LiaProject::class => LiaProjectPolicy::class, Media::class => MediaPolicy::class, OrderAddress::class => OrderAddressPolicy::class, Order::class => OrderPolicy::class, OrderTransaction::class => OrderTransactionPolicy::class, PaymentType::class => PaymentTypePolicy::class, Permission::class => PermissionPolicy::class, ProductAttribute::class => ProductAttributePolicy::class, ProductCategory::class => ProductCategoryPolicy::class, ProductCollection::class => ProductCollectionPolicy::class, ProductColor::class => ProductColorPolicy::class, ProductComposition::class => ProductCompositionPolicy::class, Product::class => ProductPolicy::class, ProductProductType::class => ProductProductTypePolicy::class, ProductSize::class => ProductSizePolicy::class, ProductStock::class => ProductStockPolicy::class, ProductTopology::class => ProductTopologyPolicy::class, ProductType::class => ProductTypePolicy::class, ProjectCategory::class => ProjectCategoryPolicy::class, PromotionalCode::class => PromotionalCodePolicy::class, Province::class => ProvincePolicy::class, Role::class => RolePolicy::class, Shipment::class => ShipmentPolicy::class, ShipmentPrice::class => ShipmentPricePolicy::class, ShipmentType::class => ShipmentTypePolicy::class, SiteConfig::class => SiteConfigPolicy::class, SizeAttribute::class => SizeAttributePolicy::class, Size::class => SizePolicy::class, Status::class => StatusPolicy::class, Tags::class => TagsPolicy::class, Tax::class => TaxPolicy::class, Team::class => TeamPolicy::class, Topology::class => TopologyPolicy::class, Unit::class => UnitPolicy::class ];

When I use a super-admin rol everithing works fine. But with my new role dont work

leandrogehlen commented 1 year ago

This error occurs because the permissions table does not have viewAny... record inserted.

Please pay attention in https://github.com/spatie/laravel-permission/blob/dcad17382210404bbe8c55ae78c5271e734d17b2/src/Models/Permission.php#L93

Robertv9 commented 1 year ago

Hi, thanks for reply.

I have all the permissions created for my models and I created using with the seeder file. As can you see.

` public function run() { // Reset cached roles and permissions app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();

    $collection = collect([
        'User',
        'Role',
        'Permission',
        'Blog',
        'BlogCategory',
        'Employment',
        'Faq',
        'FirmPage',
        'Gallery',
        'HistoryPage',
        'HistoryYear',
        'HomeSlider',
        'HomeSliderType',
        'Internship',
        'LiaCollection',
        'LiaProject',
        'ProductProductType',
        'ProjectCategory',
        'Media',
        'Team',
        'Client',
        'ClientType',
        'IdentificationType',
        'Product',
        'ProductAttribute',
        'ProductCategory',
        'ProductCollection',
        'ProductComposition',
        'ProductStock',
        'ProductType',
        'Province',
        'Shipment',
        'ShipmentPrice',
        'ShipmentType',
        'SiteConfig',
        'Status',
        'Tags',
        'Tax',
        'Order',
        'OrderAddress',
        'OrderProduct',
        'OrderTransaction',
        'Color',
        'Composition',
        'ProductColor',
        'ProductSize',
        'ProductTopology',
        'PromotionalCode',
        'Size',
        'SizeAttribute',
        'Topology',
        'Unit',
        'Brand',
        'PaymentType',
        'Appointment',
        'EmploymentLead',
        'InternshipLead',
        'Lead',
        'LeadType',
    ]);

    $collection->each(function ($item, $key) {
        // create permissions for each collection item
        Permission::create(['group' => $item, 'name' => 'viewAny' . $item]);
        Permission::create(['group' => $item, 'name' => 'view' . $item]);
        Permission::create(['group' => $item, 'name' => 'update' . $item]);
        Permission::create(['group' => $item, 'name' => 'create' . $item]);
        Permission::create(['group' => $item, 'name' => 'delete' . $item]);
        Permission::create(['group' => $item, 'name' => 'destroy' . $item]);
        Permission::create(['group' => $item, 'name' => 'forceDelete' . $item]);
        Permission::create(['group' => $item, 'name' => 'restore' . $item]);
    });

    // Create a Super-Admin Role and assign all Permissions
    $role = Role::create(['name' => 'super-admin']);
    $role->givePermissionTo(Permission::all());

    // Give User Super-Admin Role
    $user = User::whereEmail('xxx@test.dev')->first(); // Change this to your email.
    $user->assignRole('super-admin');
}

`

But the error I have it for a permission without the model name. Here you can see i have all the permissions created. https://prnt.sc/FVYp7bTMCC7J

leandrogehlen commented 1 year ago

Please make a new repository showing the error