{"id":23698319,"url":"https://github.com/ribafs/laravel-acl","last_synced_at":"2025-09-03T01:32:30.359Z","repository":{"id":62535488,"uuid":"300265599","full_name":"ribafs/laravel-acl","owner":"ribafs","description":"ACL to laravel 9 applications","archived":false,"fork":false,"pushed_at":"2023-06-09T18:49:51.000Z","size":6880,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-16T07:00:26.112Z","etag":null,"topics":["access","acl","laravel","package","security"],"latest_commit_sha":null,"homepage":"https://ribafs.github.io/laravel-acl","language":"Blade","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ribafs.png","metadata":{"files":{"readme":"README-PT.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-01T12:07:57.000Z","updated_at":"2023-01-07T18:57:11.000Z","dependencies_parsed_at":"2023-02-06T09:16:28.028Z","dependency_job_id":null,"html_url":"https://github.com/ribafs/laravel-acl","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/ribafs/laravel-acl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ribafs%2Flaravel-acl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ribafs%2Flaravel-acl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ribafs%2Flaravel-acl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ribafs%2Flaravel-acl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ribafs","download_url":"https://codeload.github.com/ribafs/laravel-acl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ribafs%2Flaravel-acl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273377071,"owners_count":25094525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["access","acl","laravel","package","security"],"created_at":"2024-12-30T07:16:05.361Z","updated_at":"2025-09-03T01:32:29.917Z","avatar_url":"https://github.com/ribafs.png","language":"Blade","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Implementação de ACL no Laravel 9\nUsando users, roles, permissions, trait, middleware, provider, etc\n\n## Como funciona?\nO usuário 'super' tem acesso a todas as tabelas e pode fazer tudo em cada uma delas. \nO usuário 'admin' tem acesso somente as tabelas permissions, roles e users e pode fazer tudo com elas.\nO usuário 'manager' tem acesso somente a tabela clientes e pode tudo somente com ela.\nO usuário 'user', tem acesso somente a view index de clientes.\nFaça login com cade usuário para experimentar.\n\n## Testado em\n- Windows 7 e 10\n- Linux Mint 20 e 21\n\n## Novidade da versão 2.0\n\nAgora 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.\n\n## Criar um novo aplicativo com com nome 'acl' no laravel 9\nCaso tenha o laravel installer, use:\n\n```bash\nlaravel new acl --jet --teams --stack=livewire\ncd acl\nnpm install \u0026\u0026 npm run dev\n```\nCaso não tenha, use:\n```\ncomposer create-project --prefer-dist laravel/laravel acl\ncd acl\ncomposer require laravel/jetstream\nphp artisan jetstream:install livewire\nnpm install \u0026\u0026 npm run dev\n```\n\n### Criar e configurar o banco\n.env\n\n\n## Instalar o laravel-acl\n```bash\ncomposer require ribafs/laravel-acl\n```\n\n## Publicar\n```bash\nphp artisan vendor:publish --provider=\"Ribafs\\LaravelAcl\\LaravelAclServiceProvider\"\n```\n## Copiar alguns arquivos existentes\n\n- DatabaseSeeder.php\n- routes/web.php\n- views/welcome.blade.php\n- views/layouts/app.blade.php\n\n### Copiar arquivos\n```bash\nphp artisan copy:files\n```\nAgora todos os arquivos do pacote já estão em seu aplicativo: migrations, seeders, Models, middleware, provider, etc\n\n### Ajustar o título do aplicativo (opcional)\nEditar o .env e mudar a linha com APP_NAME, para algo como: APP_NAME='ACL to Laravel 8'\n\n## Testar\n\nApós adicionar seu CRUD, execute e teste o ACL no controle do acesso do seu aplicativo.\n```bash\nphp artisan migrate --seed\nphp artisan serve\nlocalhost:8000/login\n```\n\n## Caso receba o erro\n\nTarget class [Fruitcake\\Cors\\HandleCors] does not ...\n\nEntão edite\n\napp/Http/Kernel.php\n\nE comente a linha:\n\n        //\\Fruitcake\\Cors\\HandleCors::class,\n\nUse como exemplo:\n\n- super@mail.org\n- 123456\n\nDepois teste com os demais: admin, manager e user\n\n## Importante\n\nEste pacote é indicado para novos aplicativos. Evite usá-lo em aplicativos existentes, pois ele pode sobrescrever alguns arquivos.\n\n## Documentação com mais detalhes\n\nAs informações acima e muito mais informações de como tirar o máximo proveito deste pacote:\n\n[https://ribafs.github.io/laravel-acl](https://ribafs.github.io/laravel-acl)\n\n## Criação de um app demo com ribafs/laravel-acl\n\nCriar uma permissão que nenhum user tem (exemplo)\n```bash\nall-no\n\nphp artisan add:perm 'No perms' all-no \n```\n\nE atribuir para todas as views que não desejo acesso\n```bash\n@can('all-no')\n```\nNos actions\n```bash\n    public function create(Request $request)\n    {\n        if ($request-\u003euser()-\u003ecan('all-no')) {\n            return view('admin.clients.create');\n        }else{\n            print '\u003ca href=\"#\" onClick=\"window.history.back();\"\u003eBack to app\u003c/a\u003e';\n            return '\u003ch3 align=\"center\"\u003eAccess denied in this demo\u003c/h3\u003e';\n        }\n    }\n```\nRestringir nos actions para somente os que tem a permissão all-no, que nenhum user tem.\n\nAssim não precisa mexer nas views.\n\n## Versão para laravel 9 com aplicativos existentes\n\nSe deseja um pacote para usar com a versão 7 do laravel, clique abaixo:\n\n[https://github.com/ribafs/laravel-acl-exist](https://github.com/ribafs/laravel-acl-exist)\n\n## Versão para laravel 7\n\nSe deseja um pacote para usar com a versão 7 do laravel, clique abaixo:\n\n[https://github.com/ribafs/laravel7-acl](https://github.com/ribafs/laravel7-acl)\n\n## Versão para laravel 6\n\nSe deseja um pacote para usar com a versão 6 do laravel, clique abaixo:\n\n[https://github.com/ribafs/laravel6-acl](https://github.com/ribafs/laravel6-acl)\n\n## Versão para o Laravel 5.8\n\nSe deseja um pacote para usar com a versão 5.8 do laravel, clique abaixo:\n\n[https://github.com/ribafs/laravel58-acl](https://github.com/ribafs/laravel58-acl)\n\n## Trocar ideias\n\nPara trocar ideias de forma ágil:\n\nhttps://github.com/ribafs/laravel-acl/discussions/\n\n\n## Licença\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fribafs%2Flaravel-acl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fribafs%2Flaravel-acl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fribafs%2Flaravel-acl/lists"}