|
|
|
@ -29,15 +29,8 @@ from sapl.utils import (RANGE_ANOS, ChoiceWithoutValidationField, |
|
|
|
|
|
|
|
from .models import AppConfig, CasaLegislativa |
|
|
|
|
|
|
|
ACTION_CREATE_USERS_AUTOR_CHOICE = [ |
|
|
|
('C', _('Criar novo Usuário')), |
|
|
|
('A', _('Associar um usuário existente')), |
|
|
|
('N', _('Autor sem Usuário de Acesso ao Sapl')), |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
ACTION_CREATE_USERS_AUTOR_CHOICE = [ |
|
|
|
('C', _('Criar novo Usuário')), |
|
|
|
('A', _('Associar um usuário existente')), |
|
|
|
('N', _('Autor sem Usuário de Acesso ao Sapl')), |
|
|
|
] |
|
|
|
@ -256,42 +249,7 @@ class AutorForm(ModelForm): |
|
|
|
if self.instance.user: |
|
|
|
qs_user = qs_user.exclude(pk=self.instance.user.pk) |
|
|
|
|
|
|
|
if cd['action_user'] == 'C': |
|
|
|
param_username = {get_user_model().USERNAME_FIELD: cd['username']} |
|
|
|
if User.objects.filter(**param_username).exists(): |
|
|
|
raise ValidationError( |
|
|
|
_('Já existe usuário com o username "%s". ' |
|
|
|
'Para utilizar esse username você deve selecionar ' |
|
|
|
'"Associar um usuário existente".') % cd['username']) |
|
|
|
|
|
|
|
if ('senha' not in cd or 'senha_confirma' not in cd or |
|
|
|
not cd['senha'] or not cd['senha_confirma']): |
|
|
|
raise ValidationError(_( |
|
|
|
'A senha e sua confirmação devem ser informadas.')) |
|
|
|
msg = _('As senhas não conferem.') |
|
|
|
self.valida_igualdade(cd['senha'], cd['senha_confirma'], msg) |
|
|
|
|
|
|
|
try: |
|
|
|
validate_password(self.cleaned_data['senha']) |
|
|
|
except ValidationError as error: |
|
|
|
raise ValidationError(error) |
|
|
|
|
|
|
|
if ('email' not in cd or 'confirma_email' not in cd or |
|
|
|
not cd['email'] or not cd['confirma_email']): |
|
|
|
raise ValidationError(_( |
|
|
|
'O email e sua confirmação devem ser informados.')) |
|
|
|
msg = _('Os emails não conferem.') |
|
|
|
self.valida_igualdade(cd['email'], cd['confirma_email'], msg) |
|
|
|
|
|
|
|
if not settings.DEBUG: |
|
|
|
if qs_user.filter(email=cd['email']).exists(): |
|
|
|
raise ValidationError(_('Este email já foi cadastrado.')) |
|
|
|
|
|
|
|
if qs_autor.filter(user__email=cd['email']).exists(): |
|
|
|
raise ValidationError( |
|
|
|
_('Já existe um Autor com este email.')) |
|
|
|
|
|
|
|
elif cd['action_user'] == 'A': |
|
|
|
if cd['action_user'] == 'A': |
|
|
|
param_username = {get_user_model().USERNAME_FIELD: cd['username']} |
|
|
|
if not User.objects.filter(**param_username).exists(): |
|
|
|
raise ValidationError( |
|
|
|
@ -362,22 +320,7 @@ class AutorForm(ModelForm): |
|
|
|
if not u.is_active: |
|
|
|
u.is_active = settings.DEBUG |
|
|
|
u.save() |
|
|
|
elif self.cleaned_data['action_user'] == 'C': |
|
|
|
|
|
|
|
param_username = { |
|
|
|
get_user_model().USERNAME_FIELD: self.cleaned_data['username']} |
|
|
|
|
|
|
|
if get_user_model().USERNAME_FIELD != 'email': |
|
|
|
param_username['email'] = self.cleaned_data['email'] |
|
|
|
|
|
|
|
u = get_user_model().objects.create(**param_username) |
|
|
|
|
|
|
|
u.set_password(self.cleaned_data['senha']) |
|
|
|
# Define usuário como ativo em ambiente de desenvolvimento |
|
|
|
# pode logar sem a necessidade de passar pela validação de email |
|
|
|
# troque par False para testar o envio de email em desenvolvimento |
|
|
|
u.is_active = settings.DEBUG |
|
|
|
u.save() |
|
|
|
autor.user = u |
|
|
|
|
|
|
|
if not autor.tipo.content_type: |
|
|
|
|