Advertisement
Guest User

CFE

a guest
Jul 7th, 2017
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.12 KB | None | 0 0
  1. def activation_key_generator(username, size=30, chars=string.ascii_lowercase + string.digits):
  2.     encode_username     = username.encode('utf-8')
  3.     kek                 = ''.join(random.choice(chars) for _ in range(size)).encode('utf-8')
  4.     salt                = hashlib.sha1(kek + encode_username).hexdigest()
  5.     return salt
  6.  
  7.  
  8.  
  9. def send_some_email(email, username, get_secret_key):
  10.     email               = email
  11.     subject             = '{0}, чтобы завершить свою регистрацию, перейдите по ссылке'.format(username)
  12.     message             = '{0}, Чтобы полноценно пользоваться нашем сайтом, \n завершите регистрацию, перейдя по ссылке ниже!'.format(username)
  13.     link                = "127.0.0.1:8000/accounts/activate/{0}".format(get_secret_key)
  14.     from_email          = settings.DEFAULT_FROM_EMAIL
  15.     recipient_list      = [email]
  16.     html_message        = '{0}'.format(link)
  17.     send_mail(subject, message, from_email, recipient_list, fail_silently=False, html_message=html_message)
  18.     return print(link)
  19. @csrf_protect
  20. def register(request):
  21.  
  22.     if request.method == 'POST':
  23.         form = RegistrationForm(request.POST)
  24.         if form.is_valid():
  25.             user = User.objects.create_user(
  26.             username=form.cleaned_data['username'],
  27.             password=form.cleaned_data['password1'],
  28.             email=form.cleaned_data['email'],
  29.             first_name=form.cleaned_data['first_name'],
  30.             last_name=form.cleaned_data['last_name'],
  31.             )
  32.             email               = form.cleaned_data['email']
  33.             username            = form.cleaned_data['username']
  34.             get_secret_key      = activation_key_generator(username)
  35.             profile = UserProfile.objects.create(
  36.                 user=user,
  37.                 slug=username,
  38.                 key_expires=timezone.now() + datetime.timedelta(days=2),
  39.                 activation_key=get_secret_key,
  40.                 )
  41.             send_some_email(email, username, get_secret_key)
  42.             return redirect('/accounts/register/verification')
  43.     form = RegistrationForm(request.POST or None)
  44.     context = {'form':form}
  45.  
  46.     return render(request, 'accounts/registration/register.html', context)
  47.  
  48.  
  49. def verification(request):
  50.     return render(request, 'accounts/registration/verificate.html', {})
  51. def register_success(request):
  52.     return render(request, 'accounts/registration/success.html', {})
  53.  
  54. def already_is_active(request):
  55.     context = {}
  56.     return render(request, 'accounts/registration/already_is_active.html', context)
  57.  
  58. def activation(request, key):
  59.     profile = get_object_or_404(UserProfile, activation_key=key)
  60.     if profile.is_active == False:
  61.         if timezone.now() > profile.key_expires:
  62.             return redirect('/accounts/reset_activation_key/')
  63.         else: #Activation successful
  64.             profile.is_active = True
  65.             profile.save()
  66.             return redirect('/accounts/register/success')
  67.  
  68.     return redirect('/accounts/already_is_active')
  69.  
  70.  
  71. def logout_page(request):
  72.     logout(request)
  73.     return HttpResponseRedirect('/')
  74.  
  75. def login_view(request):
  76.     if request.user.is_authenticated():
  77.         return redirect('/accounts/logout')
  78.     form = UserLogInForm(request.POST or None)
  79.     if form.is_valid():
  80.         username = form.cleaned_data['username']
  81.         password = form.cleaned_data['password']
  82.         profile = UserProfile.objects.filter(user__username=username)
  83.         user    = authenticate(request, username=username, password=password)
  84.         if user.is_superuser:
  85.             login(request, user)
  86.             return redirect('/admin/')
  87.         if profile is None or profile.count() == 0:
  88.             return redirect('/accounts/register')
  89.  
  90.         if profile.first().is_active == False:
  91.             return redirect('/accounts/reset_activation_key')
  92.  
  93.         if user is not None or user == True:
  94.             login(request, user)
  95.             return redirect('/')
  96.         else:
  97.            return redirect('/accounts/login')
  98.     context = {'form':form}
  99.     return render(request, 'accounts/registration/login.html', context)
  100.  
  101. def reset_activation_key(request):
  102.     if request.user.is_authenticated():
  103.         return redirect('/accounts/logout')
  104.     if request.method   == "POST":
  105.         form                    = ResetActivatioKey(request.POST or None)
  106.         if form.is_valid():
  107.             email               = form.cleaned_data['email']
  108.             user                = User.objects.get(email=email)
  109.             profile             = UserProfile.objects.get(user=user)
  110.             if profile.is_active:
  111.                 return redirect('/accounts/login')
  112.             if profile is not None and profile.is_active == False :
  113.                 username        = user.username
  114.                 get_secret_key  = activation_key_generator(username)
  115.                 print(get_secret_key)
  116.                 profile.activation_key = get_secret_key
  117.                 profile.key_expires = timezone.now() + datetime.timedelta(days=2)
  118.                 profile.save()
  119.                 send_some_email(email, username, get_secret_key)
  120.                 return redirect('/account/login')
  121.     form = ResetActivatioKey()
  122.     context = {"form":form}
  123.     return render(request, 'accounts/registration/reset_activation_key.html', context)
  124.  
  125.  
  126. @login_required(login_url='/accounts/login/')
  127. def profile_view(request):
  128.     profile                     = UserProfile.objects.get(user=request.user)
  129.     watched_serial_info         = watched_serials.objects.filter(user=request.user)
  130.     context = {"profile":profile, "watched_serial_info":watched_serial_info}
  131.     return render (request, 'accounts/profile.html', context)
  132.  
  133. @login_required(login_url='/accounts/login/')
  134. def profile_edit_view(request):
  135.     context = {}
  136.     return render (request, 'accounts/edit.html', context)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement