def form_valid(self, form): """! Form Valid Method @param form Recives form object @return validate True """ new_user = form.save(commit=False) new_user.save() new_user.groups.add(3) ip_client = IpClient() get_ip = ip_client.get_client_ip(self.request) model_user = ContentType.objects.get_for_model(User).pk msg = 'User registered successfully' LogEntry.objects.log_action(user_id=new_user.pk, content_type_id=model_user, object_id=new_user.pk, object_repr=str(new_user.username), action_flag=ADDITION, change_message=[{ "added": { 'ip_client': get_ip, 'message': msg } }]) messages.info(self.request, msg) return super().form_valid(form)
def form_valid(self, form): """! Form Valid Method @param form Recives form object @return send mail and save forgot log """ ip_client = IpClient() get_ip = ip_client.get_client_ip(self.request) model_user = ContentType.objects.get_for_model(User).pk opts = { 'use_https': self.request.is_secure(), 'token_generator': self.token_generator, 'from_email': self.from_email, 'email_template_name': self.email_template_name, 'subject_template_name': self.subject_template_name, 'request': self.request, 'html_email_template_name': self.html_email_template_name, 'extra_email_context': self.extra_email_context, } form.save(**opts) email = form.cleaned_data['email'] msg = 'The email was sent successfully to recover the password of the user %s' % ( email) message = [{'forgot': {'ip_client': get_ip, 'mail_send': msg}}] user = User.objects.get(email=email) LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr=str(user.username), action_flag=FORGOT, change_message=message) messages.success(self.request, "Se envio el correo electronico con exito") return super().form_valid(form)
def dispatch(self, *args, **kwargs): assert 'uidb64' in kwargs and 'token' in kwargs self.validlink = False self.user = self.get_user(kwargs['uidb64']) ip_client = IpClient() get_ip = ip_client.get_client_ip(self.request) model_user = ContentType.objects.get_for_model(User).pk if self.user is not None: token = kwargs['token'] if token == INTERNAL_RESET_URL_TOKEN: session_token = self.request.session.get( INTERNAL_RESET_SESSION_TOKEN) if self.token_generator.check_token(self.user, session_token): # If the token is valid, display the password reset form. self.validlink = True msg = 'The token is valid, you can recover the password' message = [{ 'forgot': { 'ip_client': get_ip, 'message': msg, 'validate': self.validlink } }] LogEntry.objects.log_action(user_id=self.user.pk, content_type_id=model_user, object_id=self.user.pk, object_repr=str( self.user.username), action_flag=FORGOT, change_message=message) return super().dispatch(*args, **kwargs) else: if self.token_generator.check_token(self.user, token): # Store the token in the session and redirect to the # password reset form at a URL without the token. That # avoids the possibility of leaking the token in the # HTTP Referer header. self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token redirect_url = self.request.path.replace( token, INTERNAL_RESET_URL_TOKEN) return HttpResponseRedirect(redirect_url) # Display the "Password reset unsuccessful" page. msg = 'The token is invalid, you can not recover the password, verify the mail and try again, but request a new token' message = [{ 'forgot': { 'ip_client': get_ip, 'message': msg, 'validate': self.validlink } }] LogEntry.objects.log_action(user_id=self.user.pk, content_type_id=model_user, object_id=self.user.pk, object_repr=str(self.user.username), action_flag=FORGOT, change_message=message) return self.render_to_response(self.get_context_data())
def form_valid(self, form): ip_client = IpClient() get_ip = ip_client.get_client_ip(self.request) model_user = ContentType.objects.get_for_model(User).pk user = form.save() msg = 'The reset of the password is confirmed, the %s, has a new password' % ( user.username) message = [{'forgot': {'ip_client': get_ip, 'message': msg}}] LogEntry.objects.log_action(user_id=self.user.pk, content_type_id=model_user, object_id=self.user.pk, object_repr=str(self.user.username), action_flag=FORGOT, change_message=message) if self.post_reset_login: login(self.request, user, self.post_reset_login_backend) messages.success(self.request, msg) return super().form_valid(form)
def form_valid(self, form): """ Validate the logeo form @return: Direct to the initial screen of the platform """ usuario = form.cleaned_data['usuario'] contrasena = form.cleaned_data['contrasena'] validate = False try: validate_email(usuario) try: usuario = User.objects.get(email=usuario).username except: #messages.error(self.request, MENSAJES_LOGIN['CORREO_INVALIDO'] % (usuario)) pass except Exception as e: pass ip_client = IpClient() get_ip = ip_client.get_client_ip(self.request) model_token = ContentType.objects.get_for_model(TwoFactToken).pk model_user = ContentType.objects.get_for_model(User).pk username = usuario usuario = authenticate(username=usuario, password=contrasena) if usuario is not None: #send mail token validations user = User.objects.get(username=username) token_gen = TokenGenerator() generate_token = token_gen.generate_token(user) obj = TwoFactToken.objects.get(serial=generate_token, user=user) msg = 'Successfully authenticated user' message = [{'athenticate': {'ip_client': get_ip, 'message': msg}}] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr=str(user.username), action_flag=AUTHENTICATE, change_message=message) if generate_token: msj_mail = 'This is the security token that you must enter before 5 minutes: %s' % ( generate_token) try: send_mail( 'Validate Security', str(msj_mail), '*****@*****.**', [user.email], fail_silently=False, ) validate = True msg = 'Message sent succesfully' message = [{ 'added': { 'ip_client': get_ip, 'mail_send': msg } }] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_token, object_id=obj.pk, object_repr=str(obj.serial), action_flag=ADDITION, change_message=message) # Time left to validation token expires time = 5 * 60 return JsonResponse({ 'msg': msg, 'validate': validate, 'time': time }) except Exception as e: validate = validate msg = 'Error sent mail' message = [{ 'error': { 'ip_client': get_ip, 'mail_send': msg + str(e) } }] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_token, object_id=obj.pk, object_repr=str(obj.serial), action_flag=ERROR, change_message=message) return JsonResponse({'msg': msg, 'validate': validate}) else: validate = validate msg = 'User error does not exist' message = [{'error': {'ip_client': get_ip, 'message': msg}}] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_token, object_id=user.pk, object_repr='None', action_flag=ERROR, change_message=message) return JsonResponse({'msg': msg, 'validate': validate}) else: user = User.objects.filter(username=form.cleaned_data['usuario']) if user: user = user.get() if not user.is_active: #messages.error(self.request, MENSAJES_LOGIN['CUENTA_INACTIVA']) validate = validate msg = str(MENSAJES_LOGIN['CUENTA_INACTIVA']) message = [{ 'athenticate': { 'ip_client': get_ip, 'message': msg } }] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr=str(user.username), action_flag=AUTHENTICATE, change_message=message) return JsonResponse({'msg': msg, 'validate': validate}) elif usuario is None: validate = validate msg = str(MENSAJES_LOGIN['LOGIN_USUARIO_NO_VALIDO']) message = [{ 'athenticate': { 'ip_client': get_ip, 'message': msg } }] user = User.objects.filter( groups__name="Super Admin").first() LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr='None', action_flag=AUTHENTICATE, change_message=message) return JsonResponse({'msg': msg, 'validate': validate}) else: #messages.warning(self.request, MENSAJES_LOGIN['LOGIN_USUARIO_NO_VALIDO']) validate = validate msg = str(MENSAJES_LOGIN['LOGIN_USUARIO_NO_VALIDO']) message = [{ 'athenticate': { 'ip_client': get_ip, 'message': msg } }] user = User.objects.filter(groups__name="Super Admin").first() LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr='None', action_flag=AUTHENTICATE, change_message=message) return JsonResponse({'msg': msg, 'validate': validate}) return super().form_valid(form) def form_invalid(self, form): print(form.errors) return super().form_valid(form)
def form_valid(self, form): valuenext = self.request.POST.get('next') if valuenext.strip() != 'None': redirect_url = valuenext else: redirect_url = '/inicio' usuario = form.cleaned_data['usuario_validate'] contrasena = form.cleaned_data['contrasena_validate'] validation_code = form.cleaned_data['serial_validate'] remember_me = form.cleaned_data['remember_me_validate'] model_token = ContentType.objects.get_for_model(TwoFactToken).pk model_user = ContentType.objects.get_for_model(User).pk token_check = TokenGenerator() ip_client = IpClient() get_ip = ip_client.get_client_ip(self.request) validate = False try: validate_email(usuario) try: usuario = User.objects.get(email=usuario).username except: #messages.error(self.request, MENSAJES_LOGIN['CORREO_INVALIDO'] % (usuario)) pass except Exception as e: pass username = usuario try: user = User.objects.get(username=username) except Exception as e: msg = 'User error does not exist' user = User.objects.filter(groups__name="Super Admin").first() message = [{'athenticate': {'ip_client': get_ip, 'message': msg}}] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr='None', action_flag=ERROR, change_message=message) return JsonResponse({'msg': msg, 'validate': validate}) check_token = token_check.check_token(user.id, validation_code) if check_token: usuario = authenticate(username=usuario, password=contrasena) obj = TwoFactToken.objects.get(serial=validation_code, user=user) if usuario is not None: msg = 'Successfully authenticated user' message = [{ 'athenticate': { 'ip_client': get_ip, 'message': msg } }] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr=str(user.username), action_flag=AUTHENTICATE, change_message=message) login(self.request, usuario) messages.info( self.request, MENSAJES_START['INICIO_SESION'] % (usuario.first_name, usuario.username)) try: parameter_location = ConfigParameter.objects.get( active=True) parameter_location = parameter_location.geolocation except: parameter_location = True self.request.session['permisos'] = list( usuario.get_all_permissions()) self.request.session['location'] = parameter_location try: grupos = usuario.groups.all() grupo = [] if len(grupos) > 1: for g in grupos: grupo += str(g), else: grupo = str(usuario.groups.get()) except: grupo = "Does not belong to a group" self.request.session['grupos'] = grupo msg = 'Success when validating the user' validate = True message = [{'validate': {'ip_client': get_ip, 'message': msg}}] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_token, object_id=obj.pk, object_repr=str(validation_code), action_flag=VALIDATE, change_message=message) message = [{'login': {'ip_client': get_ip, 'message': msg}}] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr=str(user.username), action_flag=LOGIN, change_message=message) return JsonResponse({ 'msg': msg, 'validate': validate, 'url_redirect': redirect_url }) else: user = User.objects.filter( username=form.cleaned_data['usuario_validate']) if user: user = user.get() if not user.is_active: #messages.error(self.request, MENSAJES_LOGIN['CUENTA_INACTIVA']) validate = validate msg = MENSAJES_LOGIN['CUENTA_INACTIVA'] message = [{ 'athenticate': { 'ip_client': get_ip, 'message': msg } }] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr=str( user.username), action_flag=AUTHENTICATE, change_message=message) return JsonResponse({'msg': msg, 'validate': validate}) elif usuario is None: validate = validate msg = str(MENSAJES_LOGIN['LOGIN_USUARIO_NO_VALIDO']) message = [{ 'athenticate': { 'ip_client': get_ip, 'message': msg } }] user = User.objects.filter( groups__name="Super Admin").first() LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr='None', action_flag=AUTHENTICATE, change_message=message) return JsonResponse({'msg': msg, 'validate': validate}) else: #messages.warning(self.request, MENSAJES_LOGIN['LOGIN_USUARIO_NO_VALIDO']) validate = validate msg = str(MENSAJES_LOGIN['LOGIN_USUARIO_NO_VALIDO']) message = [{ 'athenticate': { 'ip_client': get_ip, 'message': msg } }] user = User.objects.filter( groups__name="Super Admin").first() LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_user, object_id=user.pk, object_repr='None', action_flag=AUTHENTICATE, change_message=message) return JsonResponse({'msg': msg, 'validate': validate}) else: msg = 'Token error invalid or expired' message = [{'error': {'ip_client': get_ip, 'message': msg}}] LogEntry.objects.log_action(user_id=user.pk, content_type_id=model_token, object_id='None', object_repr=str(validation_code), action_flag=ERROR, change_message=message) return JsonResponse({'msg': msg, 'validate': validate})