from django.shortcuts import render from django.contrib.auth import authenticate, login, logout from django.contrib.auth.decorators import login_required from .admin import PyrosUserCreationForm LOGGED_PAGE = "dashboard/home.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 = "You have successfully logged in, Welcome !" 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()))