Skip to content

Commit 653900f

Browse files
Merge pull request #14 from app-generator/social-auth
make email optional
2 parents 078ae9f + 6724512 commit 653900f

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

api/authentication/viewsets/social_login.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,14 @@ def get(self, request):
3232
user_data = requests.get('https://api.github.com/user', headers={
3333
"Authorization": "Bearer " + access_token
3434
}).json()
35-
36-
if User.objects.filter(username=user_data['login'], email=user_data['email']).exists():
37-
user = User.objects.get(username=user_data['login'], email=user_data['email'])
35+
36+
if User.objects.filter(username=user_data['login']).exists():
37+
user = User.objects.get(username=user_data['login'])
3838
else:
39-
user = User.objects.create_user(username=user_data['login'], email=user_data['email'])
39+
try:
40+
user = User.objects.create(username=user_data['login'], email=user_data['email'])
41+
except:
42+
user = User.objects.create(username=user_data['login'])
4043

4144
try:
4245
session = ActiveSession.objects.get(user=user)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 3.2.13 on 2022-12-08 04:47
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('api_user', '0001_initial'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='user',
15+
name='email',
16+
field=models.EmailField(blank=True, db_index=True, max_length=254, null=True, unique=True),
17+
),
18+
]

api/user/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def create_superuser(self, username, email, password):
4242

4343
class User(AbstractBaseUser, PermissionsMixin):
4444
username = models.CharField(db_index=True, max_length=255, unique=True)
45-
email = models.EmailField(db_index=True, unique=True)
45+
email = models.EmailField(db_index=True, unique=True, null=True, blank=True)
4646
is_active = models.BooleanField(default=True)
4747
is_staff = models.BooleanField(default=False)
4848
date = models.DateTimeField(auto_now_add=True)
@@ -53,4 +53,4 @@ class User(AbstractBaseUser, PermissionsMixin):
5353
objects = UserManager()
5454

5555
def __str__(self):
56-
return f"{self.email}"
56+
return f"{self.username}"

0 commit comments

Comments
 (0)