def signin_view(request): form = SignInForm() if request.POST: form = SignInForm(request.POST) if form.is_valid(): username = request.POST.get("username") password = request.POST.get("password") nextpage = request.POST.get("next") or "/" try: user = User.objects.get(Q(username=username)|Q(email=username)) auth = authenticate(username=user.username, password=password) if auth and user: if user.is_active: if not user.is_email: messages.warning(request, _("Your Email Address is not verified yet! please verify your email address.")) else: login(request, user) return redirect(nextpage) else: messages.warning(request, _('User banned, please contact support')) else: raise Exception(_("Login Error, Invalid username or password, please try again")) except Exception as e: print(e) messages.error(request, _('Login Error, Invalid username or password, please try again')) else: display_form_validations(form=form, request=request) return render(request, "auth/signin.html", dict(form=form))
def login_view(request): username = email_yok = None form = SignInForm(request.POST) if request.POST: username = request.POST.get("username") password = request.POST.get("password") if form.is_valid(): user = lang_authenticate(username=username, password=password) if user: if user.is_active: #if not user.is_email: #messages.warning(request, _("Your Email Address is not verified yet! please verify your email address.")) #email_yok = True #username = str(user.username) #else: login(request,user) request.session['yemekkalmasın_sess'] = '' return redirect('/') else: messages.warning(request, _('User banned, please contact support')) else: messages.error(request, _('Login Error, Invalid username or password, please try again')) else: display_form_validations(form=form, request=request) return render(request, "auth/login.html", dict(email_yok=email_yok, username=username,))
def post(self, request, *args, **kwargs): form = NewTicketForm(instance=request.user) message_ticket_id = int(request.resolver_match.kwargs.get('id')) ticket = get_object_or_404(Ticket, pk=message_ticket_id, user=request.user) message = request.POST.get("message") if message: if ticket.ticket_status == Ticket.OPEN: ob = TicketMessage.objects.create( message=message, user=request.user, ticket=ticket, ) ob.save() messages.success( request, _("Great Job, Your ticket message has been created successfully" )) else: messages.error(request, _("ticket is closed ! ")) else: display_form_validations(form, request, message_type=messages.ERROR) self.ctx = { 'message': message, 'ticket': ticket, } return redirect('tickets:tickets_list_view') return render(request, self.template_name, self.ctx)
def change_password_from_email(request, uidb64=None, token=None): resmessage, show_form = None, False user = None try: uid = force_text(urlsafe_base64_decode(request.resolver_match.kwargs.get("uidb64"))) user = User.objects.get(pk=uid) show_form = True except User.DoesNotExist: messages.error(request, _("Error, User does not match")) except (TypeError, ValueError, OverflowError): messages.error(request, _("Error, Unknown error occured, please reset password and try again.")) if request.POST: form = ResetPasswordConfirmForm(request.POST) if reset_password_token.check_token(user, request.resolver_match.kwargs.get("token")): password = request.POST.get("password") password2 = request.POST.get("password2") if form.is_valid(): user.set_password(str(password)) user.save() messages.success(request, _("Success, Your password has been reset successfully")) return redirect(reverse("users:login")) else: display_form_validations(form=form, request=request) else: messages.error(request, _("Error, Invalid Link, please try again")) return render(request, "registration/change_password.html", {'resmessage':resmessage, 'show_form': show_form})
def profile_view(request): form = ProfileForm(instance=request.user) if request.POST: form = ProfileForm(data=request.POST, files=request.FILES, instance=request.user) if form.is_valid(): form.save() messages.success( request=request, message=_("Your profile has been updated successfully")) else: display_form_validations(form=form, request=request) return redirect(reverse("users:profile_view")) return render(request, "auth/profile.html", dict(form=form))
def request_reset_password(request): if request.POST: form = ResetPasswordForm(request.POST) username = request.POST.get("username") try: if form.is_valid(): user = User.objects.get(Q(username=username)|Q(email=username)) if user and send_password_rest_email(user.id): messages.success(request, _("Success, Reset Password has been sent!")) return redirect(reverse("users:login")) else: display_form_validations(form=form, request=request) except Exception as e: messages.error(request, _("Error, An error occured while sending reset password")) return render(request, "registration/reset.html")
def post(self, request, *args, **kwargs): registered = None user_form = SignUpForm(data=request.POST) if user_form.is_valid(): user = user_form.save() user.set_password(user.password) user.save() registered = True account_activation(user=user) print("girdi") messages.success(request, 'Registraiton Successful', extra_tags='success') return redirect('users:login') else: display_form_validations(form=user_form, request=request) user_form = SignUpForm() return render(request, self.template_name, { 'user_form': user_form, 'registered': registered })
def create_an_account(request): form = SignUpForm() if request.POST: form = SignUpForm(data=request.POST) if form.is_valid(): email = request.POST.get("email") password = request.POST.get("password") user = User.objects.create_user( first_name=request.POST.get("first_name"), last_name=request.POST.get("last_name"), email=email, username=email, ) user.set_password(password) user.save() messages.success(request, _("Registration success"), extra_tags="success") else: display_form_validations(form=form, request=request) return render(request, "auth/signup.html", dict(form=form))
def post(self, request, uidb64=None, token=None, *args, **kwargs): User = get_user_model() form = self.form_class(request.POST) try: uid = urlsafe_base64_decode(uidb64) user = User.objects.get(pk=uid) except (TypeError, ValueError, OverflowError, User.DoesNotExist): user = None if user is not None and default_token_generator.check_token( user, token): if form.is_valid(): password = form.cleaned_data["password"] user.set_password(password) user.save() email_kwargs = dict( email=user.email, full_name=user.get_full_name(), base_url=settings.BASE_URL, site_name=settings.SITE_NAME, ) subject = _("%(SITE_NAME)s - Your Password has Changed" ) % dict(SITE_NAME=settings.SITE_NAME) template = "email/reset_password_information.html" mail_html_maillist([user.email], subject=subject, html_template=template, kwargs=email_kwargs, lang=settings.LANGUAGE_CODE) # TODO: Send email & notification information about password changes messages.success(request, _("Password has been reset successfully")) return self.form_valid(form) else: display_form_validations(form=form, request=request) else: messages.error(request, _("The password link is no longer valid.")) return self.form_invalid(form=form)
def profile_view(request): if request.POST: s = request.POST.get("s") if s == "profile": try: form = ProfileForm(request.POST) if form.is_valid(): email = request.POST.get("email") or "" email = email.strip() user = User.objects.get(pk=request.user.pk) user.first_name = request.POST.get("first_name") user.last_name = request.POST.get("last_name") if email and user.email != email: user.email = email if EmailServer.objects.filter(active=True).exists(): user.is_email = False #TODO SEND EMAIL TO CLIENT messages.info( request, _("Please, check your email inbox to verify your email address" )) user.save() messages.success( request, _("Congrats!, Your profile has been updated successfully" )) else: display_form_validations(form=form, request=request) except Exception as e: messages.error( request, _("Oops, An error occured while updating profile")) elif s == "avatar": form = ChangePhotoForm(request.POST, request.FILES) if form.is_valid(): f = request.FILES.get("avatar_file") avatar_data = request.POST.get("avatar_data", "") x, y, w, h = 0.0, 0.0, 0.0, 0.0 if is_json(avatar_data): avatar_data = json.loads(avatar_data) x = avatar_data.get("x") y = avatar_data.get("y") w = avatar_data.get("w") h = avatar_data.get("h") fn, fx = os.path.splitext(f.name) img_directory = "{}/avatars/".format(settings.MEDIA_ROOT) if not os.path.exists(img_directory): os.makedirs(img_directory) tmp_filename = "{}/avatars/{}_tmp{}".format( settings.MEDIA_ROOT, request.user.username, fx) jpg_filename = "{}/avatars/{}_tmp.jpg".format( settings.MEDIA_ROOT, request.user.username) with open(tmp_filename, 'wb+') as destination: for chunk in f.chunks(): destination.write(chunk) im = Image.open(tmp_filename) im = im.convert("RGB") im.save(jpg_filename, "JPEG", optimize=True, quality=95) im = Image.open(jpg_filename) cropped_im = im.crop((x, y, w + x, h + y)) cropped_im.thumbnail((512, 512), Image.ANTIALIAS) cropped_im.save(jpg_filename.replace("_tmp", ""), optimize=True, quality=95) if os.path.exists(tmp_filename): os.remove(tmp_filename) if os.path.exists(jpg_filename): os.remove(jpg_filename) filename = "{}avatars/{}.jpg".format(settings.MEDIA_URL, request.user.username) user = User.objects.filter(pk=request.user.pk).first() if user: user.img = filename user.save() return JsonResponse( dict(message=str( _("Amazing!, Your profile picture has been updated successfully" )), state=200, result="%(filename)s?s=%(timenow)s" % dict(filename=filename, timenow=djtz.now()))) elif s == "avatar_reset": try: user = User.objects.get(pk=request.user.pk) user.img = settings.DEFAULT_USER_AVATAR user.save() messages.success( request, _("OK, Your avatar profile has been reseted successfully")) except: messages.error( request, _("Oops, An error occured while removing avatar")) elif s == "password": password = request.POST.get("password") password1 = request.POST.get("password1") password2 = request.POST.get("password2") form = ChangePasswordForm(request.POST) user = User.objects.get(pk=request.user.pk) if user.check_password(password): if form.is_valid(): user.set_password(password1) user.save() update_session_auth_hash(request, user) messages.success( request, "OK, Your password has been changed successfully") else: display_form_validations(form=form, request=request) else: messages.warning( request, "Error, Your password incorrect, please try again") return redirect(reverse("users:profile_view")) return render(request, "auth/profile.html")
def get(self, request, *args, **kwargs): user_form = SignUpForm() display_form_validations(form=user_form, request=request) return render(request, self.template_name, {'user_form': user_form})