Gate em Excesso!
Olá Carlos, tudo bem?Fiz o sistema de roles e permissions num sistema que estou desenvolvendo, porem quando criei a area de tenants no painel e chamei esses tenants que são mais de 1200. Se eu acessar o painel master que está na lista de config.emails_admin, ele exibe a pagina e todas as unidades, mas se eu cadastro um novo usuário e coloco ele no tenant master como admin, com permissões e regras limitadas, tipo sem poder deletar tenant, aparece "maximum execution time of 30 seconds exceeded" e não carrega. Pra carregar a tabela estou usando datatables, e tenho a mesma quantidade de usuários, porem com usuários não acontece isso. No log do Laravel:Maximum execution time of 30 seconds exceeded at D:\\Sites\\www\\ofertaspravc\\vendor\\barryvdh\\laravel-debugbar\\src\\DataCollector\\QueryCollector.php:414) [stacktrace]. Desde ja agradeço
Outra coisa que Notei também é que a debugbar quando acesso com esse novo usuário o master, mostra os seguintes números na pagina de listagem de tenants:
Queries: 7502
Models: 53740
Gate: 1252
Porem acessando com um admin que está no arquivo config.acl.admins_emails, os números são:
Queries: 2
Models: 1240
Gate: 2491
Olá, Paulo!
Tudo bem?
Quando acessa com um usuário que é super admin (que está em no arquivo de configuração acl.php) ele entra no filter before e não passa por todas as verificações necessárias.
Acontece que essas verificações são necessárias, ou seja, para cada permissão cadastrada no sistema precisa validar se o usuário tem acessou ou não a aquele recurso.
Tem solução?
Sim!
Qual a solução?
Cache hoje, cache amanhã, cache pra sempre.
Essas consultas ao banco que estão na trait UserACLTrait, você pode armazenar elas em cache, e sempre pegar diretamente do cache:
Hoje está assim: consulta -> banco
Com cache fica assim: consulta -> cache -> banco
Se já tiver os dados da query em cache não precisa consultar ao banco novamente.
Tem algum curso que mostre como implmentar esse cache?
Curso sobre cache: https://academy.especializati.com.br/curso/laravel-api-com-cache
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!