O ACL (Access Control List) API é uma API RESTful com foco em um sistema de controle de acesso que permite definir e gerenciar permissões para diferentes usuários ou grupos de usuários em uma aplicação. O ACL é usado para controlar o que cada usuário ou grupo de usuários pode ou não pode fazer na aplicação.
Clone o repositório
git clone https://github.com/ArthurBandeira01/laravel-api-acl.git
Acesse o diretório do projeto clonado e suba os containers do projeto
docker-compose up -d
Crie o Arquivo .env
cp .env.example .env
Acesse o container app
docker-compose exec app bash
Instale as dependências do projeto
composer install
Gere a key do projeto Laravel
php artisan key:generate
OPCIONAL: Gere o banco SQLite (caso não use o banco MySQL)
touch database/database.sqlite
Rodar as migrations
php artisan migrate
Acesse o projeto http://localhost:8000
Neste projeto optei por usar o Pest por ser um framework simples e fácil de usá-lo. Com ele pude testar todas as rotas de autenticação do usuário, de permissões e de permissões que pertencem ao usuário.
Para baixar o Pest, instale com o composer
composer remove phpunit/phpunit
composer require pestphp/pest --dev --with-all-dependencies
Ele é uma alternativa ao PHPUnit. Porém, caso queira utilizá-lo, manda a ver :)
Para realizar os testes dos endpoints nesse projeto, é importante estar dentro do container e rodar o seguinte como exemplo:
php artisan test tests/Feature/Api/ACL/ACLApiTest.php
Para autenticação usei o Sanctum mesmo, para instalá-lo basta rodar esse comando abaixo
php artisan install:api