Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Relay Authorization Bundle Laravel Package

dbp/relay-authorization-bundle

View on GitHub
Deep Wiki
Context7

Events

GetAvailableResourceClassActionsEvent

This event is callback used by the Rest Web API to get available actions for a resource class.

Your event subscriber receives an instance of Dbp\Relay\AuthorizationBundle\Event\GetAvailableResourceClassActionsEvent and can specify the set of available

  • resource item actions (like 'get' (item), 'delete')
  • resource collection actions (like 'create', 'get' (collection))

for your resource class(es).

For example:

<?php

namespace Vendor\MyApp\EventSubscriber;

use Dbp\Relay\AuthorizationBundle\Event\GetAvailableResourceClassActionsEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class GetAvailableResourceClassActionsEventSubscriber implements EventSubscriberInterface
{
    private const RESOURCE_CLASS = 'VendorMyAppMyResource';
    
    public static function getSubscribedEvents(): array
    {
        return [
            GetAvailableResourceClassActionsEvent::class => 'onGetAvailableResourceClassActionsEvent',
        ];
    }

    public function onGetAvailableResourceClassActionsEvent(GetAvailableResourceClassActionsEvent $event)
    {
        switch ($event->getResourceClass()) {
            case self::RESOURCE_CLASS:
                $event->setItemActions(['read', 'update', 'delete']);
                $event->setCollectionActions(['create']);
                break;
            // case self::ANOTHER_RESOURCE_CLASS:
            //   ...
        }
    }
}

Be sure to only set the actions for your own resource classes, becuase your subscriber will be called whenever available actions are requested.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
yandex/translate-api
voku/simple_html_dom
league/flysystem-vfs
bkwld/upchuck
filament/spatie-laravel-tags-plugin
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php