def loginza_auth_handler(sender, user, identity, **kwargs): try: #loginza_models.UserMap.objects.get(user=user, verified=True) map = loginza_models.UserMap.objects.get(user=user) data = json.loads(map.identity.data) if data['provider'] == "http://www.facebook.com/": system_user = User.objects.get(username=user) if data['name']['first_name']: system_user.first_name = data['name']['first_name'] if data['name']['last_name']: system_user.last_name = data['name']['last_name'] if data['photo']: try: Avatar.objects.get(user=system_user) except: (filename, headers) = urllib.urlretrieve(data['photo']) img_name = '%s.jpg' % os.path.basename(filename) copy_path = os.path.join(settings.MEDIA_ROOT, settings.AVATAR_STORAGE_DIR, system_user.username, img_name) copy_dir = os.path.join(settings.MEDIA_ROOT, settings.AVATAR_STORAGE_DIR, system_user.username) if not os.path.isdir(copy_path): os.makedirs(copy_dir) shutil.copy2(filename, copy_path) path_ava = os.path.join(settings.AVATAR_STORAGE_DIR, system_user.username, img_name) avatar = Avatar( user = system_user, primary = True, avatar = path_ava, ) avatar.save() system_user.save() auth.login(sender, user)
Для Вконтактє ситуація аналогічна, лише Вконтактє віддає малюнок з розширенням, а Фейсбук без.
Немає коментарів:
Дописати коментар