Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Como separar a área do Site e Administrativa no Angular

Olá, gostaria de saber como faço para estruturar uma aplicação que tem uma área administrativa, com alguns CRUDs (usuários, produtos, etc...) e uma área de site que é alimentada pela que foi cadastrado na área administrativa. Nas duas áreas terei usuários se logando. Sei fazer isso separado, com projetos separados, porém, não sei como estruturar em um único projeto Angular. Obrigado.

7 respostas

Oi Felipe, isso pode ser feito com recursos de autenticação e autorização em conjunto com rotas.

Você pode ter um grupo de rotas que está disponível para os usuários comuns e outro que é do painel.

Faz sentido ou sua pergunta tinha outro sentido?

Wanderson, faz sentido sim. O que tinha de dúvida era se seria possível fazer isso com telas de logins distintos, o que acredito que sim. Teria, neste caso, um conjunto de rotas "/" para o site, e outro "/admin" para o painel admin, e teria 2 autenticações (1 pra cada conjunto de rota). Seria isso? Aproveitando o gancho, para utilizar estruturas diferentes de HTML para ambas as áreas (site e painel admin), daria para trabalhar com *ng-if na index.html? Aqui eu não sei como fazer, porque as estruturas de HTML são totalmente diferentes. Dá pra referenciar, p.ex., bootstrap 3 no back e bootstrap 4 no front? Você já fez algo parecido que poderia compartilhar? Qualquer ajudar é de grande importância.

Desde já, muito obrigado pela ajuda Wanderson.

Wanderson, faz sentido sim. O que tinha de dúvida era se seria possível fazer isso com telas de logins distintos, o que acredito que sim. Teria, neste caso, um conjunto de rotas "/" para o site, e outro "/admin" para o painel admin, e teria 2 autenticações (1 pra cada conjunto de rota). Seria isso? Aproveitando o gancho, para utilizar estruturas diferentes de HTML para ambas as áreas (site e painel admin), daria para trabalhar com *ng-if na index.html? Aqui eu não sei como fazer, porque as estruturas de HTML são totalmente diferentes. Dá pra referenciar, p.ex., bootstrap 3 no back e bootstrap 4 no front? Você já fez algo parecido que poderia compartilhar? Qualquer ajudar é de grande importância.

Desde já, muito obrigado pela ajuda Wanderson.

Wanderson, faz sentido sim. O que tinha de dúvida era se seria possível fazer isso com telas de logins distintos, o que acredito que sim. Teria, neste caso, um conjunto de rotas "/" para o site, e outro "/admin" para o painel admin, e teria 2 autenticações (1 pra cada conjunto de rota). Seria isso? Aproveitando o gancho, para utilizar estruturas diferentes de HTML para ambas as áreas (site e painel admin), daria para trabalhar com *ng-if na index.html? Aqui eu não sei como fazer, porque as estruturas de HTML são totalmente diferentes. Dá pra referenciar, p.ex., bootstrap 3 no back e bootstrap 4 no front? Você já fez algo parecido que poderia compartilhar? Qualquer ajudar é de grande importância.

Desde já, muito obrigado pela ajuda Wanderson.

solução!

Você pode ter uma autenticação só que redireciona o usuário pro caminho certo com base no seu nível, neste caso você teria que diferenciar o usuário admin do usuário comum.

Acho sim que você consegue fazer isso com o ng-if, mas me parece mais trabalhoso do que criar dois projetos separados. Isso vai depender do tamanho do projeto.

Pra ser sincero, nunca fiz algo do tipo, e nem cheguei a estudar Angular a fundo.

O caso do bootstrap 3 e 4 me parece confuso, por que não usar uma versão só? Você pode fazer um if bem bolado, mas a dúvida é essa mesmo: por que usar duas versões diferentes do bootstrap ? Não me parece saudável, isso vai tornar seu HTML muito mais complexo do que deveria.

Wanderson, boa tarde! Concordo que usar duas versões vai tornar a manutenção mais trabalhosa, porém, houve a necessidade de se usar um template construído em bootstrap 3 no Front, e no admin foi usado o Bootstrap 4. Depois, pensou-se em colocar os projetos no mesmo juntos, na mesma estrutura, pra ter uma única máquina cloud com o projeto. Bom, aqui, é mais uma questão de definição de estratégia. =) Agradeço a ajuda e explicação sobre a autenticação já direcionar para a área X ou Y. Vlw!!!!

Opa Felipe, fico a disposição pra conversar sempre que quiser.

Boa sorte no projeto!