Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # account/views.py
- from django.http import HttpResponse
- from django.shortcuts import render, redirect
- from django.contrib.auth.decorators import login_required
- from django.contrib.auth import authenticate, login
- from django.contrib.auth.models import User
- from django.contrib import messages
- from .forms import LoginForm, CreateAdminForm
- def admin_login(request):
- if request.method == 'POST':
- form = LoginForm(request.POST)
- if form.is_valid():
- cd = form.cleaned_data
- user = authenticate(
- username = cd['username'],
- password = cd['password']
- )
- if user is not None:
- if user.is_active:
- login(request, user)
- return redirect('extensions:index')
- else:
- messages.error(request, "Invalid login. Please try again")
- return render(request, 'account/login.html', {'form': form})
- else:
- messages.error(request, "Invalid login. Please try again")
- return render(request, 'account/login.html', {'form': form})
- else:
- messages.error(request, "Invalid information in the form. Please try again")
- return render(request, 'account/login.html', {'form': form})
- else:
- if User.objects.filter().count() == 0:
- form = CreateAdminForm()
- return render(request, 'account/create_admin_login.html', {'form': form})
- else:
- form = LoginForm()
- return render(request, 'account/login.html', {'form': form})
- def create_admin_login(request):
- if request.method == 'POST':
- if User.objects.filter().count() == 0:
- form = CreateAdminForm(request.POST)
- if form.is_valid():
- cd = form.cleaned_data
- admin_user = form.save(commit=False)
- # Set the chosen password
- admin_user.set_password(form.cleaned_data['password'])
- # save User object
- admin_user.save()
- messages.success(request, 'Admin user created, please log in.')
- ###############################################
- # why does this give NoReverseMatch ?
- ##############################################
- return redirect('account:admin_login')
- else:
- messages.error(request, 'The form was invalid!')
- form = CreateAdminForm()
- return render(request, 'account/create_admin_login.html', {'form': form})
- else:
- return render(request, 'account/create_admin_login.html', {'form': form})
- @login_required
- def dashboardView(request):
- return render(request, 'account/dashboard.html', {'section':'dashboard'})
- @login_required
- def passwordreset(request):
- if request.method=='POST':
- user_form = UserEditForm(instance=request.user, data=request.POST)
- profile_form = ProfileEditForm(instance=request.user.profile, data=request.POST)
- if user_form.is_valid() and profile_form.is_valid():
- user_form.save()
- profile_form.save()
- messages.success(request, 'Profile updated successfully')
- else:
- messages.error(request, 'Error updating your profile!')
- else:
- user_form = UserEditForm(instance=request.user)
- profile_form = ProfileEditForm(instance=request.user.profile)
- return render(request, 'account/passwordreset.html', {'user_form': user_form, 'profile_form': profile_form})
- -----------------------------------------------------------
- # account/urls.py:
- from django.conf.urls import url
- from django.contrib.auth import views as auth_views
- from . import views
- app_name = 'account'
- urlpatterns = [
- # login / logout URLS
- url(r'^admin_login/$', views.admin_login, name='admin_login'),
- url(r'^create_admin_login/$', views.create_admin_login, name='create_admin_login'),
- url(r'^logout/$', auth_views.logout, name='logout'),
- url(r'^logout-then-login/$', auth_views.logout_then_login, name='logout_then_login'),
- #password change django.contrib.auth.views
- url(r'^password-change/$', auth_views.password_change, name='password_change'),
- url(r'^password-change/done/$', auth_views.password_change_done, name='password_change_done'),
- # reset password django.contrib.auth.views
- url(r'^password-reset/$', auth_views.password_reset, name='password_reset'),
- url(r'^password-reset/done/$', auth_views.password_reset_done, name='password_reset_done'),
- url(r'^password-reset/confirm/(?P<uidb64>[-\w]+)/(?P<token>[-\w]+)/$', auth_views.password_reset_confirm, name='password_reset_confirm'),
- url(r'^password-reset/complete/$', auth_views.password_reset_complete, name='password_reset_complete'),
- ]
Add Comment
Please, Sign In to add comment