ufvjm / api-core
Pacote de funcionalidades básicas para autenticação e comunicação com a APIs dos sistemas da UFVJM.
Requires
- php: ^8.2|^8.3
- jantinnerezo/livewire-alert: ^4.0
- laravel/framework: ^10.0|^11.0|^12.0
- laravel/socialite: ^5.16
- livewire/livewire: ^3.4
Requires (Dev)
- laravel/pint: ^1.22
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.1
- phpunit/phpunit: ^11.5.3
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