Download the PHP package callcocam/inertia-rbac without Composer

On this page you can find all versions of the php package callcocam/inertia-rbac. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package inertia-rbac

callcocam/inertia-rbac

RBAC (roles & permissions) para Laravel + Inertia + Vue, construído sobre o spatie/laravel-permission com:

Filosofia: visual do projeto, ações do pacote. O HTML/estilo é 100% seu; o endpoint que processa cada ação é o controller do pacote.

Requisitos


Instalação

Reaproveitando a config do Spatie

O pacote alinha automaticamente o config/permission.php do Spatie no boot:

Ou seja: tabelas, colunas, cache, guards e teams core continuam no Spatie; o config/rbac.php só cobre views Vue, rollout, roles protegidas, redirects e rotas.


Preparar o model User

O id do User deve ser ULID (as morph keys do RBAC são ULID).


Declarar as permissões do seu app

O catálogo do pacote traz só as permissões de gestão (roles.*, permissions.*). As suas você declara em config/rbac.phpPermissionName::all() mescla as duas:

Depois rode php artisan rbac:sync (ou o botão de sync na tela de permissões).


Policies dos recursos do seu app

Use o trait do pacote, que já respeita o rollout (rbac.enabled) e o super-admin:

O Gate::before de super-admin (por system_name) já é registrado pelo pacote.


Páginas Vue (criadas no seu projeto)

O pacote não traz .vue. Crie os componentes nos caminhos de config('rbac.views.*') (default abaixo) em resources/js/pages/:

Config Componente default
rbac.views.roles.index rbac/roles/Index
rbac.views.roles.form rbac/roles/Form
rbac.views.permissions.index rbac/permissions/Index
rbac.views.permissions.form rbac/permissions/Form

Publique os stubs de referência e adapte ao visual do seu app:

Pontos-chave dos stubs:


Wayfinder — ligando a UI às rotas do pacote

As ações nunca montam URL na mão: usam helpers gerados pelo laravel/wayfinder a partir das rotas nomeadas do pacote (rbac.roles.*, rbac.permissions.*).

Se o gerador não rastrear os controllers do vendor, veja o fallback na seção "Wayfinder" do arquivo PROMPT.md.


Mostrar/esconder (server-driven)

  1. Botões por página: cada index já envia can: { create: boolean }. Use v-if="can.create". Ações de linha: v-if="!row.is_protected".
  2. Menu: decida os itens no servidor com o PermissionResolver:

Assim os itens não autorizados nem chegam ao cliente.


Configuração (config/rbac.php)

Chave Para quê
enabled Liga/desliga a checagem (rollout gradual).
guard Guard das roles/permissions.
connection Conexão isolada (ex.: landlord), ou null.
teams.enabled / teams.foreign_key Multi-tenant (espelha para o Spatie).
protected_roles / protected_permissions Não podem ser apagadas/renomeadas.
super_admin_role system_name da role com Gate::before.
permissions / type_map Catálogo do app + classificação por tipo.
views.* Caminhos dos componentes Vue.
routes.* / redirect.* Prefixo, nome, middleware e redirects.
per_page Paginação das telas.

Teams / multi-tenant (escopo de permissões por tenant)

O nome "teams" vem do Spatie e pode confundir: não é um recurso de "grupos de usuários", e o Laravel não tem teams nativo. rbac.teams liga a teams feature do Spatie = escopo de permissões por tenant: adiciona uma coluna team_foreign_key em roles/model_has_* para você ter roles/permissões diferentes por tenant. Não cria tabela teams nem model Team. Por isso não conflita com nada do framework.

Está desligado por padrão (single-tenant). Para ligar:

Isso liga o middleware SetPermissionTeamContext no grupo de rotas e espelha permission.teams / permission.column_names.team_foreign_key. A resolução do tenant atual é do app (por padrão o middleware lê a foreign_key do usuário autenticado; use resolver para buscar de outro lugar).

O Spatie suporta um team_foreign_key global. Se o app já usa a teams feature do Spatie para outra coisa, os dois precisam concordar no mesmo nome de coluna.


Testes

Licença

MIT. Veja LICENSE.md.


All versions of inertia-rbac with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
illuminate/contracts Version ^12.0|^13.0
inertiajs/inertia-laravel Version ^2.0
spatie/laravel-permission Version ^8.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package callcocam/inertia-rbac contains the following files

Loading the files please wait ...