Beispiel #1
0
def register(request):
    if request.POST.has_key('requestcode'): #form is filled. if not spam, generate code and save in db, wait for email confirmation, return message
        #is this spam? check reCaptcha
        if not grecaptcha_verify(request): # captcha was not correct
            context = {'message': 'کپچای گوگل درست وارد نشده بود. شاید ربات هستید؟ کد یا کلیک یا تشخیص عکس زیر فرم را درست پر کنید. ببخشید که فرم به شکل اولیه برنگشته!'} #TODO: forgot password
            return render(request, 'register.html', context)

        if User.objects.filter(email = request.POST['email']).exists(): # duplicate email
            context = {'message': 'متاسفانه این ایمیل قبلا استفاده شده است. در صورتی که این ایمیل شما است، از صفحه ورود گزینه فراموشی پسورد رو انتخاب کنین. ببخشید که فرم ذخیره نشده. درست می شه'} #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)

        if not User.objects.filter(username = request.POST['username']).exists(): #if user does not exists
                code = random_str(28)
                now = datetime.now()
                email = request.POST['email']
                password = make_password(request.POST['password'])
                username = request.POST['username']
                temporarycode = Passwordresetcodes (email = email, time = now, code = code, username=username, password=password)
                temporarycode.save()
                message = PMMail(api_key = settings.POSTMARK_API_TOKEN,
                                 subject = "فعالسازی اکاننت بستون",
                                 sender = "*****@*****.**",
                                 to = email,
                                 text_body = " برای فعال کردن اکانت بستون خود روی لینک روبرو کلیک کنید: {}?code={}".format(request.build_absolute_uri('/accounts/register/'), code),
                                 tag = "account request")
                message.send()
                context = {'message': 'ایمیلی حاوی لینک فعال سازی اکانت به شما فرستاده شده، لطفا پس از چک کردن ایمیل، روی لینک کلیک کنید.'}
                return render(request, 'index.html', context)
        else:
            context = {'message': 'متاسفانه این نام کاربری قبلا استفاده شده است. از نام کاربری دیگری استفاده کنید. ببخشید که فرم ذخیره نشده. درست می شه'} #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)
    elif request.GET.has_key('code'): # user clicked on code
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(code=code).exists(): #if code is in temporary db, read the data and create the user
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            newuser = User.objects.create(username=new_temp_user.username, password=new_temp_user.password, email=new_temp_user.email)
            this_token = random_str(48)
            token = Token.objects.create(user=newuser, token=this_token)
            Passwordresetcodes.objects.filter(code=code).delete() #delete the temporary activation code from db
            context = {'message': 'اکانت شما ساخته شد. توکن شما {} است. آن را ذخیره کنید چون دیگر نمایش داده نخواهد شد! جدی!'.format(this_token)}
            return render(request, 'index.html', context)
        else:
            context = {'message': 'این کد فعال سازی معتبر نیست. در صورت نیاز دوباره تلاش کنید'}
            return render(request, 'register.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)
Beispiel #2
0
def register(request):
    if 'requestcode' in request.POST:  #form is filled. if not spam, generate code and save in db, wait for email confirmation, return message
        #is this spam? check reCaptcha
        if not grecaptcha_verify(request):  # captcha was not correct
            context = {
                'message':
                'کپچای گوگل درست وارد نشده بود. شاید ربات هستید؟ کد یا کلیک یا تشخیص عکس زیر فرم را درست پر کنید. ببخشید که فرم به شکل اولیه برنگشته!'
            }  #TODO: forgot password
            return render(request, 'register.html', context)

        if User.objects.filter(
                email=request.POST['email']).exists():  # duplicate email
            context = {
                'message':
                'متاسفانه این ایمیل قبلا استفاده شده است. در صورتی که این ایمیل شما است، از صفحه ورود گزینه فراموشی پسورد رو انتخاب کنین. ببخشید که فرم ذخیره نشده. درست می شه'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)

        if not User.objects.filter(username=request.POST['username']).exists(
        ):  #if user does not exists
            code = random_str(28)
            email = request.POST['email']
            password = make_password(request.POST['password'])
            username = request.POST['username']
            temporarycode = Passwordresetcodes(email=email,
                                               time=datetime.now(),
                                               code=code,
                                               username=username,
                                               password=password)
            temporarycode.save()
            send_mail("فعال سازی اکانت بستون",
                      "{}?email={}&code={}".format(
                          request.build_absolute_uri(), email, code),
                      "*****@*****.**", [email],
                      fail_silently=False)
            context = {
                'message':
                'ایمیلی حاوی لینک فعال سازی اکانت به شما فرستاده شده، لطفا پس از چک کردن ایمیل، روی لینک کلیک کنید.'
            }
            return render(request, 'index.html', context)
        else:
            context = {
                'message':
                'متاسفانه این نام کاربری قبلا استفاده شده است. از نام کاربری دیگری استفاده کنید. ببخشید که فرم ذخیره نشده. درست می شه'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)
    elif 'code' in request.GET:  # user clicked on code
        email = request.GET['email']
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(code=code).exists(
        ):  #if code is in temporary db, read the data and create the user
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            newuser = User.objects.create(username=new_temp_user.username,
                                          password=new_temp_user.password,
                                          email=email)
            this_token = random_str(48)
            token = Token.objects.create(user=newuser, token=this_token)
            Passwordresetcodes.objects.filter(code=code).delete(
            )  #delete the temporary activation code from db
            context = {
                'message':
                'اکانت شما ساخته شد نوکن شما {} است'.format(this_token)
            }
            return render(request, 'index.html', context)
        else:
            context = {
                'message':
                'این کد فعال سازی معتبر نیست. در صورت نیاز دوباره تلاش کنید'
            }
            return render(request, 'register.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)
Beispiel #3
0
def register(request):
    if request.POST.get('requestcode'):
        if not grecaptcha_verify(request):
            context = {
                'message':
                'سلام کد یا کلید یا تشخیص عکس زیر را درست پر کنید ببخشید که فرم به شکل اولیه برنگشته'
            }
            return render(request, 'register.html', context)

        if User.objects.filter(email=request.POST['email']).exists():
            context = {'message': 'ببخشید که فرم ذخیره نمیشه درست میشه'}
            return render(request, 'register.html', context)

        if not User.objects.filter(username=request.POST['username']).exists():
            code = random_str(28)
            now = datetime.now()
            email = request.POST['email']
            password = make_password(request.POST['password'])
            username = request.POST['username']
            temporarycode = Passwordresetcodes(email=email,
                                               time=now,
                                               code=code,
                                               username=username,
                                               password=password)
            temporarycode.save()
            #message = PMMail(api_key = settings.POSTMark_API_TOKEN,
            #subject = 'برای فعال سازی به لینک زیر مراجعه کنید http://www.hadirasool.tk/accounts/register?email={}&code={}'.format(email, code),
            #sender = '*****@*****.**',
            #to = email,
            #text_body = 'ایمیل بستون خود را در لینک زیر کلیک کنی',
            #tag = 'create account')
            #message.send()
            #context = {'message': 'لطفا پس از چک کردن ایمیل روی لینک زیر کلیک کنید'}
            message = 'ایمیلی حاوی لینک فعال سازی اکانت به شما فرستاده شده، لطفا پس از چک کردن ایمیل، روی لینک کلیک کنید.'
            message = 'قدیم ها ایمیل فعال سازی می فرستادیم ولی الان شرکتش ما رو تحریم کرده (: پس راحت و بی دردسر'
            body = " برای فعال کردن اکانت بستون خود روی لینک روبرو کلیک کنید: <a href=\"{}?code={}\">لینک رو به رو</a> ".format(
                request.build_absolute_uri('/accounts/register/'), code)
            message = message + body
            context = {'message': message}
            #paeine hamina gozashtam
            return render(request, 'index.html', context)
        else:
            context = {
                'message':
                'متاسفانه این نام کاربری قبلا استفاده شده است. از نام کاربری دیگری استفاده کنید. ببخشید که فرم ذخیره نشده. درست می شه'
            }  # TODO: forgot password
            return render(request, 'register.html', context)
    elif request.GET.get('code'):  # user clicked on code
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(code=code).exists(
        ):  # if code is in temporary db, read the data and create the user
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            newuser = User.objects.create(username=new_temp_user.username,
                                          password=new_temp_user.password,
                                          email=new_temp_user.email)
            this_token = get_random_string(length=48)
            token = Token.objects.create(user=newuser, token=this_token)
            # delete the temporary activation code from db
            Passwordresetcodes.objects.filter(code=code).delete()
            context = {
                'message':
                'اکانت شما ساخته شد. توکن شما {} است. آن را ذخیره کنید چون دیگر نمایش داده نخواهد شد! جدی!'
                .format(this_token)
            }
            return render(request, 'index.html', context)
        else:
            context = {
                'message':
                'این کد فعال سازی معتبر نیست. در صورت نیاز دوباره تلاش کنید'
            }
            return render(request, 'register.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)
Beispiel #4
0
def register(request):
    if request.POST.has_key(
            'requestcode'
    ):  #form is filled. if not spam, generate code and save in db, wait for email confirmation, return message
        #is this spam? check reCaptcha
        if not grecaptcha_verify(request):  # captcha was not correct
            context = {
                'message':
                'کپچای گوگل درست وارد نشده بود. شاید ربات هستید؟ کد یا کلیک یا تشخیص عکس زیر فرم را درست پر کنید. ببخشید که فرم به شکل اولیه برنگشته!'
            }  #TODO: forgot password
            return render(request, 'register.html', context)

        if User.objects.filter(
                email=request.POST['email']).exists():  # duplicate email
            context = {
                'message':
                'متاسفانه این ایمیل قبلا استفاده شده است. در صورتی که این ایمیل شما است، از صفحه ورود گزینه فراموشی پسورد رو انتخاب کنین. ببخشید که فرم ذخیره نشده. درست می شه'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)

        if not User.objects.filter(username=request.POST['username']).exists(
        ):  #if user does not exists
            code = random_str(28)
            now = datetime.now()
            email = request.POST['email']
            password = make_password(request.POST['password'])
            username = request.POST['username']
            temporarycode = Passwordresetcodes(email=email,
                                               time=now,
                                               code=code,
                                               username=username,
                                               password=password)
            temporarycode.save()
            message = PMMail(
                api_key=settings.POSTMARK_API_TOKEN,
                subject="activating Bestoon account",
                sender="*****@*****.**",
                to=email,
                text_body=
                "click the link below to activate your account: http://127.0.0.1:9000/accounts/register/?email={}&code={}"
                .format(email, code),
                tag="account request")
            message.send()
            context = {
                'message':
                'click the activation link thats been sent to your email address'
            }
            return render(request, 'login.html', context)
        else:
            context = {
                'message': 'this username has been used before, try a new one'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)
    elif request.GET.has_key('code'):  # user clicked on code
        email = request.GET['email']
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(code=code).exists(
        ):  #if code is in temporary db, read the data and create the user
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            newuser = User.objects.create(username=new_temp_user.username,
                                          password=new_temp_user.password,
                                          email=email)
            this_token = random_str(48)
            token = Token.objects.create(user=newuser, token=this_token)
            Passwordresetcodes.objects.filter(code=code).delete(
            )  #delete the temporary activation code from db
            context = {
                'message':
                'BRAVO! activated, your token is : {}'.format(this_token)
            }
            return render(request, 'login.html', context)
        else:
            context = {'message': 'activation code expired, try a new one'}
            return render(request, 'login.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)
Beispiel #5
0
def register(request):
    if request.POST.has_key(
            'requestcode'
    ):  #form is filled. if not spam, generate code and save in db, wait for email confirmation, return message
        #is this spam? check reCaptcha
        if not grecaptcha_verify(request):  # captcha was not correct
            context = {
                'message':
                'کپچای گوگل درست وارد نشده بود. شاید ربات هستید؟ کد یا کلیک یا تشخیص عکس زیر فرم را درست پر کنید. ببخشید که فرم به شکل اولیه برنگشته!'
            }  #TODO: forgot password
            return render(request, 'register.html', context)

        if User.objects.filter(
                email=request.POST['email']).exists():  # duplicate email
            context = {
                'message':
                'متاسفانه این ایمیل قبلا استفاده شده است. در صورتی که این ایمیل شما است، از صفحه ورود گزینه فراموشی پسورد رو انتخاب کنین. ببخشید که فرم ذخیره نشده. درست می شه'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)

        if not User.objects.filter(username=request.POST['username']).exists(
        ):  #if user does not exists
            code = random_str(28)
            now = datetime.now()
            email = request.POST['email']
            password = make_password(request.POST['password'])
            username = request.POST['username']
            temporarycode = Passwordresetcodes(email=email,
                                               time=now,
                                               code=code,
                                               username=username,
                                               password=password)
            temporarycode.save()

            # create message object instance
            msg = MIMEMultipart()

            # setup the parameters of the message
            message = "برای فعال سازی بستون خود روی لینک روبرو کلیک کنید: {}?email={}&code={}".format(
                request.build_absolute_uri("/accounts/register/"), email,
                code).encode('utf-8')
            password = "******"
            msg["From"] = "*****@*****.**"
            msg["To"] = email
            msg["Subject"] = "فعال سازی اکانت بستون".encode('utf-8')

            # add in the message body
            msg.attach(MIMEText(message))

            # create server
            server = smtplib.SMTP("smtp.gmail.com: 587")
            server.starttls()

            # login credentials for sending the mail
            server.login(msg["From"], password)

            # send the message via the server
            server.sendmail(msg["From"], msg["To"], msg.as_string())
            server.quit()

            context = {
                'message':
                'ایمیلی حاوی لینک فعال سازی اکانت به شما فرستاده شده، لطفا پس از چک کردن ایمیل، روی لینک کلیک کنید.'
            }
            return render(request, 'index.html', context)

        else:
            context = {
                'message':
                'متاسفانه این نام کاربری قبلا استفاده شده است. از نام کاربری دیگری استفاده کنید. ببخشید که فرم ذخیره نشده. درست می شه'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)
    elif request.GET.has_key('code'):  # user clicked on code
        email = request.GET['email']
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(code=code).exists(
        ):  #if code is in temporary db, read the data and create the user
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            newuser = User.objects.create(username=new_temp_user.username,
                                          password=new_temp_user.password,
                                          email=email)
            this_token = random_str(48)
            token = Token.objects.create(user=newuser, token=this_token)

            Passwordresetcodes.objects.filter(code=code).delete(
            )  #delete the temporary activation code from db
            context = {
                'message':
                '.اکانت شما ساخته شد. توکن شما {} است. ان را ذخیره کنیدچون دیگر نمایش نخواهد شد! جدی'
                .format(this_token)
            }
            return render(request, 'index.html', context)
        else:
            context = {
                'message':
                'این کد فعال سازی معتبر نیست. در صورت نیاز دوباره تلاش کنید'
            }
            return render(request, 'register.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)
Beispiel #6
0
def register(request):

    if 'requestcode' in request.POST:
        if not grecaptcha_verify(request):
            context = {'message': 'کد اشتباه'}
            return render(request, 'register.html', context)
        """return JsonResponse({
        'status': request.POST['code']
        },encoder = JSONEncoder)
        """
        if User.objects.filter(email=request.POST['email']).exists():
            context = {'message': 'user exists'}
            """return JsonResponse({
            'status': request.POST['code']
            },encoder = JSONEncoder)
            """
            return render(request, 'register.html', context)
        if not User.objects.filter(username=request.POST['username']).exists():
            code = random_str(28)
            now = datetime.now()
            email = request.POST['email']
            password = request.POST['password']
            username = request.POST['username']
            temporarycode = Passwordresetcodes(email=email,
                                               time=now,
                                               code=code,
                                               username=username,
                                               password=password)
            temporarycode.save()
            text_body = "for active click on it: http://localhost:8009/register/?email={}&code={}".format(
                email, code)
            """
            return JsonResponse({
            'status': request.POST['code']
            },encoder = JSONEncoder)
            """

            subject = 'Thank you for registering to our site'
            message = ' it  means a world to us '
            email_from = settings.EMAIL_HOST_USER
            recipient_list = [email]
            send_mail(subject,
                      text_body,
                      email_from,
                      recipient_list,
                      fail_silently=False)
            """
            return JsonResponse({
            'status': request.POST['code']
            },encoder = JSONEncoder)
            """
            context = {'message': 'activate link sent'}
            return render(request, 'login.html', context)
        else:
            context = {'message': 'temporary username'}
            """return JsonResponse({
            'status': request.POST['code']
            },encoder = JSONEncoder)"""
            return render(request, 'register.html', context)
    elif 'code' in request.GET:
        email = request.GET['email']
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(code=code).exists():
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            new_user = User.objects.create(username=new_temp_user.username,
                                           password=new_temp_user.password,
                                           email=email)
            this_token = random_str(48)
            token = Token.objects.create(token=this_token, user=new_user)
            Passwordresetcodes.objects.filter(code=code).delete()
            context = {'message': 'your account is activated'}
            return render(request, 'login.html', context)
        else:
            context = {'message': 'code is invalid'}
            return render(request, 'register.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)
Beispiel #7
0
def register(request):
    logger.debug("def register")
    if 'requestcode' in request.POST:  #form is filled. if not spam, generate code and save in db, wait for email confirmation, return message
        logger.debug("def register requestcode: " + format(request.POST))
        #is this spam? check reCaptcha

        if not grecaptcha_verify(request):  # captcha was not correct
            context = {
                'message':
                'کپچای گوگل درست وارد نشده بود. شاید ربات هستید؟ کد یا کلیک یا تشخیص عکس زیر فرم را درست پر کنید. ببخشید که فرم به شکل اولیه برنگشته!'
            }  #TODO: forgot password
            return render(request, 'register.html', context)

        if User.objects.filter(
                email=request.POST['email']).exists():  # duplicate email
            context = {
                'message':
                'متاسفانه این ایمیل قبلا استفاده شده است. در صورتی که این ایمیل شما است، از صفحه ورود گزینه فراموشی پسورد رو انتخاب کنین. ببخشید که فرم ذخیره نشده. درست می شه'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)

        if not User.objects.filter(username=request.POST['username']).exists(
        ):  #if user does not exists
            code = random_str(28)
            now = datetime.now()
            email = request.POST['email']
            password = make_password(request.POST['password'])
            username = request.POST['username']
            temporarycode = Passwordresetcodes(email=email,
                                               time=now,
                                               code=code,
                                               username=username,
                                               password=password)
            temporarycode.save()
            message = PMMail(
                api_key=settings.POSTMARK_API_TOKEN,
                subject="فعال سازی اکانت تودو",
                sender="*****@*****.**",
                to=email,
                text_body=
                "برای فعال سازی ایمیلی تودویر خود روی لینک روبرو کلیک کنید: http://todoer.ir/accounts/register/?email={}&code={}"
                .format(email, code),
                tag="Create account")
            message.send()
            logger.debug(
                "def register email for http://todoer.ir/accounts/register/?email={}&code={}"
                .format(email, code))
            context = {
                'message':
                'ایمیلی حاوی لینک فعال سازی اکانت به شما فرستاده شده، لطفا پس از چک کردن ایمیل، روی لینک کلیک کنید.'
            }
            return render(request, 'login.html', context)
        else:
            context = {
                'message':
                'متاسفانه این نام کاربری قبلا استفاده شده است. از نام کاربری دیگری استفاده کنید. ببخشید که فرم ذخیره نشده. درست می شه'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)
    elif 'code' in request.GET:  # user clicked on code
        logger.debug("def register code: " + format(request.GET))
        email = request.GET['email']
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(code=code).exists(
        ):  #if code is in temporary db, read the data and create the user
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            newuser = User.objects.create(username=new_temp_user.username,
                                          password=new_temp_user.password,
                                          email=email)
            logger.debug("def register user created: {} with code {}".format(
                newuser.username, code))
            Passwordresetcodes.objects.filter(code=code).delete(
            )  #delete the temporary activation code from db
            context = {
                'message':
                'اکانت شما فعال شد. لاگین کنید - البته اگر دوست داشتی'
            }
            return render(request, 'login.html', context)
        else:
            context = {
                'message':
                'این کد فعال سازی معتبر نیست. در صورت نیاز دوباره تلاش کنید'
            }
            return render(request, 'login.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)
Beispiel #8
0
def register(request):

    if request.POST.get('requestcode'):
        #form is filled. if not spam, generate code and save in db, wait for email confirmation,
        # return message is this spam? check reCaptcha
        if not grecaptcha_verify(request):  # captcha was not correct
            context = {
                'message':
                'کپچای گوگل درست وارد نشده بود. شاید ربات هستید؟ کد یا کلیک یا تشخیص عکس زیر فرم را درست پر کنید. ببخشید که فرم به شکل اولیه برنگشته!'
            }  #TODO: forgot password
            return render(request, 'register.html', context)

        if User.objects.filter(
                email=request.POST['email']).exists():  # duplicate email
            context = {
                'message':
                'متاسفانه این ایمیل قبلا استفاده شده است. در صورتی که این ایمیل شما است، از صفحه ورود گزینه فراموشی پسورد رو انتخاب کنین. ببخشید که فرم ذخیره نشده. درست می شه'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)

        if not User.objects.filter(username=request.POST['username']).exists(
        ):  #if user does not exists
            code = random_str(28)
            now = datetime.now()
            email = request.POST['email']
            password = make_password(request.POST['password'])
            username = request.POST['username']
            temporarycode = Passwordresetcodes(email=email,
                                               time=now,
                                               code=code,
                                               username=username,
                                               password=password)
            temporarycode.save()

            # {
            #     "fromAddress": "*****@*****.**",
            #     "toAddress": email,
            #     "ccAddress": "*****@*****.**",
            #     "bccAddress": "*****@*****.**",
            #     "subject": "Email - Always and Forever",
            #     "content": "Email can never be dead. The most neutral and effective way, that can be used for one to many and two way communication.",
            #     "askReceipt" : "yes"
            # }
            message = 'ایمیلی حاوی لینک فعال سازی اکانت به شما فرستاده شده، لطفا پس از چک کردن ایمیل، روی لینک کلیک کنید.'
            # message = 'قدیم ها ایمیل فعال سازی می فرستادیم ولی الان شرکتش ما رو تحریم کرده (: پس راحت و بی دردسر'
            body = " برای فعال کردن اکانت بستون خود روی لینک روبرو کلیک کنید:{}?email={}&code={}".format(
                request.build_absolute_uri('/accounts/register/'), email, code)
            message = message + body
            context = {'message': message}
            return render(request, 'index.html', context)
            # context = {'message': 'لینک فعال سازی اکانت به شما فرستاده شد.لطفا پس از چک کردن ایمیل روی لینک کلیک کنید.'
            # return render(request, 'login.html', context)

        else:
            context = {
                'message':
                'متاسفانه این نام کاربری قبلا استفاده شده است. از نام کاربری دیگری استفاده کنید. ببخشید که فرم ذخیره نشده. درست می شه'
            }  #TODO: forgot password
            #TODO: keep the form data
            return render(request, 'register.html', context)
    elif request.GET.get('code'):  # user clicked on code
        email = request.GET['email']
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(code=code).exists(
        ):  #if code is in temporary db, read the data and create the user
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            newuser = User.objects.create(username=new_temp_user.username,
                                          password=new_temp_user.password,
                                          email=email)
            this_token = random_str(48)
            token = Token.objects.create(user=newuser, token=this_token)
            Passwordresetcodes.objects.filter(code=code).delete(
            )  #delete the temporary activation code from db
            context = {
                'message':
                'اکانت شما ساخته شد.توکن شما {} است.آن را ذخیره کنید چون دیگر نمایش داده نخواهد شد! جدی'
                .format(this_token)
            }
            return render(request, 'index.html', context)
        else:
            context = {
                'message':
                'این کد فعال سازی معتبر نیست. در صورت نیاز دوباره تلاش کنید'
            }
            return render(request, 'register.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)
Beispiel #9
0
def register(request):
    if 'requestcode' in request.POST:
        #is this spam?
        if not grecaptcha_verify(request):
            context = {
                'message':
                '  کد یا کلیک یا تشخیص عکس زیر فرم را درست بر کنید.ببخشید که فرم به شکل اولیه بر نگشته'
            }
            return render(request, 'register.html', context)

        if User.objects.filter(email=request.POST['email']).exists():
            context = {
                'message':
                'از صفحه ورود گزینه فراموش رمز رو انتخاب کنید.ببخشید که فرم ذخیره نشده.درست میشه'
            }
            #TODO:
            return render(request, 'register.html', context)

        if not User.objects.filter(username=request.POST['username']).exists():
            code = random_str(28)
            now = datetime.now()
            email = request.POST['email']
            password = make_password(request.POST['password'])
            username = request.POST['username']
            temporarycode = Passwordresetcodes(email=email,
                                               time=now,
                                               code=code,
                                               username=username,
                                               password=password)
            temporarycode.save()
            message = PMMail(
                api_key=settings.POSTMARK_API_TOKEN,
                subject="فعال سازی اکانت بستون۱",
                sender="*****@*****.**",
                to=email,
                text_body=
                "برای فعال سازی اکانت بستون۱ خود روی لینک رو به رو کلیک کنید:?email={}&code={}"
                .format(request.build_absolute_uri('accounts/register/'),
                        email, code),
                tag="account request")
            message.send()
            context = {
                'message':
                ' .ایمیل شما ساخته شد.لطفا بس از چک کردن ایمیل روی لینک کلیک کنید'
            }
            return render(request, 'login.html', context)
        else:
            context = {
                'message':
                '.متاسفانه این نام کاربری قبلا استفاده شده.ببخشید که فرم ذخیره نشده.درست میشه'
            }
            #TODO:keep the form data
            return render(request, 'register.html', context)
    elif 'code' in request.GET:  #user clicked on code
        email = request.GET['email']
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(
                code=code).exists():  #if code is in temperory
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            newuser = User.objects.create(username=new_temp_user.username,
                                          password=new_temp_user.password,
                                          email=email)
            this_token = random_str(48)
            token = Token.objects.create(user=newuser, token=this_token)
            Passwordresetcodes.objects.filter(code=code).delete()
            context = {
                'message':
                '.اکانت شما ساخته شد.توکن شما{}است.آن را ذخیره کنید چون دیگر نمایش داده نخواهد شد'
                .format(this_token)
            }
            return render(request, 'login.html', context)
        else:
            context = {
                'message':
                'این کد فعال سازی معتبر نیست در صورت نیاز دوباره تلاش کنید'
            }
            return render(request, 'login.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)
Beispiel #10
0
def register(request):
    # if request.POST.has_key('requestcode'):
    if 'requestcode' in request.POST:
        # form is filled. if not spam, generate code and save in db, wait for email
        # confirmation, return message
        # is this spam? check reCaptcha
        if not grecaptcha_verify(request):  # captcha was not correct
            context = {
                'message': TemplateMessage.wrong_input_captcha}  # TODO: forgot password
            return render(request, 'register.html', context)

        # duplicate email
        if User.objects.filter(email=request.POST['email']).exists():
            context = {
                # TODO : clean this messages like previous message.
                'message': 'متاسفانه این ایمیل قبلا استفاده شده است. در صورتی که این ایمیل شما است، از صفحه ورود '
                           'گزینه فراموشی پسورد رو انتخاب کنین. ببخشید که فرم ذخیره نشده. درست می شه'}
            # TODO: forgot password
            # TODO: keep the form data
            return render(request, 'register.html', context)
        # if user does not exists
        if not User.objects.filter(username=request.POST['username']).exists():
            code = get_random_string(length=32)
            now = datetime.now()
            email = request.POST['email']
            password = make_password(request.POST['password'])
            username = request.POST['username']
            temporarycode = Passwordresetcodes(
                email=email, time=now, code=code, username=username, password=password)
            temporarycode.save()
            # message = PMMail(api_key=settings.POSTMARK_API_TOKEN,
            #                 subject="فعالسازی اکانت بستون",
            #                 sender="*****@*****.**",
            #                 to=email,
            #                 text_body=" برای فعال کردن اکانت بستون خود روی لینک روبرو کلیک کنید: {}?code={}".format(
            #                     request.build_absolute_uri('/accounts/register/'), code),
            #                 tag="account request")
            # message.send()
            message = 'ایمیلی حاوی لینک فعال سازی اکانت به شما فرستاده شده، لطفا پس از چک کردن ایمیل، روی لینک کلیک ' \
                      'کنید. '
            message = 'قدیم ها ایمیل فعال سازی می فرستادیم ولی الان شرکتش ما رو تحریم کرده (: پس راحت و بی دردسر'

            body = " برای فعال کردن اکانت بستون خود روی لینک روبرو کلیک کنید: <a href=\"{}?code={}\">لینک رو به رو</a> ".format(
                request.build_absolute_uri('/accounts/register/'), code)
            message = message + body
            context = {
                'message': message}
            return render(request, 'index.html', context)
        else:
            context = {
                'message': 'متاسفانه این نام کاربری قبلا استفاده شده است. از نام کاربری دیگری استفاده کنید. ببخشید که '
                           'فرم ذخیره نشده. درست می شه'}  # TODO: forgot password
            # TODO: keep the form data
            return render(request, 'register.html', context)
    # elif request.GET.has_key('code'):  # user clicked on code
    elif 'code' in request.GET:
        code = request.GET['code']
        if Passwordresetcodes.objects.filter(
                code=code).exists():  # if code is in temporary db, read the data and create the user
            new_temp_user = Passwordresetcodes.objects.get(code=code)
            newuser = User.objects.create(username=new_temp_user.username, password=new_temp_user.password,
                                          email=new_temp_user.email)
            this_token = get_random_string(length=48)
            token = Token.objects.create(user=newuser, token=this_token)
            # delete the temporary activation code from db
            Passwordresetcodes.objects.filter(code=code).delete()
            context = {
                'message': 'اکانت شما ساخته شد. توکن شما {} است. آن را ذخیره کنید چون دیگر نمایش داده نخواهد شد! جدی!'.format(
                    this_token)}
            return render(request, 'index.html', context)
        else:
            context = {
                'message': 'این کد فعال سازی معتبر نیست. در صورت نیاز دوباره تلاش کنید'}
            return render(request, 'register.html', context)
    else:
        context = {'message': ''}
        return render(request, 'register.html', context)