Skip to content

Conversation

@kotslon
Copy link

@kotslon kotslon commented May 10, 2012

  1. Добавлена настройка VK_IFRAME_APP_ID_SETTING - 'имя настройки ID' - чтобы не конфликтовать с другими приложениями. Конкретно у меня возникла проблема с django-social-auth - то же самое имя настройки, а значение мне нужно запихать другое, т.к. фконтакт не даёт OAuth тем кто зарегистрирован как IFrame. Аналогично VK_IFRAME_APP_SECRET_SETTING.
  2. Добавил отдельное поле vk_id чтобы хранить фконтактовский IDшник, и потом проверять не по username, а по vk_id. Теперь username можно менять. Такое поведение включается по VK_IFRAME_USERNAME_IS_VK_ID = False.
  3. Без описанных выше настроек должно работать как и раньше.
  4. Я новичок и в django, и на github-е, так что если что не так - извиняйте :)

@kmike
Copy link
Owner

kmike commented May 10, 2012

Привет!

  1. +1 к тому, чтоб ввести VK_IFRAME_<foo>. Мне кажется, старые названия нужно объявить устаревшими и выдавать DeprecationWarning, если они используются.

  2. Насчет vk_id отдельно: я в принципе не против, но и username не напрягал. Только вариант с настройкой не очень хороший, как мне кажется - лучше, чтоб было какое-то одно поведение, а не 2 совершенно разных в зависимости от настройки. Например, с настройкой непонятно, как текущий сайт перевести на новый вариант хранения айдишника. Включаешь ее - старые пользователи отваливаются. Если уж хранить ее отдельно, то миграцией заполнить, а username оставить в информационных целях (поменять можно чтоб было без отваливания авторизации). Но я до конца не уверен, что оно того стоит. Может у @Kirov еще мысли есть по этому поводу?

  3. Хорошо бы какую-то документацию к этому всему написать в README.rst и инструкции по обновлению в CHANGES.rst.

Спасибо! Я еще по коду замечания в комментах к коммитам немного напишу.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

пробелы в конце строки лишние

@kotslon
Copy link
Author

kotslon commented May 10, 2012

Про PEP8 : где-то я видел картинку что-то типа Java coding convensions on one page - кусок красиво написанного кода с небольшими пояснениями. Что-то подобное есть для питона? Или может посоветуете плагин к эклипсу, который бы это умел проверять?

Про .rst - чем это дело ковырять? просто редактировать как обычный файл или есть специальные редакторы? какие-то особые правила написания?

P.S. на гугле не забанили, просто гугл от моих запросов уже пухнет - не знаю ни питона, ни джанги, ни гита - соответственно напрягаю его по каждой мелочи. Буду рад советам, могущим сэкономить моё время, ибо дом/семья/работа.... Вобщем, в гугл не отправляйте - просто проигнорируйте вопросы :)

@kmike
Copy link
Owner

kmike commented May 10, 2012

c pep8 там просто немного соглашений по оформлению - можно поставить утилиту pep8 и свой код ей проверить (pip install pep8). Прямо строго следовать не обязательно, но лучше ближе, чем дальше. Еще можно http://artifex.org/~hblanks/talks/2011/pep20_by_example.html глянуть.

rst - редактировать как обычный файл (это http://en.wikipedia.org/wiki/ReStructuredText ). PyCharm подсветку умеет. Если там с разметкой что-то не так будет, поправлю.

@kotslon
Copy link
Author

kotslon commented May 10, 2012

А вот у меня ещё вопрос очень для меня важный: я не понимаю, почему там в бэкэнде:

user, created = get_or_create_user(vk_id, defaults=defaults)
if created:
    user = self.configure_user(vk_profile, user)

почему не обновляется информация если юзер старый?
Вот очень мне хочется убрать этот if. можно? :)

@kmike
Copy link
Owner

kmike commented May 10, 2012

Просто убрать нельзя по соображениям производительности (это будет запись в базу на каждый http-запрос). Вот тут обсуждали: https://bitbucket.org/kmike/django-vkontakte-iframe/issue/1/add-updating-profile-info

@kotslon
Copy link
Author

kotslon commented May 10, 2012

Вот добавил ещё один коммит - там оверкил)) Но я его хочу, и он вроде работает (тьфу-тьфу) :)

@kotslon
Copy link
Author

kotslon commented May 10, 2012

Ну теперь, кажется, я уже всё сделал, на что ума хватало :) мне хватит. Спасибо, ребята. Буду теперь пробовать применить енто дело :)

@kmike
Copy link
Owner

kmike commented May 16, 2012

Немного отвлекся) Мне кажется, может получиться проще сделать. По сути, все 3 способа получения пользователя (из username, из профиля и из коллбэка) можно свести к одному - из коллбэка, предоставив коллбэк по умолчанию (это про VK_IFRAME_GET_VK_USER_FUNC).

@kotslon
Copy link
Author

kotslon commented May 16, 2012

Так а оно надо ли сводить? есть 3 случая:

  1. username - лично меня не интересует вообще и считаю его идеологически неверным, но оставлен для совместимости
  2. профиль - самое оно для широких масс - просто и без извращений. и юзер подключен, и делаем с ним чо хотим.
  3. профиль+колбэк (не просто колбэк!) - сначала смотрим по профилю (ну вдруг уже там есть), если нет, то колбэк и заносим в профиль - для извращений, когда надо прикрутить альтернативные источники информации о вконтактовском профиле нашего пользователя. И тут я не хочу в своём колбэке писать поиск по профилю - пусть vk_iframe это само делает. А если поиск по профилю будет в колбэке по умолчанию, то перегрузив его мне придётся этот функционал писать самому, а мне лениво :)

P.S. Сам тоже отвлёкся - умотал срочно в командировку.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants