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

Clarc Bundle Laravel Package

artox-lab/clarc-bundle

View on GitHub
Deep Wiki
Context7

Installation

Applications that use Symfony Flex

Open a command console, enter your project directory and execute:

$ composer require artox-lab/clarc-bundle

Applications that don't use Symfony Flex

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

$ composer require artox-lab/clarc-bundle

This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.

Step 2: Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:

// config/bundles.php

return [
    // ...
    ArtoxLab\Bundle\ClarcBundle\ArtoxLabClarcBundle::class => ['all' => true],
];

Step 3: Configuration

Configure bundle

# config/packages/artox_lab_clarc.yaml

artox_lab_clarc:
    api:
        serializer:
            class: \ArtoxLab\Bundle\ClarcBundle\Core\Interfaces\UI\API\Transformers\Serializers\NullObjectArraySerializer
    security:
        rbac:
            permissions:
                ROLE_MAINTAINER:
                    - show

Security

How to setup get authenticated user permissions API endpoint

  1. Add to your project routes file config/routes.yaml
artox_lab_clarc_bundle_user_permissions:
    path: /v1/user/permissions
    controller: ArtoxLab\Bundle\ClarcBundle\Core\Interfaces\UI\API\Controllers\PermissionController::permissions
    methods: GET
  1. Setup firewall and access control in config/packages/security.yaml
security:
    firewalls:
      users:
          pattern: ^/v1
          ...
    access_control:
        - { path: ^/v1/, roles: IS_AUTHENTICATED_FULLY }

Note: If you have more than one authenticator - do the setup for each one

How to use RBAC

  1. Setup roles and permissions in config config/packages/artox_lab_clarc.yaml
  2. Require ArtoxLab\Bundle\ClarcBundle\Core\Entity\Security\AuthorizationChecker in your use case / controller
  3. Check user permission $this->authorizationChecker->isGranted('permission_name')

Navigation

  1. Setup config
# config/packages/artox_lab_clarc.yaml

artox_lab_clarc:
    navigation:
        left_menu:
            show_orphaned_root: false
            items:
                -   icon: portfolio
                    title: Управление компаниями
                    children:
                        -   icon: something
                            link: /companies
                            title: Компании
                            permissions: company.list
                        -   link: /companies/add
                            title: Добавить компанию
                            permissions: [company.create]
  1. Add routes
# config/routes.yaml

artox_lab_admin_user_navigations:
    path: /user/navigations
    controller: ArtoxLab\Bundle\ClarcBundle\Core\Interfaces\UI\API\Controllers\NavigationController::userNavigation
    methods: GET
  1. Secure routes
# config/packages/security.yaml

security:
    firewalls:
        main:
            pattern: ^/user
            ...
    access_control:
        - { path: ^/user, roles: IS_AUTHENTICATED_FULLY}
  1. Call API GET /user/navigations with authentication

Learn more

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.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity