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)
Для Вконтактє ситуація аналогічна, лише Вконтактє віддає малюнок з розширенням, а Фейсбук без.
