SHARE
TWEET

Untitled

a guest Mar 20th, 2016 80 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # coding: utf-8
  2. from django.shortcuts import render, redirect
  3. from django.contrib.auth import authenticate, logout, login
  4. from django.contrib.auth.models import User
  5. from profiles.models import Profile
  6. import random
  7.  
  8.  
  9. def profile(request):
  10.     if request.user.is_authenticated():
  11.         message = ''
  12.         return render(request, 'profile.html', {'message': message})
  13.     return redirect('login')
  14.  
  15.  
  16. def user_login(request):
  17.     if 'name' in request.GET:
  18.         user = authenticate(username=request.GET['name'], password=request.GET['password'])
  19.         if user is not None:
  20.             login(request, user)
  21.             return redirect('home')
  22.         else:
  23.             message = 'Ошибка при вводе данных'
  24.             return render(request, 'login.html', {'message': message})
  25.     message = ''
  26.     return render(request, 'login.html', {'message': message})
  27.  
  28.  
  29. def user_logout(request):
  30.     logout(request)
  31.     return redirect('login')
  32.  
  33.  
  34. # почти дописанная функция обновление анных пользователя
  35. def update_profile(request):
  36.     message = 'Данные обновлены'
  37.     update = Profile.objects.get(user=request.user.id)
  38.     update.first_name = request.GET['first_name']
  39.     update.last_name = request.GET['last_name']
  40.     # это пока не знаю как работает, но думаю как то сложно
  41.     # update.avatar = request.GET['avatar']
  42.     update.email = request.GET['email']
  43.     # Изменение паролья, по какойто неведомой хуйне, не работает. Точнее после смены пароля, не авторизируется
  44.     if request.GET['pass'] != '':
  45.         pass_chec = authenticate(username=request.user.username, password=request.GET['pass'])
  46.         if pass_chec is not None:
  47.             if request.GET['pass1'] == request.GET['pass2']:
  48.                 p = User.objects.get(username=request.user.username)
  49.                 p.set_password = request.GET['pass1']
  50.                 p.save()
  51.                 message = 'Данные обновлены'
  52.             else:
  53.                 message = 'Пароли не совпадают'
  54.         else:
  55.             message = 'Введен не верный пароль'
  56.     update.save()
  57.     return render(request, 'profile.html', {'message': message})
  58.  
  59.  
  60. def registration(request):
  61.     # Здесь нужно добавить проверку уже существующего пользователя и сделать адекватную проверку пароля
  62.     if 'name' in request.GET and request.GET['pass1'] == request.GET['pass2'] and request.GET['pass1'] != '':
  63.         new_user = User.objects.create_user(
  64.             request.GET['name'],
  65.             ' ',
  66.             request.GET['pass1'],
  67.         )
  68.         new_user.save()
  69.         max_try = 100
  70.         not_unique_account = True
  71.         while not_unique_account:
  72.             account_gen = 1000 + random.randint(100, 999)
  73.             if max_try == 0:
  74.                 # Send email to admin
  75.                 break
  76.             if Profile.objects.filter(account=account_gen).count() == 0:
  77.                 not_unique_account = False
  78.             max_try -= 1
  79.         Profile.objects.create(
  80.             user_id=new_user.id,
  81.             account=account_gen,
  82.             balance=0,
  83.             avatar='media/image/uploads_avatar/user.jpg',
  84.         )
  85.         auth_user = authenticate(username=request.GET['name'], password=request.GET['pass1'])
  86.         login(request, auth_user)
  87.         return redirect('profile')
  88.     # Сюда нужно генерировать ошибку (пользователь уже есть, пароли не совпадают и т.д.)
  89.     message = ''
  90.     return render(request, 'registration.html', {'message': message})
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top