https://github.com/ribafs/laravel-acl
ACL to laravel 9 applications
https://github.com/ribafs/laravel-acl
access acl laravel package security
Last synced: 6 months ago
JSON representation
ACL to laravel 9 applications
- Host: GitHub
- URL: https://github.com/ribafs/laravel-acl
- Owner: ribafs
- License: other
- Created: 2020-10-01T12:07:57.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-06-09T18:49:51.000Z (about 2 years ago)
- Last Synced: 2024-06-05T07:06:04.447Z (about 1 year ago)
- Topics: access, acl, laravel, package, security
- Language: Blade
- Homepage: https://ribafs.github.io/laravel-acl
- Size: 6.56 MB
- Stars: 7
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README-PT.md
- License: license.md
Awesome Lists containing this project
README
# Implementação de ACL no Laravel 9
Usando users, roles, permissions, trait, middleware, provider, etc## Como funciona?
O usuário 'super' tem acesso a todas as tabelas e pode fazer tudo em cada uma delas.
O usuário 'admin' tem acesso somente as tabelas permissions, roles e users e pode fazer tudo com elas.
O usuário 'manager' tem acesso somente a tabela clientes e pode tudo somente com ela.
O usuário 'user', tem acesso somente a view index de clientes.
Faça login com cade usuário para experimentar.## Testado em
- Windows 7 e 10
- Linux Mint 20 e 21## Novidade da versão 2.0
Agora temos duas áreas, pública e administrativa. Ao entrar no raiz do aplicativo poderá acessar a listagem de clients e o show. Após o login terá direitos de acordo com o usuário.
## Criar um novo aplicativo com com nome 'acl' no laravel 9
Caso tenha o laravel installer, use:```bash
laravel new acl --jet --teams --stack=livewire
cd acl
npm install && npm run dev
```
Caso não tenha, use:
```
composer create-project --prefer-dist laravel/laravel acl
cd acl
composer require laravel/jetstream
php artisan jetstream:install livewire
npm install && npm run dev
```### Criar e configurar o banco
.env## Instalar o laravel-acl
```bash
composer require ribafs/laravel-acl
```## Publicar
```bash
php artisan vendor:publish --provider="Ribafs\LaravelAcl\LaravelAclServiceProvider"
```
## Copiar alguns arquivos existentes- DatabaseSeeder.php
- routes/web.php
- views/welcome.blade.php
- views/layouts/app.blade.php### Copiar arquivos
```bash
php artisan copy:files
```
Agora todos os arquivos do pacote já estão em seu aplicativo: migrations, seeders, Models, middleware, provider, etc### Ajustar o título do aplicativo (opcional)
Editar o .env e mudar a linha com APP_NAME, para algo como: APP_NAME='ACL to Laravel 8'## Testar
Após adicionar seu CRUD, execute e teste o ACL no controle do acesso do seu aplicativo.
```bash
php artisan migrate --seed
php artisan serve
localhost:8000/login
```## Caso receba o erro
Target class [Fruitcake\Cors\HandleCors] does not ...
Então edite
app/Http/Kernel.php
E comente a linha:
//\Fruitcake\Cors\HandleCors::class,
Use como exemplo:
- [email protected]
- 123456Depois teste com os demais: admin, manager e user
## Importante
Este pacote é indicado para novos aplicativos. Evite usá-lo em aplicativos existentes, pois ele pode sobrescrever alguns arquivos.
## Documentação com mais detalhes
As informações acima e muito mais informações de como tirar o máximo proveito deste pacote:
[https://ribafs.github.io/laravel-acl](https://ribafs.github.io/laravel-acl)
## Criação de um app demo com ribafs/laravel-acl
Criar uma permissão que nenhum user tem (exemplo)
```bash
all-nophp artisan add:perm 'No perms' all-no
```E atribuir para todas as views que não desejo acesso
```bash
@can('all-no')
```
Nos actions
```bash
public function create(Request $request)
{
if ($request->user()->can('all-no')) {
return view('admin.clients.create');
}else{
print 'Back to app';
return 'Access denied in this demo
';
}
}
```
Restringir nos actions para somente os que tem a permissão all-no, que nenhum user tem.Assim não precisa mexer nas views.
## Versão para laravel 9 com aplicativos existentes
Se deseja um pacote para usar com a versão 7 do laravel, clique abaixo:
[https://github.com/ribafs/laravel-acl-exist](https://github.com/ribafs/laravel-acl-exist)
## Versão para laravel 7
Se deseja um pacote para usar com a versão 7 do laravel, clique abaixo:
[https://github.com/ribafs/laravel7-acl](https://github.com/ribafs/laravel7-acl)
## Versão para laravel 6
Se deseja um pacote para usar com a versão 6 do laravel, clique abaixo:
[https://github.com/ribafs/laravel6-acl](https://github.com/ribafs/laravel6-acl)
## Versão para o Laravel 5.8
Se deseja um pacote para usar com a versão 5.8 do laravel, clique abaixo:
[https://github.com/ribafs/laravel58-acl](https://github.com/ribafs/laravel58-acl)
## Trocar ideias
Para trocar ideias de forma ágil:
https://github.com/ribafs/laravel-acl/discussions/
## Licença
MIT