views.py
3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
from django.shortcuts import render
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required
from .forms import PyrosUserCreationForm
LOGGED_PAGE = "../../dashboard/templates/dashboard/index.html"
def home(request):
'''
Initial login view when coming on the website
'''
if request.user.is_authenticated():
return(render(request, LOGGED_PAGE, {'message' : "You are already connected", 'success' : True}))
return(render(request, "user_manager/home_login.html"))
def create_user(request):
'''
View called to open the user creation form
'''
if request.user.is_authenticated():
return(render(request, LOGGED_PAGE, {'message' : "You are already connected", 'success' : True}))
form = PyrosUserCreationForm()
return (render(request, "user_manager/home_user_creation.html", locals()))
def user_signup_validation(request):
'''
View called to validate the user creation (form submitted)
'''
if request.user.is_authenticated():
return(render(request, LOGGED_PAGE, {'message' : "You are already connected", 'success' : True}))
form = PyrosUserCreationForm(request.POST)
if request.POST:
if form.is_valid():
form.save()
message = "Account creation successful ! Login to continue"
success = True
return(render(request, "user_manager/home_login.html", locals()))
else:
message = "One or more fields contain errors. Please try again"
else:
message = "The system encountered an error. Please try again"
error = True
return (render(request, "user_manager/home_user_creation.html", locals()))
def login_validation(request):
'''
View called when the user log in (form submitted)
'''
if request.user.is_authenticated():
return(render(request, LOGGED_PAGE, {'message' : "You are already connected", 'success' : True}))
username = password = ''
if request.POST:
email = request.POST.get('email')
password = request.POST.get('password')
user = authenticate(username=email, password=password)
if user is not None:
if user.is_active:
login(request, user)
request.session['user'] = email
message = "Oui"
success = True
return(render(request, LOGGED_PAGE, locals()))
else:
message = "Your account is not active, please contact the site administrator."
else:
message = "Your email and/or password were incorrect."
else:
message = "An unexpected error has occurred"
error = True
return(render(request, "user_manager/home_login.html", locals()))
@login_required
def profile(request):
'''
View called to see the current user profile
'''
return(render(request, "user_manager/profile.html", locals()))
@login_required
def user_logout(request):
'''
View called to log out. Redirects on login page.
'''
logout(request)
message = "Logout successful !"
success = True
return(render(request, "user_manager/home_login.html", locals()))