ufvjm/api-core

Pacote de funcionalidades básicas para autenticação e comunicação com a APIs dos sistemas da UFVJM.

0.0.17 2025-06-27 14:58 UTC

This package is auto-updated.

Last update: 2025-06-28 19:28:02 UTC


README

Pacote de funcionalidades básicas para autenticação e comunicação com a APIs dos sistemas da UFVJM.

Sumário

Instalação

Adicionar o pacote no composer

Instalar o pacote:

composer require ufvjm/api-core

Criar/alterar o AppServiceProvider

Criar (alterar) o arquivo AppServiceProvider.php na pasta app/Providers caso não exista:

<?php

namespace App\Providers;

use App\Models\User;
use Dsi\ApiCore\Guards\InstitutionalAccountGuard;
use Dsi\ApiCore\Providers\BaseAppServiceProvider;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Support\Facades\Auth;

class AppServiceProvider extends BaseAppServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @throws BindingResolutionException
     */
    public function boot(): void
    {
        // Custom guard used to login user with institutional account API
        auth()->extend('institutional', function ($app, $name, array $config) {
            return new InstitutionalAccountGuard(new User, $name, Auth::createUserProvider($config['provider']), $app['session']->driver());
        });

        parent::boot();
    }
}

Publicar arquivo de configuração

Publicar o arquivo de configuração:

php artisan vendor:publish --provider="Dsi\ApiCore\ApiCoreServiceProvider"

Será criado o arquivo config/ufvjm-api-core.php.

Adicionar a lista de permissões

Editar o arquivo config/ufvjm-api-core.php e adicionar as permissões necessárias para o seu sistema na API.

A configuração deve ser feita no array api_permissions Exemplo:

    'api_permissions' => [
        'painel_visualizar_mensagem',
        'painel_visualizar_atividade',
    ],

Isso fará com que a diretiva @can funcione corretamente em seus templates Blade, permitindo verificar se o usuário tem permissão para acessar determinadas funcionalidades. No exemplo acima, o controle de acesso poderia ser feito assim:

@can('painel_visualizar_mensagem')
    <!-- Ação de ir para visualização de mensagens -->
@endcan

Ferramentas

Comando para criar novo recurso

Criar um novo recurso:

php artisan make:structure YourResource

Esse comando criará a seguinte estrutura de arquivos:

app/Adapters/YourAdapter.php
app/Interfaces/YourRepositoryInterface.php
app/Repositories/YourRepository.php