sgmp/solicitacoes/context_processors.py

67 lines
2.8 KiB
Python

# /SGMP_PROD/solicitacoes/context_processors.py
from .acesso import usuario_pode_gerenciar_permissoes
from .models import UsuarioSistema
def usuario_sistema(request):
"""
Context processor que adiciona o UsuarioSistema ao contexto de todos os templates.
"""
if request.user.is_authenticated:
try:
usuario = UsuarioSistema.objects.get(
matricula=request.user.username,
ativo=True
)
usuario_eh_admin = usuario.tem_perfil(UsuarioSistema.Perfil.ADMIN)
usuario_eh_gestor = usuario.tem_perfil(UsuarioSistema.Perfil.GESTOR)
usuario_eh_diretoria = usuario.tem_perfil(UsuarioSistema.Perfil.DIRETORIA)
usuario_eh_gg = usuario.tem_perfil(UsuarioSistema.Perfil.GG)
usuario_eh_controladoria = usuario.tem_perfil(UsuarioSistema.Perfil.CONTROLADORIA)
usuario_eh_head = usuario.tem_perfil(UsuarioSistema.Perfil.HEAD)
return {
"usuario_sistema": usuario,
"usuario_eh_admin": usuario_eh_admin,
"usuario_eh_gestor": usuario_eh_gestor,
"usuario_eh_diretoria": usuario_eh_diretoria,
"usuario_eh_gg": usuario_eh_gg,
"usuario_eh_controladoria": usuario_eh_controladoria,
"usuario_eh_head": usuario_eh_head,
"usuario_pode_criar_solicitacao": (
usuario_eh_gestor or usuario_eh_admin or usuario_eh_diretoria
),
"usuario_pode_ver_todas_solicitacoes": (
usuario.perfil != UsuarioSistema.Perfil.GESTOR or usuario_eh_admin
),
"usuario_pode_gerenciar_permissoes": usuario_pode_gerenciar_permissoes(
usuario
),
}
except UsuarioSistema.DoesNotExist:
return {
"usuario_sistema": None,
"usuario_eh_admin": False,
"usuario_eh_gestor": False,
"usuario_eh_diretoria": False,
"usuario_eh_gg": False,
"usuario_eh_controladoria": False,
"usuario_eh_head": False,
"usuario_pode_criar_solicitacao": False,
"usuario_pode_ver_todas_solicitacoes": False,
"usuario_pode_gerenciar_permissoes": False,
}
return {
"usuario_sistema": None,
"usuario_eh_admin": False,
"usuario_eh_gestor": False,
"usuario_eh_diretoria": False,
"usuario_eh_gg": False,
"usuario_eh_controladoria": False,
"usuario_eh_head": False,
"usuario_pode_criar_solicitacao": False,
"usuario_pode_ver_todas_solicitacoes": False,
"usuario_pode_gerenciar_permissoes": False,
}