Advertisement
Guest User

Untitled

a guest
Feb 15th, 2017
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. AUTHENTICATION_BACKENDS = (
  2. 'django.contrib.auth.backends.ModelBackend',
  3. 'social.backends.facebook.FacebookOAuth2',
  4. 'social.backends.google.GoogleOAuth2',
  5. 'social.backends.twitter.TwitterOAuth',
  6. )
  7.  
  8. LOGIN_REDIRECT_URL = '/home'
  9. LOGOUT_REDIRECT_URL = '/index'
  10.  
  11. SOCIAL_AUTH_PIPELINE = (
  12. 'social_core.pipeline.social_auth.social_details',
  13. 'social_core.pipeline.social_auth.social_uid',
  14. 'social_core.pipeline.social_auth.auth_allowed',
  15. 'social_core.pipeline.social_auth.social_user',
  16. 'userlogin.auth_pipline.signup.create_user',
  17. 'social_core.pipeline.social_auth.associate_by_email',
  18. 'social_core.pipeline.social_auth.associate_user',
  19. 'social_core.pipeline.social_auth.load_extra_data',
  20. 'social_core.pipeline.user.user_details',
  21. )
  22.  
  23. from django.contrib.auth.models import User
  24. from django.contrib.auth import login
  25. from django.core.exceptions import ObjectDoesNotExist
  26. from django.contrib.auth import get_user_model
  27. User = get_user_model()
  28. from django.contrib.auth.backends import ModelBackend
  29. from django.utils.crypto import get_random_string
  30.  
  31.  
  32. def create_user(strategy=None, backend=None, details=None, response=None, request=None, *args, **kwargs):
  33. provider = backend.name
  34. try:
  35. user = User.objects.get(email=details['email'])
  36. except ObjectDoesNotExist:
  37. user = User.objects.create_user(email=details['email'], name=details['fullname'],
  38. password=get_random_string(length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'))
  39.  
  40. if provider == "facebook":
  41. user.fb_id = response["id"]
  42. user.age = response["age_range"]["min"]
  43. elif provider == "twitter":
  44. user.tw_id = response["id"]
  45. else:
  46. user.gp_id = response["id"]
  47.  
  48. login(strategy.request, user)
  49.  
  50. return {'user': user}
  51.  
  52. from django.db import models
  53. from .managers import UserManager
  54. from django.contrib.auth.base_user import AbstractBaseUser
  55. from django.contrib.auth.models import PermissionsMixin
  56.  
  57.  
  58. class User(AbstractBaseUser, PermissionsMixin):
  59.  
  60. # https://docs.djangoproject.com/en/1.10/topics/auth/customizing/
  61. # https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html#abstractbaseuser
  62.  
  63. name = models.CharField(max_length=100, null=True)
  64. email = models.EmailField(unique=True)
  65. dob = models.DateField(null=True)
  66. is_active = models.BooleanField(default=True)
  67. date_joined = models.DateTimeField(null=True)
  68. is_superuser = models.BooleanField(default=False)
  69. is_staff = models.BooleanField(default=False)
  70. fb_id = models.CharField(max_length=255, null=True)
  71. gp_id = models.CharField(max_length=255, null=True)
  72. tw_id = models.CharField(max_length=255, null=True)
  73. gender = models.CharField(max_length=1, default="u")
  74. age = models.IntegerField(null=True)
  75.  
  76.  
  77. objects = UserManager()
  78.  
  79. USERNAME_FIELD = 'email'
  80. REQUIRED_FIELDS = ['name']
  81.  
  82. def get_full_name(self):
  83. return self.email
  84.  
  85. def get_short_name(self):
  86. return self.email
  87.  
  88. def __str__(self):
  89. return self.name
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement