def ensure_social_user(self,
                           provider,
                           user_id,
                           username,
                           extra_data=None,
                           firstname=None,
                           lastname=None):
        from social.apps.django_app.default.models import UserSocialAuth
        import uuid

        try:
            social_auth = UserSocialAuth.objects.get(provider=provider,
                                                     uid=user_id)
            user = social_auth.user

        except UserSocialAuth.DoesNotExist:
            internal_username = username
            while User.objects.filter(username=internal_username).exists():
                internal_username = username + uuid.uuid4().hex[:16]

            user = User.objects.create(username=internal_username,
                                       first_name=firstname or '',
                                       last_name=lastname or '')

            social_auth = UserSocialAuth(user=user,
                                         provider=provider,
                                         uid=user_id,
                                         extra_data=extra_data or {})
            social_auth.save()

        return user, social_auth
예제 #2
0
    def ensure_social_user(self, provider, user_id, username, extra_data=None, firstname=None, lastname=None):
        from social.apps.django_app.default.models import UserSocialAuth
        import uuid

        try:
            social_auth = UserSocialAuth.objects.get(
                provider=provider,
                uid=user_id)
            user = social_auth.user

        except UserSocialAuth.DoesNotExist:
            internal_username = username
            while User.objects.filter(username=internal_username).exists():
                internal_username = username + uuid.uuid4().hex[:16]

            user = User.objects.create(
                username=internal_username,
                first_name=firstname or '',
                last_name=lastname or '')

            social_auth = UserSocialAuth(
                user=user,
                provider=provider,
                uid=user_id,
                extra_data=extra_data or {}
            )
            social_auth.save()

        return user, social_auth
예제 #3
0
파일: tests.py 프로젝트: airsoull/apitasty
	def setUp(self):
		provider = 'facebook'

		self.user = User.objects.create_user(email='*****@*****.**', password='******', username="******")
		self.user = User.objects.get(pk=self.user.pk)
		uid = '662706953856122'
		extra_data = '{"expires": "5108950", "id": "662706953856122", "access_token": "CAAH4lDiSMqkBAJWOEsle5ISozhx5xkPIF2ZA2sCpHsn4tIbR9WdYyw9ZAIBQN4XVMddWoXwvFNDrUZB8RSJcNJulE4byJn2Vnxffz9qyLPmz0lVakSZCqbPN2U6BzV3WPGZBl1ro5DvkKJzhRIOtyFy3Oi1yyvJjEk4f4bFIVCTN7VoJ2t1EdCHZBBG6uNZBnqiUj1vhIwOepnEHWkT2rZBZA"}'
		social_auth = UserSocialAuth(user=self.user, provider=provider, uid=uid, extra_data=extra_data)
		social_auth.save()

		self.user_friend = User.objects.create_user(email='*****@*****.**', password='******', username="******")
		self.user_friend = User.objects.get(pk=self.user_friend.pk)
		uid = '10206250137793732'
		extra_data = '{"expires": "5183999", "id": "10206250137793732", "access_token": "CAAH4lDiSMqkBAJ4rz1HutjMkUv7gg3Blc3CR7caKWPTXwWQwoVvaleg4CWnJopnxRwoXl83JkbOZACRNeenEasyIrHOKKwQTieL9s9SaxZCbEqRZBwsC9StEn686dgshAqqtIly1ojrZBR7PSxXb9klwm0qg09qSqal98ZCZBkyGpdihlSzjfPqf7MpYR2IgejdEK9ScDzQiyeKpyQQ6ZBS"}'
		self.social_auth_friend = UserSocialAuth(user=self.user_friend, provider=provider, uid=uid, extra_data=extra_data)
		self.social_auth_friend.save()

		self.user_no_friend = User.objects.create_user(email='*****@*****.**', password='******', username="******")
		self.user_no_friend = User.objects.get(pk=self.user_no_friend.pk)
		uid = '10153139013369780'
		extra_data = '{"expires": "5183999", "id": "10153139013369780", "access_token": "CAAH4lDiSMqkBACz9b3PYRoSgsxRUx19cdxxR8U5BWGRgVHlRwdHIL5HtMsCvlNaZBbZBK4qgr8AUPZAZBZCjIjPfjapLbyBDcelLi3rRAbGeImR8tuiK8naRQVW6sqTwP5GgZAX5BqIwFKZAlTgcCD2PzUsymZByJqld1UuSQVzMugM5V5yc9mKCgXJqhRy62MNULbZAQ0ZB543mOZAryBbZB0sn"}'
		social_auth = UserSocialAuth(user=self.user_no_friend, provider=provider, uid=uid, extra_data=extra_data)
		social_auth.save()

		self.url = '/api/facebook/friend/'
예제 #4
0
	def save(self, profile_request):
		user = User.objects.create_user(
			username=self.cleaned_data['username'],
			email=self.cleaned_data['email'],
			first_name=self.cleaned_data['first_name'],
			last_name=self.cleaned_data['last_name'],
			)
		user.password = profile_request.password
		user.is_active = self.cleaned_data['is_active']
		user.is_staff = self.cleaned_data['is_staff']
		user.is_superuser = self.cleaned_data['is_superuser']
		user.groups = self.cleaned_data['groups']
		user.save()

		if profile_request.provider and profile_request.uid:
			social = UserSocialAuth(
				user=user,
				provider=profile_request.provider,
				uid=profile_request.uid,
				)
			social.save()

		user_profile = UserProfile.objects.get(user=user)
		user_profile.email_visible = self.cleaned_data['email_visible_to_others']
		user_profile.phone_number = self.cleaned_data['phone_number']
		user_profile.phone_visible = self.cleaned_data['phone_visible_to_others']
		user_profile.status = self.cleaned_data['status']
		user_profile.save()
		user_profile.current_room = self.cleaned_data['current_room']
		user_profile.former_rooms = self.cleaned_data['former_rooms']
		user_profile.former_houses = self.cleaned_data['former_houses']
		user_profile.save()

		return user
예제 #5
0
def get_user_id(auth_data):
    provider = auth_data['provider']
    uid = auth_data['uid']
    logger.debug('uid = {}'.format(uid))
    user_social_auth = UserSocialAuth.get_social_auth(provider, uid)
    if user_social_auth:
        user = YMUser.objects.get(id=user_social_auth.user_id)
    else:
        user = YMUser()
    if 'email' in auth_data:
        user.email = auth_data['email']
    if 'username' in auth_data:
        user.username = auth_data['username']
    if 'first_name' in auth_data:
        user.first_name = auth_data['first_name']
    if 'last_name' in auth_data:
        user.last_name = auth_data['last_name']
    if 'picture' in auth_data:
        user.icon_url = auth_data['picture']
    if 'locale' in auth_data:
        user.locale = auth_data['locale']
    # logger.debug('user save called...')
    user.save()
    if user_social_auth:
        return (user.id, False)
    user_social_auth = UserSocialAuth(user_id=user.id,
                                      provider=provider,
                                      uid=uid,
                                      extra_data=auth_data)
    user_social_auth.save()
    return (user.id, True)
예제 #6
0
파일: controls.py 프로젝트: EricDoug/tomb
def get_user_id(auth_data):
    provider = auth_data['provider']
    uid = auth_data['uid']
    logger.debug('uid = {}'.format(uid))
    user_social_auth = UserSocialAuth.get_social_auth(provider, uid)
    if user_social_auth:
        user = YMUser.objects.get(id=user_social_auth.user_id)
    else:
        user = YMUser()
    if 'email' in auth_data:
        user.email = auth_data['email']
    if 'username' in auth_data:
        user.username = auth_data['username']
    if 'first_name' in auth_data:
        user.first_name = auth_data['first_name']
    if 'last_name' in auth_data:
        user.last_name = auth_data['last_name']
    if 'picture' in auth_data:
        user.icon_url = auth_data['picture']
    if 'locale' in auth_data:
        user.locale = auth_data['locale']
    # logger.debug('user save called...')
    user.save()
    if user_social_auth:
        return (user.id, False)
    user_social_auth = UserSocialAuth(user_id=user.id, provider=provider,
                                      uid=uid, extra_data=auth_data)
    user_social_auth.save()
    return (user.id, True)
예제 #7
0
def create_users():
	User.objects.exclude(pk=1).delete()
	
	for pk, fields in users.iteritems():
		if pk != 1:
			if fields['email'] != '':
				existing = User.objects.filter(email = fields['email'])
				if existing.count() > 0:
					ou = existing[0]
					if ou.is_active == False and fields['is_active'] == True:
						replace_users[ou.pk] = pk
						for k,v in replace_users.iteritems():
							if v == ou.pk:
								replace_users[k] = pk
						ou.delete()
					elif ou.is_active == True and fields['is_active'] == False:
						replace_users[pk] = ou.pk
						for k,v in replace_users.iteritems():
							if v == pk:
								replace_users[k] = ou.pk
						continue
					else:
						replace_users[ou.pk] = pk
						for k,v in replace_users.iteritems():
							if v == ou.pk:
								replace_users[k] = pk
						ou.delete()

			#print "email:", fields['email']
			nu = User(pk=pk)
			nu.username = fields['username']
			if fields['email']:
				nu.email = fields['email']
				nu.status = 1
			nu.password = fields['password']
			nu.full_name = fields['profile']['full_name']
			nu.message = fields['profile']['message']
			nu.is_active = fields['is_active']
			nu.is_staff = fields['is_staff']
			nu.is_superuser = fields['is_superuser']
			nu.comment_count = fields['profile']['comment_count']
			nu.dateo_count = fields['profile']['item_count']
			nu.vote_count = fields['profile']['vote_count']
			nu.client_domain = datea
			nu.save()

			joined = date_parser(fields['date_joined'])
			lastlog = date_parser(fields['last_login'])
			User.objects.filter(pk=nu.pk).update(date_joined=joined, created=joined, last_login=lastlog)

	for pk, fields in usersSocial.iteritems():
		if fields['user'] != 1:
			nusoc = UserSocialAuth(pk=pk)
			nusoc.provider = fields['provider']
			nusoc.uid = fields['uid']
			nusoc.user_id = get_user(int(fields['user']))
			nusoc.extra_data = fields['extra_data']
			nusoc.save()
예제 #8
0
 def setUp(self):
     user = User.objects.create_user(username='******',
                                     email='*****@*****.**',
                                     password='******')
     user_social_auth = UserSocialAuth()
     user_social_auth.provider = 'evernote-sandbox'
     user_social_auth.uid = '596560'
     user_social_auth.extra_data = '{"access_token": {"edam_webApiUrlPrefix": "https://sandbox.evernote.com/shard/s1/", "edam_shard": "s1", "oauth_token": "S=s1:U=91a50:E=158f7ee9efa:C=151a03d7140:P=185:A=koichi-ezato-3816:V=2:H=1a4e5efcc8f63951e17852d0c8019cab", "edam_expires": "1481628360442", "edam_userId": "596560", "edam_noteStoreUrl": "https://sandbox.evernote.com/shard/s1/notestore"}, "expires": 1481628360, "store_url": "https://sandbox.evernote.com/shard/s1/notestore", "oauth_token": "S=s1:U=91a50:E=158f7ee9efa:C=151a03d7140:P=185:A=koichi-ezato-3816:V=2:H=1a4e5efcc8f63951e17852d0c8019cab"}'
     user_social_auth.user = user
     user_social_auth.save()
예제 #9
0
파일: controls.py 프로젝트: valdersoul/tomb
def get_user_id(auth_data):
    provider = auth_data['provider']
    uid = auth_data['uid']
    user = UserSocialAuth.get_social_auth(provider, uid)
    if user: return user.id
    user = YMUser()
    if 'email' in auth_data: user.email = auth_data['email']
    if 'username' in auth_data: user.username = auth_data['username']
    if 'first_name' in auth_data: user.first_name = auth_data['first_name']
    if 'last_name' in auth_data: user.last_name = auth_data['last_name']
    user.save()
    user_social_auth = UserSocialAuth(user_id = user.id, provider = provider,
                                    uid = uid, extra_data = auth_data)
    user_social_auth.save()
    return user.id
예제 #10
0
    def create_links(self):
        """
        Create all needed links to Django and/or UserSocialAuth.
        """
        extra_data = json.loads(self.extra_data)
        username = extra_data.get(
            'lis_person_name_full',
            extra_data.get('lis_person_sourcedid', self.user_id)
        )
        first_name = extra_data.get('lis_person_name_given', '')
        last_name = extra_data.get('lis_person_name_family', '')
        email = extra_data.get('lis_person_contact_email_primary', '').lower()

        defaults = {
            'first_name': first_name,
            'last_name': last_name,
        }

        if email:
            defaults['email'] = email
            social = UserSocialAuth.objects.filter(
                provider='email', uid=email
            ).first()
            if social:
                django_user = social.user
            else:
                django_user = User.objects.filter(email=email).first()
                if not django_user:
                    django_user, created = User.objects.get_or_create(
                        username=username, defaults=defaults
                    )
                social = UserSocialAuth(
                    user=django_user,
                    provider='email',
                    uid=email,
                    extra_data=extra_data
                )
                social.save()
        else:
            django_user, created = User.objects.get_or_create(
                username=username, defaults=defaults
            )
        self.django_user = django_user
        self.save()
예제 #11
0
    def test__email(self):
        job = running_jobs.pop(0)
        test_project = Project(collab=job["collab_id"], context=uuid4())
        test_project.save()
        test_quota = Quota(project=test_project, platform=job["hardware_platform"],
                           usage=0, limit=1000, units="foo-hours")
        test_quota.save()
        if USE_MOCKS:
            user = User(username="******", email="*****@*****.**")
            user.save()
            sa = UserSocialAuth(user=user, uid=job['user_id'])
            sa.save()

        log = "\n".join(str(x) for x in range(105))
        log_response = self.client.put("/api/v2/log/{}".format(job["id"]),
                                       data=json.dumps({"content": log}),
                                       content_type="application/json")
        self.assertEqual(log_response.status_code, 201)

        job['timestamp_submission'] = job['timestamp_submission'].isoformat()
        job['status'] = "finished"
        job["provenance"]["version"] = 123
        job["resource_usage"] = 23
        job['hardware_config']["resource_allocation_id"] = test_quota.pk
        resource_uri = "/api/v2/queue/{}".format(job["id"])
        response = self.client.put(resource_uri, data=json.dumps(job), content_type="application/json")
        self.assertEqual(response.status_code, 204)

        message = mail.outbox[0]
        self.assertEqual(message.to, ["*****@*****.**"])
        self.assertEqual(message.subject, "[HBP Neuromorphic] job {} finished".format(job["id"]))
        self.assertIn("Job {} finished".format(job["id"]), message.body)
        self.assertIn("0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n",
                      message.body)
        self.assertIn("27\n28\n29\n\n.  .  .\n\n35\n36\n37",  # cut at :30 and -70:
                      message.body)
        self.assertIn("95\n96\n97\n98\n99\n100\n101\n102\n103\n104",
                      message.body)
        self.assertIn("https://collab.humanbrainproject.eu/#/collab/{}/nav/{}?state=job.{}".format(job["collab_id"],
                                                                                                   job["provenance"]["collaboratory"]["nav_item"],
                                                                                                   job["id"]),
                      message.body)
예제 #12
0
    def create_links(self):
        """
        Create all needed links to Django and/or UserSocialAuth.
        """
        extra_data = json.loads(self.extra_data)
        username = extra_data.get(
            'lis_person_name_full',
            extra_data.get('lis_person_sourcedid', self.user_id))
        first_name = extra_data.get('lis_person_name_given', '')
        last_name = extra_data.get('lis_person_name_family', '')
        email = extra_data.get('lis_person_contact_email_primary', '').lower()

        defaults = {
            'first_name': first_name,
            'last_name': last_name,
        }

        if email:
            defaults['email'] = email
            social = UserSocialAuth.objects.filter(provider='email',
                                                   uid=email).first()
            if social:
                django_user = social.user
            else:
                django_user = User.objects.filter(email=email).first()
                if not django_user:
                    django_user, created = User.objects.get_or_create(
                        username=username, defaults=defaults)
                social = UserSocialAuth(user=django_user,
                                        provider='email',
                                        uid=email,
                                        extra_data=extra_data)
                social.save()
        else:
            django_user, created = User.objects.get_or_create(
                username=username, defaults=defaults)
        self.django_user = django_user
        self.save()
예제 #13
0
파일: tests.py 프로젝트: airsoull/apitasty
class UserResourceTest(ResourceTestCase):

	def setUp(self):
		provider = 'facebook'

		self.user = User.objects.create_user(email='*****@*****.**', password='******', username="******")
		self.user = User.objects.get(pk=self.user.pk)
		uid = '662706953856122'
		extra_data = '{"expires": "5108950", "id": "662706953856122", "access_token": "CAAH4lDiSMqkBAJWOEsle5ISozhx5xkPIF2ZA2sCpHsn4tIbR9WdYyw9ZAIBQN4XVMddWoXwvFNDrUZB8RSJcNJulE4byJn2Vnxffz9qyLPmz0lVakSZCqbPN2U6BzV3WPGZBl1ro5DvkKJzhRIOtyFy3Oi1yyvJjEk4f4bFIVCTN7VoJ2t1EdCHZBBG6uNZBnqiUj1vhIwOepnEHWkT2rZBZA"}'
		social_auth = UserSocialAuth(user=self.user, provider=provider, uid=uid, extra_data=extra_data)
		social_auth.save()

		self.user_friend = User.objects.create_user(email='*****@*****.**', password='******', username="******")
		self.user_friend = User.objects.get(pk=self.user_friend.pk)
		uid = '10206250137793732'
		extra_data = '{"expires": "5183999", "id": "10206250137793732", "access_token": "CAAH4lDiSMqkBAJ4rz1HutjMkUv7gg3Blc3CR7caKWPTXwWQwoVvaleg4CWnJopnxRwoXl83JkbOZACRNeenEasyIrHOKKwQTieL9s9SaxZCbEqRZBwsC9StEn686dgshAqqtIly1ojrZBR7PSxXb9klwm0qg09qSqal98ZCZBkyGpdihlSzjfPqf7MpYR2IgejdEK9ScDzQiyeKpyQQ6ZBS"}'
		self.social_auth_friend = UserSocialAuth(user=self.user_friend, provider=provider, uid=uid, extra_data=extra_data)
		self.social_auth_friend.save()

		self.user_no_friend = User.objects.create_user(email='*****@*****.**', password='******', username="******")
		self.user_no_friend = User.objects.get(pk=self.user_no_friend.pk)
		uid = '10153139013369780'
		extra_data = '{"expires": "5183999", "id": "10153139013369780", "access_token": "CAAH4lDiSMqkBACz9b3PYRoSgsxRUx19cdxxR8U5BWGRgVHlRwdHIL5HtMsCvlNaZBbZBK4qgr8AUPZAZBZCjIjPfjapLbyBDcelLi3rRAbGeImR8tuiK8naRQVW6sqTwP5GgZAX5BqIwFKZAlTgcCD2PzUsymZByJqld1UuSQVzMugM5V5yc9mKCgXJqhRy62MNULbZAQ0ZB543mOZAryBbZB0sn"}'
		social_auth = UserSocialAuth(user=self.user_no_friend, provider=provider, uid=uid, extra_data=extra_data)
		social_auth.save()

		self.url = '/api/facebook/friend/'

	def test_post(self):
		response = self.client.post(self.url)
		self.assertEqual(405, response.status_code)

	def test_get_without_parameters(self):
		response = self.client.get(self.url, format='json')
		self.assertEqual(404, response.status_code)

	def test_get_only_email_parameter(self):
		response = self.client.get(self.url, {'email': '*****@*****.**'}, format='json')
		self.assertEqual(404, response.status_code)

	def test_get_only_email_friend_parameter(self):
		response = self.client.get(self.url, {'email_friend': '*****@*****.**'}, format='json')
		self.assertEqual(404, response.status_code)

	def test_get_with_both_parameters_user_no_exist(self):
		response = self.client.get(self.url, {'email': '*****@*****.**', 'email_friend': '*****@*****.**'}, format='json')
		self.assertEqual(404, response.status_code)

	def test_get_with_both_parameter_user_exist(self):
		response = self.client.get(self.url, {'email': self.user.email, 'email_friend': self.user_friend.email}, format='json')
		self.assertEqual(200, response.status_code)

		content = response.content
		expected = {'objects': [{'resource_uri': '', 'value': True}]}

		self.assertEqual(expected, json.loads(content))

	def test_get_with_both_parameter_user_no_friend(self):
		response = self.client.get(self.url, {'email': self.user.email, 'email_friend': self.user_no_friend.email}, format='json')
		self.assertEqual(200, response.status_code)

		content = response.content
		expected = {'objects': [{'resource_uri': '', 'value': False}]}

		self.assertEqual(expected, json.loads(content))

	def test_get_with_both_parameter_friend_no_facebook(self):
		self.social_auth_friend.delete()
		response = self.client.get(self.url, {'email': self.user.email, 'email_friend': self.user_friend.email}, format='json')
		self.assertEqual(404, response.status_code)