Exemple #1
0
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))
Exemple #2
0
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,))
Exemple #3
0
    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)
Exemple #4
0
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})
Exemple #5
0
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))
Exemple #6
0
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")
Exemple #7
0
 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
     })
Exemple #8
0
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))
Exemple #9
0
 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)
Exemple #10
0
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")
Exemple #11
0
 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})