Curso Laravel API com ACL (controle de acessos - permissões)

Opa Professor, tudo bom, o curso foi muito bom e ma tirou várias dúvidas, mais deixou outras XD, eu fiquei com um pouco de dúvida sobre níveis de permissão, por exemplo, no final não entendi muito bem como implementar outros níveis de permissão, outra coisa é, o model User é genérico, se eu queser atribuir dados diferenter para usuarios "diferentes" tipo, tem um que é pessoa física e outro que é pj entende como eu faço sem ter que criar outros models? espero que possa me ajudar...
Fala Wesley! Tudo bem?
O curso que vc fez, foi este daqui => https://academy.especializati.com.br/curso/laravel-api-com-acl?
Me diga qual foi, que fica mais fácil de te direcionar.

Foi esse mesmo

O que vc quer dizer com outros níveis de permissão? Me dê mais detalhes da sua ideia, que te guio pelo melhor caminho possível.
Sobre usar outro model, é tranquilo, basta relacionar o outro model com as permissões, igual foi feito com user.

Minha idéia é griar grupos de permissão para inserir os users, por exemplo usuários criados internamente serão delegados a grupos (admin, financeiro, mentores e etc) e quem se cadastrar por fora vai para o grupo clientes.
Também tenho dúvida sobre os tipos de user, por exemplo, cliente pessoa física e cliente pessoa jurídica terão dados diferentes, et tenho que criar extendendo o model ou é feito de outra forma.

Você pode associar os uses aos roles, fiz algo semelhante no LaravelFood: https://github.com/especializati/larafood

Eu entendi a parte de permissões, mais outracoisa que pode ser símples mais eu não entendi é o seguinte, eu tenho que criar a seguinte estrutura
preciso criar os users da aplicação:
## Administrativo 88
#### Sócio
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- CPF
- Senha
#### Executivo
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- CPF
- Senha
#### Operacional
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- CPF
- Foto de perfil
- Senha
- Mini Bio
## Equipe
#### Líderes dos Mentores 88
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- CPF
- Foto de perfil
- Senha
- Mini Bio
- Agenda de disponibilidade
#### Mentores 88
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- CPF
- Foto de perfil
- Senha
- Mini Bio
- Agenda de disponibilidade
#### Especialista Criadores Conteúdo Cliente
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- CPF
- Foto de perfil
- Senha
- Mini Bio
- Agenda de disponibilidade
## CLIENTE ADMIN PJ
#### Cliente PJ Corporativo Admin
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- Nome do cliente PJ
- CNPJ
- Voucher
- Área no cliente PJ
- CARGO da PF no cliente PJ
- Senha
#### Cliente PJ Medico
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- Nome do cliente PJ
- CNPJ
- Voucher
- Área no cliente PJ
- CARGO da PF no cliente PJ
- Foto de perfil
- Senha
## Cliente CPF
#### Cliente Plataforma
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- CPF
- Sexo
- Nome do Cartão
- Número do Cartão
- Validade
- CVV
- País
- CEP
- Endereço
- Cidade
- Estado
- Altura
- Peso
- Idade
- Senha
#### Cliente Voucher
- Nome
- Sobrenome
- Gosta de ser chamado (Apelido)
- Data de Aniversário (Dia/Mês)
- Celular
- CPF
- Voucher
- Sexo
- Altura
- Peso
- Idade
- Senha
quero saber como fazer isso sem precisar criar inumeras tabelas

Pode criar uma tabela com relacionamento 1:1, com todas essas colunas, porém as que são opicionais, com valor default de null.
Ou, pode definir estes fields em uma coluna json, e assim montar o formulário (deve ser essa sua ideia né?)

Tipo assim, quando o user for pessoaa fisica pede cpf, se for juridica, cnpj, eu criei um acl, então por exemplo se um user for "partner", "executive"... ter campos que só são deles igual no que eu mostrei acima mais sempre pegando os outros dados comuns, se vc puder me exemplificar com algum exemplo de como fazer seria bom XD

Não entendi bem, vc criou dois modelos diferentes para diferenciar pj de cpf, certo?
Sua dificuldade está exatamente em relacionar ao perfil e limitar as permissões?

basicamenteo que está me bugando é diferenciar users

Você autentica com guards diferentes, certo?
O que precisa agora é replicar a mesma lógica que aplicou no model user, no meu model que representa pjur.

Bom eu vi aqui algumas formas e consegui fazer como eu pensava, porém percebi que para os clientes pj, fica melhor usar Tenants, vi o curso, mais percebi que mudou muita coisa no laravel, tentei ir adaptando mais tive alguma dificuldade, tem alguma dica para acompanhar o curso sem perder a linha de raciocínio sobre as versões

Quais dificuldades vc teve? Compartilhe comigo e vou te ajudando uma a uma.

Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!