Skip to content

Commit aa20a55

Browse files
author
rishabhiitbhu
committed
User registration/login added
1 parent de6a26a commit aa20a55

File tree

11 files changed

+126
-4
lines changed

11 files changed

+126
-4
lines changed

server/celerybeat.pid

Lines changed: 0 additions & 1 deletion
This file was deleted.

server/users/__init__.py

Whitespace-only changes.

server/users/admin.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.contrib import admin
2+
from users.models import UserProfile
3+
# Register your models here.
4+
5+
6+
admin.site.register(UserProfile)

server/users/apps.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.apps import AppConfig
2+
3+
4+
class UsersConfig(AppConfig):
5+
name = 'users'
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# -*- coding: utf-8 -*-
2+
# Generated by Django 1.11.2 on 2018-02-22 19:48
3+
from __future__ import unicode_literals
4+
5+
from django.conf import settings
6+
from django.db import migrations, models
7+
import django.db.models.deletion
8+
9+
10+
class Migration(migrations.Migration):
11+
12+
initial = True
13+
14+
dependencies = [
15+
('auth', '0008_alter_user_username_max_length'),
16+
]
17+
18+
operations = [
19+
migrations.CreateModel(
20+
name='UserProfile',
21+
fields=[
22+
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)),
23+
('college', models.TextField(blank=True, null=True)),
24+
],
25+
),
26+
]

server/users/migrations/__init__.py

Whitespace-only changes.

server/users/models.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from django.db import models
2+
from django.core.urlresolvers import reverse
3+
from django.contrib.auth.models import User
4+
5+
6+
class UserProfile(models.Model):
7+
user = models.OneToOneField(User, primary_key=True)
8+
college = models.TextField(null = True, blank=True)
9+
10+
def __str__(self):
11+
return '%s-%s' % (self.user.first_name, self.college)

server/users/tests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.test import TestCase
2+
3+
# Create your tests here.

server/users/views.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
from django.shortcuts import render, render_to_response, HttpResponse, redirect
2+
from django.contrib.auth.models import User
3+
from django.contrib import messages
4+
from django.contrib.auth import authenticate, login, logout
5+
from users.models import *
6+
7+
8+
def FormView(request):
9+
template_name = 'form.html'
10+
return render(request, template_name)
11+
12+
def LoginView(request):
13+
if request.user.is_authenticated():
14+
return redirect('/')
15+
16+
template_name = 'form.html'
17+
if request.method == "POST":
18+
post = request.POST
19+
email = post.get('email')
20+
password = post.get('password')
21+
print(email, password)
22+
user = authenticate(username=email, email=email, password=password)
23+
print(user)
24+
if user is not None:
25+
login(request, user)
26+
return redirect('/')
27+
else:
28+
messages.error(request, 'Invalid Credentials', fail_silently=True)
29+
return render(request, template_name, {})
30+
else:
31+
return render(request, template_name, {})
32+
33+
34+
def RegistrationView(request):
35+
if request.user.is_authenticated():
36+
return redirect('/')
37+
template_name = 'form.html'
38+
if request.method == "POST":
39+
post = request.POST
40+
email = post.get('email')
41+
user, created = User.objects.get_or_create(username=email)
42+
if created:#create new User instance.
43+
user.email = email
44+
user.first_name = post.get('first-name')
45+
user.last_name = post.get('last-name')
46+
password = post.get('password')
47+
user.set_password(password)
48+
user.save()
49+
userprofile = UserProfile.objects.create(user=user)
50+
userprofile.college = post.get('college')
51+
userprofile.save()
52+
user = authenticate(username = email, password = password)
53+
login(request, user)
54+
return redirect('/')
55+
else:# already a user.
56+
messages.warning(request, "email already registered!, please try logging in.", fail_silently=True)
57+
return render(request, template_name)
58+
else:
59+
return render(request, template_name)
60+
61+
def LogoutView(request):
62+
logout(request)
63+
return redirect('/')

server/website/settings.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,14 @@
3535
# Application definition
3636

3737
INSTALLED_APPS = (
38+
'swag',
39+
'users',
3840
'django.contrib.admin',
3941
'django.contrib.auth',
4042
'django.contrib.contenttypes',
4143
'django.contrib.sessions',
4244
'django.contrib.messages',
4345
'django.contrib.staticfiles',
44-
'swag'
4546
)
4647

4748
MIDDLEWARE_CLASSES = (
@@ -73,6 +74,7 @@
7374
},
7475
]
7576

77+
7678
WSGI_APPLICATION = 'website.wsgi.application'
7779

7880

0 commit comments

Comments
 (0)