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)
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)
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)
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)
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)
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)
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)
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)
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)
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)