Skip to content

Commit

Permalink
migrations added
Browse files Browse the repository at this point in the history
  • Loading branch information
Anjaneyulu committed Jul 22, 2016
1 parent 0e0e949 commit f42f5ca
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 29 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-07-22 06:57
from __future__ import unicode_literals

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('django_blog_it', '0011_auto_20160719_1140'),
]

operations = [
migrations.CreateModel(
name='Google',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('google_id', models.CharField(default='', max_length=200)),
('google_url', models.CharField(default='', max_length=1000)),
('verified_email', models.CharField(default='', max_length=200)),
('family_name', models.CharField(default='', max_length=200)),
('name', models.CharField(default='', max_length=200)),
('picture', models.CharField(default='', max_length=200)),
('gender', models.CharField(default='', max_length=10)),
('dob', models.CharField(default='', max_length=50)),
('given_name', models.CharField(default='', max_length=200)),
('email', models.CharField(db_index=True, default='', max_length=200)),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='google', to=settings.AUTH_USER_MODEL)),
],
),
migrations.AlterField(
model_name='post',
name='featured_image',
field=models.ImageField(blank=True, null=True, upload_to='static/blog/uploads/%Y/%m/%d/'),
),
]
55 changes: 26 additions & 29 deletions django_blog_it/django_blog_it/views.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import uuid
import json
from PIL import Image
import os
Expand All @@ -6,15 +7,17 @@
from django.shortcuts import render, render_to_response, get_object_or_404
from django.http import HttpResponseRedirect, HttpResponse, Http404
from django.contrib import messages
from django.contrib.auth import logout, authenticate, login
from django.contrib import auth
from django.contrib.auth import logout, authenticate, login, load_backend
from django.contrib.auth.decorators import user_passes_test, login_required
from django.views.decorators.csrf import csrf_exempt
from django.core.files import File

from .models import Menu, Post, PostHistory, Category, Tags, Image_File, \
STATUS_CHOICE, ROLE_CHOICE, UserRole, Page, Theme
STATUS_CHOICE, ROLE_CHOICE, UserRole, Page, Theme, Google
from .forms import *
from django_blog_it import settings
# from django_blog_it import settings
from django.conf import settings
try:
from django.contrib.auth import get_user_model
User = get_user_model()
Expand Down Expand Up @@ -1021,7 +1024,6 @@ def google_login(request):
'client_id': os.getenv("GP_CLIENT_ID"),
'client_secret': os.getenv("GP_CLIENT_SECRET")
}

info = requests.post("https://accounts.google.com/o/oauth2/token", data=params)
info = info.json()
url = 'https://www.googleapis.com/oauth2/v1/userinfo'
Expand All @@ -1035,9 +1037,6 @@ def google_login(request):
gender = user_document['gender'] if 'gender' in user_document.keys() else ""
link = user_document['link'] if 'link' in user_document.keys() else link

name = urlparse(picture).path.split('/')[-1]
# content = urllib.urlretrieve(picture)
content = urllib.request.urlretrieve(picture)
if request.user.is_authenticated():
user = request.user
else:
Expand All @@ -1048,19 +1047,13 @@ def google_login(request):
user.dob = dob
user.save()
else:
username = user_document['email'].split('@')[0]
if User.objects.filter(username=username):
username = user_document['email'].split('@')[0] + '-' + get_random_string(length=3)
user = User.objects.create(
username=username,
username=user_document['email'],
email=user_document['email'],
first_name=user_document['name'],
last_name=user_document['family_name'],
)
user.set_password(get_random_string())
# user.profile_pic.save(name, File(open(content[0])), save=True)
user.profile_pic.save(name, File(open(content[0], 'rb')), save=True)

user.set_password(uuid.uuid4())
user.save()
google, created = Google.objects.get_or_create(user=user)
google.user = user
Expand All @@ -1075,20 +1068,24 @@ def google_login(request):
google.gender = gender
google.picture = picture
google.save()
if request.user.is_authenticated():
return HttpResponseRedirect(reverse('organization:index'))
else:
user = auth.authenticate(username=user_document['email'])
auth.login(request, user)
user_org = UserOrganization.objects.filter(user=user)
user_org.update(status='active', user_confirmed=True)

if request.user.is_authenticated:
user_login.send(sender=None, request=request, user=request.user)
if not user.user_first_login:
return HttpResponseRedirect(reverse('user:change_password'))
else:
return HttpResponseRedirect('/')

if created:
role = UserRole.objects.filter(user=user).last()
if not role and user.is_superuser:
UserRole.objects.create(user=user, role="Admin")
elif not role:
UserRole.objects.create(user=user, role="Author")
if not request.user.is_authenticated():
if not hasattr(user, 'backend'):
for backend in settings.AUTHENTICATION_BACKENDS:
if user == load_backend(backend).get_user(user.pk):
user.backend = backend
break
if hasattr(user, 'backend'):
auth.login(request, user)
messages.success(request, "Loggedin successfully")
return HttpResponseRedirect(reverse('blog'))

else:
rty = "https://accounts.google.com/o/oauth2/auth?client_id=" + os.getenv("GP_CLIENT_ID")\
+ "&response_type=code"
Expand Down

0 comments on commit f42f5ca

Please sign in to comment.