Codebase list django-allauth / upstream/0.42.0+ds
New upstream version 0.42.0+ds Pierre-Elliott Bécue 3 years ago
92 changed file(s) with 1011 addition(s) and 409 deletion(s). Raw diff Collapse all Expand all
2727 Biel Massot
2828 Björn Andersson
2929 Bojan Mihelac
30 Bruno Alla
3031 Chris Beaven
3132 Chris Davis
3233 Christian Carter
5556 Guilhem Saurel
5657 Guillaume Vincent
5758 Guoyu Hao
59 Haesung Park
5860 Hatem Nassrat
5961 Hyunwoo Shim
62 Ignacio Ocampo
6063 J. Erm
6164 J. Fernando Sánchez
6265 Jack Shedd
7376 Jihoon Park
7477 Jiyoon Ha
7578 Joe Vanderstelt
79 Joel Fernandes
7680 John Bazik
7781 John Whitlock
7882 Jonas Aule
98102 Markus Kaiserswerth
99103 Markus Thielen
100104 Martin Bächtold
105 Matt Nishi-Broach
101106 Mauro Stettler
102107 Morgante Pell
103108 Nariman Gharib
109 Nathan Strobbe
104110 Niklas A Emanuelsson
105111 Patrick Paul
106112 Paulo Eduardo Neves
124130 Sanghyeok Lee
125131 Seizan Shimazaki
126132 Serafeim Papastefanos
133 Sergey Silaev
127134 Shane Rice
128135 Stuart Ross
129136 Terry Jones
137144 Victor Semionov
138145 Volodymyr Yatsyk
139146 Vuong Nguyen
147 Vlad Dmitrievich
140148 Wendy Edwards
141149 Will Gordon
142150 Will Ross
143151 William Li
144152 Yaroslav Muravsky
145153 Yuri Kriachko
154 Youcef Mammar
0 0.42.0 (2020-05-24)
1 *******************
2
3 Note worthy changes
4 -------------------
5
6 - New providers: EDX, Yandex, Mixer.
7
8 - Fixed Twitch ``get_avatar_url()`` method to use the profile picture retrieved
9 by new user details endpoint introduced in version 0.40.0.
10
11 - The Facebook API version now defaults to v7.0.
12
13
014 0.41.0 (2019-12-18)
115 *******************
216
1529 - You can now store OAuth credentials directly in your
1630 ``settings.SOCIALACCOUNT_PROVIDERS`` settings instead of storing them in the
1731 database using a ``SocialApp`` record.
32
33 - Adding Keycloak Provider
1834
1935
2036 Backwards incompatible changes
00 Metadata-Version: 1.1
11 Name: django-allauth
2 Version: 0.41.0
2 Version: 0.42.0
33 Summary: Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.
44 Home-page: http://github.com/pennersr/django-allauth
55 Author: Raymond Penners
77
88 """
99
10 VERSION = (0, 41, 0, 'final', 0)
10 VERSION = (0, 42, 0, 'final', 0)
1111
1212 __title__ = 'django-allauth'
1313 __version_info__ = VERSION
1515 VERSION[3], VERSION[4] or '') if VERSION[3] != 'final' else '')
1616 __author__ = 'Raymond Penners'
1717 __license__ = 'MIT'
18 __copyright__ = 'Copyright 2010-2019 Raymond Penners and contributors'
18 __copyright__ = 'Copyright 2010-2020 Raymond Penners and contributors'
411411 'first_name', 'last_name', 'email'])
412412
413413 def is_safe_url(self, url):
414 from django.utils.http import is_safe_url
415 return is_safe_url(url, allowed_hosts=None)
414 try:
415 from django.utils.http import url_has_allowed_host_and_scheme
416 except ImportError:
417 from django.utils.http import \
418 is_safe_url as url_has_allowed_host_and_scheme
419
420 return url_has_allowed_host_and_scheme(url, allowed_hosts=None)
416421
417422 def get_email_confirmation_url(self, request, emailconfirmation):
418423 """Constructs the email confirmation (activation) url.
66 msgstr ""
77 "Project-Id-Version: 0.1\n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2016-01-19 19:32+0100\n"
1111 "Last-Translator: David D Lowe <daviddlowe.flimm@gmail.com>\n"
1212 "Language-Team: Arabic\n"
2424
2525 #: account/adapter.py:49
2626 msgid "Too many failed login attempts. Try again later."
27 msgstr ""
27 msgstr "تجاوزت الحد المسموح لمحاولة تسجيل الدخول, حاول في وقت لاحق"
2828
2929 #: account/adapter.py:51
3030 msgid "A user is already registered with this e-mail address."
31 msgstr "هنالك مستخدم مسجل سابقا مع نفس عنوان البريد الاكتروني‪.‬"
31 msgstr "هنالك مستخدم مسجل سابقا مع نفس عنوان البريد الالكتروني‪.‬"
3232
3333 #: account/adapter.py:294
3434 #, python-brace-format
4949
5050 #: account/forms.py:92
5151 msgid "Remember Me"
52 msgstr "ذكرني"
52 msgstr "تذكرني"
5353
5454 #: account/forms.py:98
5555 msgid "This account is currently inactive."
8080
8181 #: account/forms.py:130
8282 msgid "Username or e-mail"
83 msgstr "اسم المستخدم أو البريج الالكتروني"
83 msgstr "اسم المستخدم أو البريد الالكتروني"
8484
8585 #: account/forms.py:133
8686 msgctxt "field label"
8888 msgstr "تسجيل الدخول"
8989
9090 #: account/forms.py:292
91 #, fuzzy
92 #| msgid "E-mail (optional)"
9391 msgid "E-mail (again)"
94 msgstr "البريد الالكتروني ‪)‬اختياري‪(‬"
92 msgstr "البريد الالكتروني ‪(مجددا)‬"
9593
9694 #: account/forms.py:296
97 #, fuzzy
98 #| msgid "email confirmation"
9995 msgid "E-mail address confirmation"
10096 msgstr "تأكيد البريد الإلكتروني"
10197
104100 msgstr "البريد الالكتروني ‪)‬اختياري‪(‬"
105101
106102 #: account/forms.py:345
107 #, fuzzy
108 #| msgid "You must type the same password each time."
109103 msgid "You must type the same email each time."
110 msgstr "يجب عليك كتابة نفس كلمة المرور في كل مرة‪.‬"
104 msgstr "يجب عليك كتابة نفس البريد الالكتروني في كل مرة‪.‬"
111105
112106 #: account/forms.py:368 account/forms.py:477
113107 msgid "Password (again)"
143137
144138 #: account/forms.py:568
145139 msgid "The password reset token was invalid."
146 msgstr ""
140 msgstr "خطأ في شهادة اعادة تعيين كلمة المرور."
147141
148142 #: account/models.py:21
149143 msgid "user"
175169
176170 #: account/models.py:82
177171 msgid "sent"
178 msgstr "مبعوث"
172 msgstr "تم ارساله"
179173
180174 #: account/models.py:83 socialaccount/models.py:55
181175 msgid "key"
208202
209203 #: socialaccount/apps.py:7
210204 msgid "Social Accounts"
211 msgstr "الحسابات الاجتماعية"
205 msgstr "حسابات التواصل الاجتماعية"
212206
213207 #: socialaccount/models.py:42 socialaccount/models.py:76
214208 msgid "provider"
240234
241235 #: socialaccount/models.py:66
242236 msgid "social application"
243 msgstr ""
237 msgstr "تطبيق اجتماعي"
244238
245239 #: socialaccount/models.py:67
246240 msgid "social applications"
247 msgstr ""
241 msgstr "تطبيقات اجتماعية"
248242
249243 #: socialaccount/models.py:95
250244 msgid "uid"
252246
253247 #: socialaccount/models.py:97
254248 msgid "last login"
255 msgstr ""
249 msgstr "أخر دخول"
256250
257251 #: socialaccount/models.py:99
258252 msgid "date joined"
259 msgstr ""
253 msgstr "تاريخ الانضمام"
260254
261255 #: socialaccount/models.py:101
262256 msgid "extra data"
263 msgstr ""
257 msgstr "بيانات اضافية"
264258
265259 #: socialaccount/models.py:105
266260 msgid "social account"
267 msgstr ""
261 msgstr "حساب تواصل اجتماعي"
268262
269263 #: socialaccount/models.py:106
270264 msgid "social accounts"
271 msgstr ""
265 msgstr "حسابات تواصل اجتماعي"
272266
273267 #: socialaccount/models.py:131
274268 msgid "token"
288282
289283 #: socialaccount/models.py:140
290284 msgid "expires at"
291 msgstr ""
285 msgstr "ينتهي في"
292286
293287 #: socialaccount/models.py:144
294288 msgid "social application token"
300294
301295 #: socialaccount/providers/douban/views.py:36
302296 msgid "Invalid profile data"
303 msgstr ""
297 msgstr "معلومات بروفايل غير صالحة"
304298
305299 #: socialaccount/providers/oauth/client.py:78
306300 #, python-format
336330 msgid "This account is inactive."
337331 msgstr "هذا الحساب غير نشط"
338332
339 #: templates/account/email.html:5
340 msgid "Account"
341 msgstr "حساب"
342
343 #: templates/account/email.html:8
333 #: templates/account/email.html:5 templates/account/email.html:8
344334 msgid "E-mail Addresses"
345335 msgstr "عناوين البريد الالكتروني"
346336
366356
367357 #: templates/account/email.html:35
368358 msgid "Re-send Verification"
369 msgstr "ابعث رسالة التحقيق مرة أخرى"
359 msgstr "اعادة ارسال رسالة التأكيد"
370360
371361 #: templates/account/email.html:36 templates/socialaccount/connections.html:35
372362 msgid "Remove"
381371 "You currently do not have any e-mail address set up. You should really add "
382372 "an e-mail address so you can receive notifications, reset your password, etc."
383373 msgstr ""
384 "أنت حاليا ليس لديك أي عنوان البريد الإلكتروني. يجب أن تضيف عنوان البريد "
385 "الإلكتروني حتى تتمكن من تلقي الإخطارات، إعادة تعيين كلمة المرور الخاصة بك، "
386 "الخ"
374 "ليس لديك أي عنوان البريد الإلكتروني. يجب أن تضيف عنوان البريدالإلكتروني حتى "
375 "تتمكن من تلقي الاشعارات, إعادة تعيين كلمة المرور الخاصة بك، الخ"
387376
388377 #: templates/account/email.html:48
389378 msgid "Add E-mail Address"
390 msgstr "أضف عنوان البريد الاكتريني"
379 msgstr "أضف عنوان البريد الالكتروني"
391380
392381 #: templates/account/email.html:53
393382 msgid "Add E-mail"
395384
396385 #: templates/account/email.html:62
397386 msgid "Do you really want to remove the selected e-mail address?"
398 msgstr "هل تريد حقا ان تحذف عنوان البريد الاكتروني المختار؟"
387 msgstr "هل تريد حقا ان تحذف عنوان البريد الالكتروني المحدد؟"
399388
400389 #: templates/account/email/email_confirmation_message.txt:1
401 #, fuzzy, python-format
402 #| msgid ""
403 #| "User %(user_display)s at %(site_name)s has given this as an email "
404 #| "address.\n"
405 #| "\n"
406 #| "To confirm this is correct, go to %(activate_url)s\n"
390 #, python-format
407391 msgid ""
408392 "Hello from %(site_name)s!\n"
409393 "\n"
412396 "\n"
413397 "To confirm this is correct, go to %(activate_url)s\n"
414398 msgstr ""
415 "المستخدم %(user_display)s في الموقع %(site_name)s أعطى هذا كعنوان بريد "
416 "إلكتروني.\n"
417 "‏\n"
418 "لتأكيد هذه المعلومات صحيحة، انتقل إلى %(activate_url)s\n"
399 "مرحبا من %(site_name)s!\n"
400 "\n"
401 "تتلقى هذه الرسالة بسبب أن المستخدم %(user_display)s قام باضافة بريدك "
402 "الالكترني لحسابه في الموقع.\n"
403 "\n"
404 "لتأكيد صحة هذا الاجراء, اضغط على الرابط %(activate_url)s\n"
419405
420406 #: templates/account/email/email_confirmation_message.txt:7
421407 #, python-format
423409 "Thank you from %(site_name)s!\n"
424410 "%(site_domain)s"
425411 msgstr ""
412 "شكرا لك من فريق %(site_name)s!\n"
413 "%(site_domain)s"
426414
427415 #: templates/account/email/email_confirmation_subject.txt:3
428 #, fuzzy
429 #| msgid "Confirm E-mail Address"
430416 msgid "Please Confirm Your E-mail Address"
431 msgstr "قم بتحقيق عنوان البريد الاكتروني"
417 msgstr "قم بتأكيد عنوان البريد الالكتروني"
432418
433419 #: templates/account/email/password_reset_key_message.txt:1
434 #, fuzzy, python-format
435 #| msgid ""
436 #| "You're receiving this e-mail because you or someone else has requested a "
437 #| "password for your user account at %(site_domain)s.\n"
438 #| "It can be safely ignored if you did not request a password reset. Click "
439 #| "the link below to reset your password."
420 #, python-format
440421 msgid ""
441422 "Hello from %(site_name)s!\n"
442423 "\n"
445426 "It can be safely ignored if you did not request a password reset. Click the "
446427 "link below to reset your password."
447428 msgstr ""
448 "تلقيت هذا البريد الإلكتروني لأنك ‪)‬أو أي شخص آخر‪(‬ قد طلب كلمة مرور لحساب "
449 "المستخدم الخاص بك في%(site_domain)s‪.‬\n"
450 "يمكن تجاهل هذه الرسالة بأمان إذا كنت لم تطلب إعادة تعيين كلمة مرور. انقر فوق "
451 "الارتباط الموجود أدناه لإعادة تعيين كلمة المرور الخاصة بك."
429 "مرحبا من %(site_name)s!\n"
430 "\n"
431 "أنت تتلقى هذه الرسالة بسبب طلبك أو طلب شخص أخرالحصول على كلمة المرور الخاصة "
432 "بك.\n"
433 "اذا لم تقم بطلب كلمة مرور يمكنك تجاهل هذه الريالة. اضغط على الرابط بالاسفل "
434 "لاعادة تعيين كلمة المرور."
452435
453436 #: templates/account/email/password_reset_key_message.txt:8
454437 #, python-format
461444 "Thank you for using %(site_name)s!\n"
462445 "%(site_domain)s"
463446 msgstr ""
447 "شكرا لاستخدامك %(site_name)s!\n"
448 "%(site_domain)s"
464449
465450 #: templates/account/email/password_reset_key_subject.txt:3
466451 msgid "Password Reset E-mail"
469454 #: templates/account/email_confirm.html:6
470455 #: templates/account/email_confirm.html:10
471456 msgid "Confirm E-mail Address"
472 msgstr "قم بتحقيق عنوان البريد الاكتروني"
457 msgstr "قم بتحقيق عنوان البريد الالكتروني"
473458
474459 #: templates/account/email_confirm.html:16
475460 #, python-format
554539 #: templates/account/messages/email_deleted.txt:2
555540 #, python-format
556541 msgid "Removed e-mail address %(email)s."
557 msgstr "قد أزلنا عنوان البريد الاكتروني %(email)s."
542 msgstr "قد أزلنا عنوان البريد الالكتروني %(email)s."
558543
559544 #: templates/account/messages/logged_in.txt:4
560545 #, python-format
596581 #: templates/account/password_reset_done.html:6
597582 #: templates/account/password_reset_done.html:9
598583 msgid "Password Reset"
599 msgstr "إعادة ضبط كلمة المرور"
584 msgstr "إعادة تعيين كلمة المرور"
600585
601586 #: templates/account/password_reset.html:15
602587 msgid ""
767752 #: templates/socialaccount/login_cancelled.html:5
768753 #: templates/socialaccount/login_cancelled.html:9
769754 msgid "Login Cancelled"
770 msgstr "الدخول تم إلغاؤه‪.‬"
755 msgstr "تم الغاء تسجيل الدخول"
771756
772757 #: templates/socialaccount/login_cancelled.html:13
773758 #, python-format
782767
783768 #: templates/socialaccount/messages/account_connected.txt:2
784769 msgid "The social account has been connected."
785 msgstr "قد تم ربط الحساب الاجتماعي."
770 msgstr "قد تم ربط حساب التواصل الاجتماعي."
786771
787772 #: templates/socialaccount/messages/account_connected_other.txt:2
788773 msgid "The social account is already connected to a different account."
789 msgstr "الحساب الاجتماعي متصل مسبقاً إلى حساب مختلف."
774 msgstr "حساب التواصل الاجتماعي متصل مسبقاً إلى حساب مختلف."
790775
791776 #: templates/socialaccount/messages/account_disconnected.txt:2
792777 msgid "The social account has been disconnected."
793 msgstr "تم قطع الاتصال بالحساب الاجتماعي."
778 msgstr "تم قطع الاتصال بحساب التواصل الاجتماعي."
794779
795780 #: templates/socialaccount/signup.html:10
796781 #, python-format
801786 "أنت على وشك استخدام حسابك من %(provider_name)s لتسجيل الدخول إلى "
802787 "%(site_name)s. وكخطوة أخيرة، يرجى ملء النموذج التالي:"
803788
789 #~ msgid "Account"
790 #~ msgstr "حساب"
791
804792 #~ msgid "The login and/or password you specified are not correct."
805793 #~ msgstr "تسجيل الدخول و / أو كلمة المرور الذي حددته غير صحيحة."
806794
811799 #~ msgstr "اسم المستخدم مسجل مسبقا. الرجاء اختيار اسم اخر‪.‬"
812800
813801 #, fuzzy
814 #~| msgid "Sign In"
815802 #~ msgid "Shopify Sign In"
816 #~ msgstr "تسجيل الدخول"
803 #~ msgstr "تسجيل الدخول Shopify"
817804
818805 #~ msgid ""
819806 #~ "You have confirmed that <a href=\"mailto:%(email)s\">%(email)s</a> is an "
826813 #~ msgstr "شكرا لاستخدام موقعنا!"
827814
828815 #~ msgid "Confirmation e-mail sent to %(email)s"
829 #~ msgstr "דואל אישור נשלח אל %(email)s"
816 #~ msgstr "ارسلت رسالة التأكيد الى بريدك الالكتروني %(email)s"
830817
831818 #~ msgid "Delete Password"
832 #~ msgstr "מחיקת סיסמא"
819 #~ msgstr "احذف كلمة المرور"
833820
834821 #~ msgid ""
835822 #~ "You may delete your password since you are currently logged in using "
836823 #~ "OpenID."
837 #~ msgstr "אתה רשאי למחוק את סיסמאתך כיוון שהנך מחובר באמצעות OpenID"
824 #~ msgstr "بامكانك حذف كلمة المرور بما انك قمت بتسجيل الدخول بواسطة OpenID"
838825
839826 #~ msgid "delete my password"
840 #~ msgstr "מחק סיסמא"
827 #~ msgstr "احذف كلمة المرور الخاصة بي"
841828
842829 #~ msgid "Password Deleted"
843 #~ msgstr "הסיסמא נמחקה"
830 #~ msgstr "تم حذف كلمة المرور"
844831
845832 #~ msgid "Your password has been deleted."
846 #~ msgstr "סיסמתך נמחקה מהמערכת."
833 #~ msgstr "تم حذف كلمة المرور الخاصة بك."
77 msgstr ""
88 "Project-Id-Version: 0.35\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: 2018-04-17 16:52+0200\n"
1212 "Last-Translator: Beda Kosata <beda.kosata@gmail.com>\n"
1313 "Language-Team: Czech <>\n"
330330 msgid "This account is inactive."
331331 msgstr "Tento účet není aktivní."
332332
333 #: templates/account/email.html:5
334 msgid "Account"
335 msgstr "Účet"
336
337 #: templates/account/email.html:8
333 #: templates/account/email.html:5 templates/account/email.html:8
338334 msgid "E-mail Addresses"
339335 msgstr "E-mailové adresy"
340336
792788 "Chystáte se použít vaš %(provider_name)s účtu k přihlášení na naše stránky \n"
793789 "%(site_name)s. Jako poslední krok, prosím, vyplňte následující formulář:"
794790
791 #~ msgid "Account"
792 #~ msgstr "Účet"
793
795794 #~| msgid "The password reset token was invalid."
796795 #~ msgid "The provided password is not valid."
797796 #~ msgstr "Použité heslo není platné."
66 msgstr ""
77 "Project-Id-Version: \n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2018-09-03 16:04+0200\n"
1111 "Last-Translator: b'Tuk Bredsdorff <tukodeb@gmail.com>'\n"
1212 "Language-Team: \n"
329329 msgid "This account is inactive."
330330 msgstr "Denne konto er inaktiv."
331331
332 #: templates/account/email.html:5
333 msgid "Account"
334 msgstr "Konto"
335
336 #: templates/account/email.html:8
332 #: templates/account/email.html:5 templates/account/email.html:8
337333 msgid "E-mail Addresses"
338334 msgstr "E-mail adresser"
339335
791787 msgstr ""
792788 "Du er ved at bruge din %(provider_name)s -konto til at logge ind i\n"
793789 "%(site_name)s. Som et sidste skridt, udfyld venligst denne formular:"
790
791 #~ msgid "Account"
792 #~ msgstr "Konto"
77 msgstr ""
88 "Project-Id-Version: django-allauth\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: 2019-08-07 12:13+0200\n"
1212 "Last-Translator: Jannis Vajen <jvajen@gmail.com>\n"
1313 "Language-Team: German (http://www.transifex.com/projects/p/django-allauth/"
333333 msgid "This account is inactive."
334334 msgstr "Dieses Konto ist inaktiv."
335335
336 #: templates/account/email.html:5
337 msgid "Account"
338 msgstr "Konto"
339
340 #: templates/account/email.html:8
336 #: templates/account/email.html:5 templates/account/email.html:8
341337 msgid "E-mail Addresses"
342338 msgstr "E-Mail-Adressen"
343339
805801 "%(site_name)s anzumelden. Zum Abschluss bitte das folgende Formular "
806802 "ausfüllen:"
807803
804 #~ msgid "Account"
805 #~ msgstr "Konto"
806
808807 #~ msgid "The login and/or password you specified are not correct."
809808 #~ msgstr "Die Anmeldedaten sind leider falsch."
810809
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: 2014-08-12 00:29+0200\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
335335 msgid "This account is inactive."
336336 msgstr "Αυτός ο λογαριασμός είναι ανενεργός."
337337
338 #: templates/account/email.html:5
339 msgid "Account"
340 msgstr "Λογαριασμός"
341
342 #: templates/account/email.html:8
338 #: templates/account/email.html:5 templates/account/email.html:8
343339 msgid "E-mail Addresses"
344340 msgstr "Διεύθυνση e-mail"
345341
810806 "Πρόκειται να χρησιμοποιήσετε τον %(provider_name)s λογαριασμό σας για να "
811807 "συνδεθείτε στην σελίδα\n"
812808 "%(site_name)s. Ως τελικό βήμα, παρακαλούμε συμπληρώστε την παρακάτω φόρμα:"
809
810 #~ msgid "Account"
811 #~ msgstr "Λογαριασμός"
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
326326 msgid "This account is inactive."
327327 msgstr ""
328328
329 #: templates/account/email.html:5
330 msgid "Account"
331 msgstr ""
332
333 #: templates/account/email.html:8
329 #: templates/account/email.html:5 templates/account/email.html:8
334330 msgid "E-mail Addresses"
335331 msgstr ""
336332
66 msgstr ""
77 "Project-Id-Version: django-allauth\n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2018-02-14 17:46-0600\n"
1111 "Last-Translator: Jannis Š\n"
1212 "Language-Team: Spanish (http://www.transifex.com/projects/p/django-allauth/"
333333 msgid "This account is inactive."
334334 msgstr "Esta cuenta está desactivada."
335335
336 #: templates/account/email.html:5
337 msgid "Account"
338 msgstr "Cuenta"
339
340 #: templates/account/email.html:8
336 #: templates/account/email.html:5 templates/account/email.html:8
341337 msgid "E-mail Addresses"
342338 msgstr "Direcciones de correo electrónico"
343339
779775 "accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s"
780776 "\">sign in</a>."
781777 msgstr ""
782 "Has decidido cancelar el inicio de sesión a nuestro sitio usando las "
783 "siguientes cuentas. Si esto fue un error, <a href=\"%(login_url)s\">inicie "
784 "sesión</a>."
778 "Has decidido cancelar el inicio de sesión a nuestro sitio usando una de tus "
779 "cuentas. Si esto fue un error, <a href=\"%(login_url)s\">inicie sesión</a>."
785780
786781 #: templates/socialaccount/messages/account_connected.txt:2
787782 msgid "The social account has been connected."
803798 msgstr ""
804799 "Estas a punto de utilizar tu cuenta %(provider_name)s para acceder a "
805800 "%(site_name)s. Como paso final, por favor completa el siguiente formulario:"
801
802 #~ msgid "Account"
803 #~ msgstr "Cuenta"
806804
807805 #~ msgid "The login and/or password you specified are not correct."
808806 #~ msgstr ""
66 msgstr ""
77 "Project-Id-Version: django-allauth\n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2018-08-29 08:16+0200\n"
1111 "Last-Translator: Eneko Illarramendi <eneko@illarra.com>\n"
1212 "Language-Team: Basque <translate@tropela.eus>\n"
331331 msgid "This account is inactive."
332332 msgstr "Kontu hau ez dago aktiboa."
333333
334 #: templates/account/email.html:5
335 msgid "Account"
336 msgstr "Kontua"
337
338 #: templates/account/email.html:8
334 #: templates/account/email.html:5 templates/account/email.html:8
339335 msgid "E-mail Addresses"
340336 msgstr "Helbide elektronikoak"
341337
800796 "Zure %(provider_name)s kontua erabiltzear zaude %(site_name)s\n"
801797 "webgunean saioa hasteko. Azken pausu bezala, mesedez osa ezazu\n"
802798 "formulario hau:"
799
800 #~ msgid "Account"
801 #~ msgstr "Kontua"
55 msgstr ""
66 "Project-Id-Version: \n"
77 "Report-Msgid-Bugs-To: \n"
8 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
8 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
99 "PO-Revision-Date: 2015-09-14 12:40-0000\n"
1010 "Last-Translator: NARIMAN GHARIB <NARIMAN.GH@GMAIL.COM>\n"
1111 "Language-Team: \n"
338338 msgid "This account is inactive."
339339 msgstr "این حساب کاربری غیرفعال است."
340340
341 #: templates/account/email.html:5
342 msgid "Account"
343 msgstr "حساب کاربری"
344
345 #: templates/account/email.html:8
341 #: templates/account/email.html:5 templates/account/email.html:8
346342 msgid "E-mail Addresses"
347343 msgstr "آدرس‌های ایمیل"
348344
818814 "%(site_name)s. شوید. برای مراحل آخر لطفا در ادامه فرم‌های مورد نظر را تکمیل "
819815 "فرمایید."
820816
817 #~ msgid "Account"
818 #~ msgstr "حساب کاربری"
819
821820 #~ msgid "The login and/or password you specified are not correct."
822821 #~ msgstr "نام کاربری یا رمز عبور صحیح نمی‌باشد."
823822
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: 2015-08-13 15:17+0300\n"
1212 "Last-Translator: Anonymous User <seppo.erviala@iki.fi>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
337337 msgid "This account is inactive."
338338 msgstr "Tämä tili ei ole käytössä."
339339
340 #: templates/account/email.html:5
341 msgid "Account"
342 msgstr "Tili"
343
344 #: templates/account/email.html:8
340 #: templates/account/email.html:5 templates/account/email.html:8
345341 msgid "E-mail Addresses"
346342 msgstr "Sähköpostiosoitteet"
347343
812808 "Olet aikeissa käyttää %(provider_name)s-tiliäsi kirjautuaksesi palveluun\n"
813809 "%(site_name)s. Täytä vielä seuraava lomake:"
814810
811 #~ msgid "Account"
812 #~ msgstr "Tili"
813
815814 #~ msgid "The login and/or password you specified are not correct."
816815 #~ msgstr "Kirjautumistiedot eivät ole oikein."
817816
99 msgstr ""
1010 "Project-Id-Version: django-allauth\n"
1111 "Report-Msgid-Bugs-To: \n"
12 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
12 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1313 "PO-Revision-Date: 2019-08-12 15:14+0200\n"
1414 "Last-Translator: Gilou <contact+dev@gilouweb.com>\n"
1515 "Language-Team: français <>\n"
333333 msgid "This account is inactive."
334334 msgstr "Ce compte est inactif."
335335
336 #: templates/account/email.html:5
337 msgid "Account"
338 msgstr "Compte"
339
340 #: templates/account/email.html:8
336 #: templates/account/email.html:5 templates/account/email.html:8
341337 msgid "E-mail Addresses"
342338 msgstr "Adresses e-mail"
343339
405401 "To confirm this is correct, go to %(activate_url)s\n"
406402 msgstr ""
407403 "Bonjour, c'est %(site_name)s !\n"
408 "Vous recevez cet e-mail car l'utilisateur %(user_display)s l'a indiquée pour "
409 "se connecter à son compte.\n"
404 "Vous recevez cet e-mail car l'utilisateur %(user_display)s a indiqué votre "
405 "adresse pour se connecter à son compte.\n"
410406 "\n"
411407 "Pour confirmer que vous en êtes bien le propriétaire, allez à "
412408 "%(activate_url)s\n"
806802 "au site %(site_name)s. Merci de compléter le formulaire suivant pour "
807803 "confirmer la connexion."
808804
805 #~ msgid "Account"
806 #~ msgstr "Compte"
807
809808 #~ msgid "The login and/or password you specified are not correct."
810809 #~ msgstr "L'identifiant ou le mot de passe sont incorrects."
811810
66 msgstr ""
77 "Project-Id-Version: 0.1\n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2017-08-26 16:11+0300\n"
1111 "Last-Translator: Udi Oron <udioron@gmail.com>\n"
1212 "Language-Team: Hebrew\n"
329329 msgid "This account is inactive."
330330 msgstr "חשבון זה אינו פעיל."
331331
332 #: templates/account/email.html:5
333 msgid "Account"
334 msgstr "חשבון"
335
336 #: templates/account/email.html:8
332 #: templates/account/email.html:5 templates/account/email.html:8
337333 msgid "E-mail Addresses"
338334 msgstr "כתובות אימייל"
339335
780776 "אתה עומד להשתמש בחשבון %(provider_name)s שלך כדי\n"
781777 "להתחבר ל%(site_name)s. לסיום, אנא מלא את הטופס הבא:"
782778
779 #~ msgid "Account"
780 #~ msgstr "חשבון"
781
783782 #~ msgid "The login and/or password you specified are not correct."
784783 #~ msgstr "שם המשתמש ו/או הסיסמא אינם נכונים"
785784
99 msgstr ""
1010 "Project-Id-Version: PACKAGE VERSION\n"
1111 "Report-Msgid-Bugs-To: \n"
12 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
12 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1313 "PO-Revision-Date: 2014-08-12 00:31+0200\n"
1414 "Last-Translator: <goran.cetusic@gmail.com>\n"
1515 "Language-Team: Bojan Mihelac <bmihelac@mihelac.org>\n"
340340 msgid "This account is inactive."
341341 msgstr "Ovaj korisnički račun je neaktivan."
342342
343 #: templates/account/email.html:5
344 msgid "Account"
345 msgstr "Korisnički račun"
346
347 #: templates/account/email.html:8
343 #: templates/account/email.html:5 templates/account/email.html:8
348344 msgid "E-mail Addresses"
349345 msgstr "E-mail adrese"
350346
816812 "stranicu %(site_name)s. Kao posljednji korak, molimo vas ispunite sljedeći "
817813 "obrazac:"
818814
815 #~ msgid "Account"
816 #~ msgstr "Korisnički račun"
817
819818 #~ msgid "The login and/or password you specified are not correct."
820819 #~ msgstr "Korisničko ime i/ili zaporka nisu ispravni."
821820
66 msgstr ""
77 "Project-Id-Version: \n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2015-05-08 22:42+0100\n"
1111 "Last-Translator: Tamás Makó <tom@greenplug.hu>\n"
1212 "Language-Team: \n"
334334 msgid "This account is inactive."
335335 msgstr "A felhasználó nem aktív."
336336
337 #: templates/account/email.html:5
338 msgid "Account"
339 msgstr "Felhasználó"
340
341 #: templates/account/email.html:8
337 #: templates/account/email.html:5 templates/account/email.html:8
342338 msgid "E-mail Addresses"
343339 msgstr "Email címek"
344340
803799 "bejelentkezés\n"
804800 "Utolsó lépésként kérlek töltsd ki az alábbi adatlapot:"
805801
802 #~ msgid "Account"
803 #~ msgstr "Felhasználó"
804
806805 #~ msgid "The login and/or password you specified are not correct."
807806 #~ msgstr "A megadott bejelentkezési azonosító vagy a jelszó hibás."
808807
99 msgstr ""
1010 "Project-Id-Version: django-allauth\n"
1111 "Report-Msgid-Bugs-To: \n"
12 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
12 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1313 "PO-Revision-Date: 2019-09-30 00:03+0200\n"
1414 "Last-Translator: Sandro <sandro@e-den.it>\n"
1515 "Language: it\n"
331331 msgid "This account is inactive."
332332 msgstr "Questo account non è attivo."
333333
334 #: templates/account/email.html:5
335 msgid "Account"
336 msgstr "Account"
337
338 #: templates/account/email.html:8
334 #: templates/account/email.html:5 templates/account/email.html:8
339335 msgid "E-mail Addresses"
340336 msgstr "Indirizzi e-mail"
341337
796792 "%(site_name)s. Come ultima operazione ti chiediamo di riempire il form qui "
797793 "sotto:"
798794
795 #~ msgid "Account"
796 #~ msgstr "Account"
797
799798 #~ msgid "The login and/or password you specified are not correct."
800799 #~ msgstr "Il login e/o la password che hai usato non sono corretti."
801800
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: 2014-08-12 00:32+0200\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
337337 msgid "This account is inactive."
338338 msgstr "このアカウントは無効です。"
339339
340 #: templates/account/email.html:5
341 msgid "Account"
342 msgstr "アカウント"
343
344 #: templates/account/email.html:8
340 #: templates/account/email.html:5 templates/account/email.html:8
345341 msgid "E-mail Addresses"
346342 msgstr "メールアドレス"
347343
803799 "す。\n"
804800 "ユーザー登録のために、以下のフォームに記入してください。"
805801
802 #~ msgid "Account"
803 #~ msgstr "アカウント"
804
806805 #~ msgid "The login and/or password you specified are not correct."
807806 #~ msgstr "入力されたログインIDもしくはパスワードが正しくありません。"
808807
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
329329 msgid "This account is inactive."
330330 msgstr "해당 계정은 비활성화된 상태입니다."
331331
332 #: templates/account/email.html:5
333 msgid "Account"
334 msgstr "계정"
335
336 #: templates/account/email.html:8
332 #: templates/account/email.html:5 templates/account/email.html:8
337333 msgid "E-mail Addresses"
338334 msgstr "이메일 계정"
339335
777773 "%(provider_name)s 의 계정을 이용하여 %(site_name)s 으로 로그인하려 합니다.\n"
778774 "마지막으로 다음 폼을 작성해주세요:"
779775
776 #~ msgid "Account"
777 #~ msgstr "계정"
778
780779 #~ msgid "The login and/or password you specified are not correct."
781780 #~ msgstr "로그인 또는 비밀번호가 올바르지 않습니다."
782781
66 msgstr ""
77 "Project-Id-Version: PACKAGE VERSION\n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2016-07-20 22:24+0600\n"
1111 "Last-Translator: Murat Jumashev <jumasheff at gmail dot com>\n"
1212 "Language-Team: LANGUAGE <LL@li.org>\n"
334334 msgid "This account is inactive."
335335 msgstr "Бул эсеп активдүү эмес."
336336
337 #: templates/account/email.html:5
338 msgid "Account"
339 msgstr "Эсеп"
340
341 #: templates/account/email.html:8
337 #: templates/account/email.html:5 templates/account/email.html:8
342338 msgid "E-mail Addresses"
343339 msgstr "Эмейл даректер"
344340
811807 "сайтына кирейин деп турасыз. Акыркы кадам катары кийинки калыпты\n"
812808 "толтуруп коюңузду суранабыз :"
813809
810 #~ msgid "Account"
811 #~ msgstr "Эсеп"
812
814813 #~ msgid "The login and/or password you specified are not correct."
815814 #~ msgstr "Сиз берген логин жана/же купуя туура эмес."
816815
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
338338 msgid "This account is inactive."
339339 msgstr "Ši paskyra neaktyvi."
340340
341 #: templates/account/email.html:5
342 msgid "Account"
343 msgstr "Paskyra"
344
345 #: templates/account/email.html:8
341 #: templates/account/email.html:5 templates/account/email.html:8
346342 msgid "E-mail Addresses"
347343 msgstr "El. pašto adresai"
348344
820816 "Jūs beveik prisijungėte prie %(site_name)s naudodami %(provider_name)s\n"
821817 "paskyrą. Liko paskutinis žingsnis, užpildyti sekančią formą:"
822818
819 #~ msgid "Account"
820 #~ msgstr "Paskyra"
821
823822 #~ msgid "The login and/or password you specified are not correct."
824823 #~ msgstr "Pateiktas prisijungimo vardas ir/arba slaptažodis yra neteisingi."
825824
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
338338 msgid "This account is inactive."
339339 msgstr "Šis konts ir neaktīvs."
340340
341 #: templates/account/email.html:5
342 msgid "Account"
343 msgstr "Konts"
344
345 #: templates/account/email.html:8
341 #: templates/account/email.html:5 templates/account/email.html:8
346342 msgid "E-mail Addresses"
347343 msgstr "E-pasta adreses"
348344
818814 "Jūs izmantosiet savu %(provider_name)s kontu, lai ieietu\n"
819815 "%(site_name)s. Kā pēdējo soli, lūdzu aizpildiet sekojošo formu:"
820816
817 #~ msgid "Account"
818 #~ msgstr "Konts"
819
821820 #~ msgid "The login and/or password you specified are not correct."
822821 #~ msgstr "Nepareiza pieteikšanās informācija un/vai parole."
823822
77 msgstr ""
88 "Project-Id-Version: django-allauth\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: 2016-07-25 15:18+0200\n"
1212 "Last-Translator: pennersr <raymond.penners@intenct.nl>\n"
1313 "Language-Team: Dutch (http://www.transifex.com/projects/p/django-allauth/"
336336 msgid "This account is inactive."
337337 msgstr "Dit account is niet actief"
338338
339 #: templates/account/email.html:5
340 msgid "Account"
341 msgstr "Account"
342
343 #: templates/account/email.html:8
339 #: templates/account/email.html:5 templates/account/email.html:8
344340 msgid "E-mail Addresses"
345341 msgstr "E-mailadressen"
346342
814810 "Om bij %(site_name)s in te kunnen loggen via %(provider_name)s hebben we de "
815811 "volgende gegevens nodig:"
816812
813 #~ msgid "Account"
814 #~ msgstr "Account"
815
817816 #~ msgid "The login and/or password you specified are not correct."
818817 #~ msgstr "Je login en wachtwoord komen niet overeen."
819818
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: 2019-12-18 18:56+0100\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
328328 msgid "This account is inactive."
329329 msgstr "Denne kontoen er inaktiv."
330330
331 #: templates/account/email.html:5
332 msgid "Account"
333 msgstr "Konto"
334
335 #: templates/account/email.html:8
331 #: templates/account/email.html:5 templates/account/email.html:8
336332 msgid "E-mail Addresses"
337333 msgstr "E-postadresser"
338334
494490 "for a %(site_name)s account and sign in below:"
495491 msgstr ""
496492 "Vennligst logg in med en\n"
497 "av dine eksisterende tredjeparts kontoer på %(site_name)s. Eller, <a href=\"%(signup_url)s\">registrer deg</a>\n"
493 "av dine eksisterende tredjeparts kontoer på %(site_name)s. Eller, <a href="
494 "\"%(signup_url)s\">registrer deg</a>\n"
498495 "og logg inn nedenfor:"
499496
500497 #: templates/account/login.html:25
789786 msgstr ""
790787 "Du er på vei til å bruke din %(provider_name)s konto for å logge inn på\n"
791788 "%(site_name)s. Som et siste steg, vennligst fullfør følgende skjema:"
789
790 #~ msgid "Account"
791 #~ msgstr "Konto"
55 msgstr ""
66 "Project-Id-Version: \n"
77 "Report-Msgid-Bugs-To: \n"
8 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
8 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
99 "PO-Revision-Date: 2018-10-04 02:18+0200\n"
1010 "Last-Translator: Adam Dobrawy <naczelnik@jawnosc.tk>\n"
1111 "Language-Team: \n"
327327 msgid "This account is inactive."
328328 msgstr "To konto jest nieaktywne."
329329
330 #: templates/account/email.html:5
331 msgid "Account"
332 msgstr "Konto"
333
334 #: templates/account/email.html:8
330 #: templates/account/email.html:5 templates/account/email.html:8
335331 msgid "E-mail Addresses"
336332 msgstr "Adresy e-mail"
337333
563559
564560 #: templates/account/messages/primary_email_set.txt:2
565561 msgid "Primary e-mail address set."
566 msgstr "Ustaw podstawowy adres e-mail."
562 msgstr "Podstawowy adres e-mail został ustawiony."
567563
568564 #: templates/account/messages/unverified_primary_email.txt:2
569565 msgid "Your primary e-mail address must be verified."
793789 "Masz zamiar użyć konta %(provider_name)s do zalogowania się w \n"
794790 "%(site_name)s. Jako ostatni krok, proszę wypełnij formularz:"
795791
792 #~ msgid "Account"
793 #~ msgstr "Konto"
794
796795 #~ msgid "The login and/or password you specified are not correct."
797796 #~ msgstr "Login i/lub hasło, które podałeś, są niepoprawne."
798797
1010 msgstr ""
1111 "Project-Id-Version: django-allauth\n"
1212 "Report-Msgid-Bugs-To: \n"
13 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
13 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1414 "PO-Revision-Date: 2014-12-01 01:20+0000\n"
1515 "Last-Translator: cacarrara <caiocarrara@gmail.com>\n"
1616 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
339339 msgid "This account is inactive."
340340 msgstr "A sua conta está inativa."
341341
342 #: templates/account/email.html:5
343 msgid "Account"
344 msgstr "Conta"
345
346 #: templates/account/email.html:8
342 #: templates/account/email.html:5 templates/account/email.html:8
347343 msgid "E-mail Addresses"
348344 msgstr "Endereços de E-mail"
349345
808804 "Você está prestes a usar sua conta do %(provider_name)s para acessar o\n"
809805 "%(site_name)s. Como etapa final, por favor preencha o seguinte formulário:"
810806
807 #~ msgid "Account"
808 #~ msgstr "Conta"
809
811810 #~ msgid "The login and/or password you specified are not correct."
812811 #~ msgstr "O nome de usuário e/ou senha especificados não estão corretos."
813812
66 msgstr ""
77 "Project-Id-Version: django-allauth\n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2019-02-26 19:48+0100\n"
1111 "Last-Translator: Jannis Š\n"
1212 "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/"
331331 msgid "This account is inactive."
332332 msgstr "A sua conta foi desactivada."
333333
334 #: templates/account/email.html:5
335 msgid "Account"
336 msgstr "Conta"
337
338 #: templates/account/email.html:8
334 #: templates/account/email.html:5 templates/account/email.html:8
339335 msgid "E-mail Addresses"
340336 msgstr "Endereços de E-mail"
341337
791787 "Está prestes a usar a sua conta no %(provider_name)s para entrar no "
792788 "%(site_name)s. Como um passo final, por favor complete o seguinte formulário:"
793789
790 #~ msgid "Account"
791 #~ msgstr "Conta"
792
794793 #~ msgid "The login and/or password you specified are not correct."
795794 #~ msgstr "O login e/ou password que especificou não estão corretos"
796795
66 msgstr ""
77 "Project-Id-Version: \n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2017-04-05 22:48+0300\n"
1111 "Last-Translator: \n"
1212 "Language-Team: \n"
328328 msgid "This account is inactive."
329329 msgstr "Этот аккаунт неактивен."
330330
331 #: templates/account/email.html:5
332 msgid "Account"
333 msgstr "Аккаунт"
334
335 #: templates/account/email.html:8
331 #: templates/account/email.html:5 templates/account/email.html:8
336332 msgid "E-mail Addresses"
337333 msgstr "E-mail адреса"
338334
785781 "Вы используете %(provider_name)s для авторизации на \n"
786782 "%(site_name)s. Чтобы завершить, заполните следующую форму:"
787783
784 #~ msgid "Account"
785 #~ msgstr "Аккаунт"
786
788787 #~ msgid "The login and/or password you specified are not correct."
789788 #~ msgstr "Логин и/или пароль не верны."
790789
66 msgstr ""
77 "Project-Id-Version: \n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2017-04-26 12:48+0200\n"
1111 "Last-Translator: Tomas Babej <tomasbabej@gmail.com>\n"
1212 "Language-Team: \n"
332332 msgid "This account is inactive."
333333 msgstr "Tento účet je neaktívny."
334334
335 #: templates/account/email.html:5
336 msgid "Account"
337 msgstr "Účet"
338
339 #: templates/account/email.html:8
335 #: templates/account/email.html:5 templates/account/email.html:8
340336 msgid "E-mail Addresses"
341337 msgstr "E-mailová adresa"
342338
806802 "Chystáte sa použiť váš %(provider_name)s účet na prihlásenie do\n"
807803 "%(site_name)s. Ako posledný krok vyplňte nasledujúci formulár:"
808804
805 #~ msgid "Account"
806 #~ msgstr "Účet"
807
809808 #~ msgid "The login and/or password you specified are not correct."
810809 #~ msgstr "Uvedený login alebo heslo nie je správne."
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: Nikola Vulovic <nivukiki@gmail.com>\n"
1313 "Language-Team: NONE\n"
331331 msgid "This account is inactive."
332332 msgstr "Овај налог је неактиван."
333333
334 #: templates/account/email.html:5
335 msgid "Account"
336 msgstr "Рачун"
337
338 #: templates/account/email.html:8
334 #: templates/account/email.html:5 templates/account/email.html:8
339335 msgid "E-mail Addresses"
340336 msgstr "Адресе е-поште"
341337
800796 msgstr ""
801797 "Управо користите свој рачун код %(provider_name)s да бисте се пријавили на\n"
802798 "%(site_name)s. Као последњи корак, молимо попуните следећи образац:"
799
800 #~ msgid "Account"
801 #~ msgstr "Рачун"
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: Nikola Vulovic <nivukiki@gmail.com>\n"
1313 "Language-Team: NONE\n"
331331 msgid "This account is inactive."
332332 msgstr "Ovaj nalog je neaktivan."
333333
334 #: templates/account/email.html:5
335 msgid "Account"
336 msgstr "Račun"
337
338 #: templates/account/email.html:8
334 #: templates/account/email.html:5 templates/account/email.html:8
339335 msgid "E-mail Addresses"
340336 msgstr "Adrese e-pošte"
341337
800796 msgstr ""
801797 "Upravo koristite svoj račun kod %(provider_name)s da biste se prijavili na\n"
802798 "%(site_name)s. Kao poslednji korak, molimo popunite sledeći obrazac:"
799
800 #~ msgid "Account"
801 #~ msgstr "Račun"
66 msgstr ""
77 "Project-Id-Version: django-allauth\n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2014-08-12 00:35+0200\n"
1111 "Last-Translator: Jannis Š\n"
1212 "Language-Team: Swedish (http://www.transifex.com/projects/p/django-allauth/"
339339 msgid "This account is inactive."
340340 msgstr "Detta konto är inaktivt."
341341
342 #: templates/account/email.html:5
343 msgid "Account"
344 msgstr "Konto"
345
346 #: templates/account/email.html:8
342 #: templates/account/email.html:5 templates/account/email.html:8
347343 msgid "E-mail Addresses"
348344 msgstr "Epost-adresser"
349345
807803 "Du håller på att logga in via ditt konto på %(provider_name)s på \n"
808804 "%(site_name)s. Fyll i följande formulär för att slutföra inloggningen:"
809805
806 #~ msgid "Account"
807 #~ msgstr "Konto"
808
810809 #~ msgid "The login and/or password you specified are not correct."
811810 #~ msgstr "Inloggningen och/eller lösenordet är felaktigt."
812811
99 msgstr ""
1010 "Project-Id-Version: django-allauth\n"
1111 "Report-Msgid-Bugs-To: \n"
12 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
12 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1313 "PO-Revision-Date: 2015-06-26 13:09+0700\n"
1414 "Last-Translator: Nattaphoom Chaipreecha <attomos@gmail.com>\n"
1515 "Language-Team: Thai <LL@li.org>\n"
335335 msgid "This account is inactive."
336336 msgstr "บัญชีนี้ไม่มีการใช้งาน"
337337
338 #: templates/account/email.html:5
339 msgid "Account"
340 msgstr "บัญชี"
341
342 #: templates/account/email.html:8
338 #: templates/account/email.html:5 templates/account/email.html:8
343339 msgid "E-mail Addresses"
344340 msgstr "อีเมล"
345341
802798 "คุณกำลังจะทำการใช้บัญชี %(provider_name)s ของคุณ ในการเข้าสู่ระบบของ\n"
803799 "%(site_name)s. ในขั้นตอนสุดท้าย กรุณากรอกฟอร์มข้างล่าง:"
804800
801 #~ msgid "Account"
802 #~ msgstr "บัญชี"
803
805804 #~ msgid "The login and/or password you specified are not correct."
806805 #~ msgstr "การลงชื่เข้าใช้และ/หรือรหัสผ่านที่ระบุมาไม่ถูกต้อง"
807806
77 msgstr ""
88 "Project-Id-Version: django-allauth\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: 2014-08-12 00:35+0200\n"
1212 "Last-Translator: Jannis Š\n"
1313 "Language-Team: Turkish (http://www.transifex.com/projects/p/django-allauth/"
342342 msgid "This account is inactive."
343343 msgstr "Bu hesap etkin değil."
344344
345 #: templates/account/email.html:5
346 msgid "Account"
347 msgstr "Hesap"
348
349 #: templates/account/email.html:8
345 #: templates/account/email.html:5 templates/account/email.html:8
350346 msgid "E-mail Addresses"
351347 msgstr "E-posta Adresleri"
352348
810806 "%(site_name)s sitesine giriş yapmak için %(provider_name)s hesabınızı "
811807 "kullanmak üzeresiniz. Son bir adım olarak, lütfen şu formu doldurun:"
812808
809 #~ msgid "Account"
810 #~ msgstr "Hesap"
811
813812 #~ msgid "The login and/or password you specified are not correct."
814813 #~ msgstr "Girdiğiniz giriş bilgisi ve/veya parola doğru değil."
815814
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: 2014-08-12 00:36+0200\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
333333 msgid "This account is inactive."
334334 msgstr "Даний акаунт неактивний"
335335
336 #: templates/account/email.html:5
337 msgid "Account"
338 msgstr "Акаунт"
339
340 #: templates/account/email.html:8
336 #: templates/account/email.html:5 templates/account/email.html:8
341337 msgid "E-mail Addresses"
342338 msgstr "E-mail адреса"
343339
816812 "Ви використовуєте Ваш %(provider_name)s акаунт для авторизації на\n"
817813 "%(site_name)s. Для завершення, будь ласка, заповніть наступну форму:"
818814
815 #~ msgid "Account"
816 #~ msgstr "Акаунт"
817
819818 #~ msgid "The login and/or password you specified are not correct."
820819 #~ msgstr "Введений login і/або пароль є некоректними."
821820
66 msgstr ""
77 "Project-Id-Version: django-allauth\n"
88 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
9 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1010 "PO-Revision-Date: 2014-08-12 00:36+0200\n"
1111 "Last-Translator: jresins <jresins@gmail.com>\n"
1212 "Language-Team: LANGUAGE <LL@li.org>\n"
337337 msgid "This account is inactive."
338338 msgstr "此账号未激活"
339339
340 #: templates/account/email.html:5
341 msgid "Account"
342 msgstr "账号"
343
344 #: templates/account/email.html:8
340 #: templates/account/email.html:5 templates/account/email.html:8
345341 msgid "E-mail Addresses"
346342 msgstr "E-mail地址"
347343
791787 msgstr ""
792788 "您将使用您的%(provider_name)s账号登录\n"
793789 "%(site_name)s。作为最后一步,请完成以下表单:"
790
791 #~ msgid "Account"
792 #~ msgstr "账号"
794793
795794 #~ msgid "The login and/or password you specified are not correct."
796795 #~ msgstr "您提供的账号或密码错误"
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
339339 msgid "This account is inactive."
340340 msgstr "此账号未激活"
341341
342 #: templates/account/email.html:5
343 msgid "Account"
344 msgstr "账号"
345
346 #: templates/account/email.html:8
342 #: templates/account/email.html:5 templates/account/email.html:8
347343 msgid "E-mail Addresses"
348344 msgstr "E-mail地址"
349345
792788 msgstr ""
793789 "您将使用您的%(provider_name)s账号登录\n"
794790 "%(site_name)s。作为最后一步,请完成以下表单:"
791
792 #~ msgid "Account"
793 #~ msgstr "账号"
795794
796795 #~ msgid "The login and/or password you specified are not correct."
797796 #~ msgstr "您提供的账号或密码错误"
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
10 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
335335 msgid "This account is inactive."
336336 msgstr "這個帳號未啟用"
337337
338 #: templates/account/email.html:5
339 msgid "Account"
340 msgstr "帳號"
341
342 #: templates/account/email.html:8
338 #: templates/account/email.html:5 templates/account/email.html:8
343339 msgid "E-mail Addresses"
344340 msgstr "電子郵件地址"
345341
792788 msgstr ""
793789 "您將使用 %(provider_name)s 這個帳號登入\n"
794790 " %(site_name)s 這個網站。最後一步,請填完下列表單:"
791
792 #~ msgid "Account"
793 #~ msgstr "帳號"
795794
796795 #~ msgid "The login and/or password you specified are not correct."
797796 #~ msgstr "您提供的帳號或密碼不正確。"
55 msgstr ""
66 "Project-Id-Version: django-allauth\n"
77 "Report-Msgid-Bugs-To: \n"
8 "POT-Creation-Date: 2019-12-18 11:53-0600\n"
8 "POT-Creation-Date: 2020-05-24 13:46-0500\n"
99 "PO-Revision-Date: 2014-08-12 00:36+0200\n"
1010 "Last-Translator: jresins <jresins@gmail.com>\n"
1111 "Language-Team: Chinese (Traditional)\n"
332332 msgid "This account is inactive."
333333 msgstr "這個帳號未啟用"
334334
335 #: templates/account/email.html:5
336 msgid "Account"
337 msgstr "帳號"
338
339 #: templates/account/email.html:8
335 #: templates/account/email.html:5 templates/account/email.html:8
340336 msgid "E-mail Addresses"
341337 msgstr "電子郵件地址"
342338
789785 msgstr ""
790786 "您將使用 %(provider_name)s 這個帳號登入\n"
791787 " %(site_name)s 這個網站。最後一步,請填完下列表單:"
788
789 #~ msgid "Account"
790 #~ msgstr "帳號"
792791
793792 #~ msgid "The login and/or password you specified are not correct."
794793 #~ msgstr "您提供的帳號或密碼不正確。"
99 """Simple JSON field that stores python structures as JSON strings
1010 on database.
1111 """
12 if django.VERSION < (2, 0):
12 if django.VERSION < (3, 0):
1313 def from_db_value(self, value, expression, connection, context):
1414 return self.to_python(value)
1515 else:
1212 provider_id = AmazonProvider.id
1313 access_token_url = 'https://api.amazon.com/auth/o2/token'
1414 authorize_url = 'http://www.amazon.com/ap/oa'
15 profile_url = 'https://www.amazon.com/ap/user/profile'
15 profile_url = 'https://api.amazon.com/user/profile'
1616 supports_state = False
1717 redirect_uri_protocol = 'https'
1818
99
1010 class DiscordOAuth2Adapter(OAuth2Adapter):
1111 provider_id = DiscordProvider.id
12 access_token_url = 'https://discordapp.com/api/oauth2/token'
13 authorize_url = 'https://discordapp.com/api/oauth2/authorize'
14 profile_url = 'https://discordapp.com/api/users/@me'
12 access_token_url = 'https://discord.com/api/oauth2/token'
13 authorize_url = 'https://discord.com/api/oauth2/authorize'
14 profile_url = 'https://discord.com/api/users/@me'
1515
1616 def complete_login(self, request, app, token, **kwargs):
1717 headers = {
0 from allauth.socialaccount.providers.base import ProviderAccount
1 from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider
2
3
4 class EdxAccount(ProviderAccount):
5 def get_profile_url(self):
6 if self.account.extra_data['profile_image']['has_image']:
7 return self.account.extra_data['image_url_full']
8
9
10 class EdxProvider(OAuth2Provider):
11 id = 'edx'
12 name = 'Edx'
13 account_class = EdxAccount
14
15 def get_default_scope(self):
16 return ['profile']
17
18 def extract_uid(self, data):
19 """Extract uid ('id') and ensure it's a str."""
20 return str(data['username'])
21
22 def extract_common_fields(self, data):
23 return dict(
24 email=data.get('email'),
25 username=data.get('username'),
26 name=data.get('name'),
27 user_id=data.get('user_id'),
28 )
29
30
31 provider_classes = [EdxProvider]
0 from allauth.socialaccount.tests import OAuth2TestsMixin
1 from allauth.tests import MockedResponse, TestCase
2
3 from .provider import EdxProvider
4
5
6 class EdxTests(OAuth2TestsMixin, TestCase):
7 provider_id = EdxProvider.id
8
9 def get_mocked_response(self):
10 print(self)
11 return MockedResponse(200, """{
12 "username":"krzysztof",
13 "bio":null,
14 "requires_parental_consent":true,
15 "language_proficiencies":[
16
17 ],
18 "name":"Krzysztof Hoffmann",
19 "country":null,
20 "social_links":[
21
22 ],
23 "is_active":true,
24 "profile_image":{
25 "image_url_small":"http://draft.navoica.pl/static/images/profiles/default_30.png",
26 "image_url_full":"http://draft.navoica.pl/static/images/profiles/default_500.png",
27 "image_url_large":"http://draft.navoica.pl/static/images/profiles/default_120.png",
28 "image_url_medium":"http://draft.navoica.pl/static/images/profiles/default_50.png",
29 "has_image":false
30 },
31 "extended_profile":[
32
33 ],
34 "year_of_birth":null,
35 "level_of_education":null,
36 "goals":"",
37 "accomplishments_shared":false,
38 "gender":null,
39 "date_joined":"2019-09-21T07:48:31Z",
40 "mailing_address":"",
41 "email":"krzysztof.hoffmann@opi.org.pl",
42 "account_privacy":"private"
43 }""")
0 from allauth.socialaccount.providers.oauth2.urls import default_urlpatterns
1
2 from .provider import EdxProvider
3
4
5 urlpatterns = default_urlpatterns(EdxProvider)
0 import requests
1
2 from allauth.socialaccount import app_settings
3 from allauth.socialaccount.providers.oauth2.views import (
4 OAuth2Adapter,
5 OAuth2CallbackView,
6 OAuth2LoginView,
7 )
8
9 from .provider import EdxProvider
10
11
12 class EdxOAuth2Adapter(OAuth2Adapter):
13 provider_id = EdxProvider.id
14 provider_default_url = 'https://edx.org'
15
16 settings = app_settings.PROVIDERS.get(provider_id, {})
17 provider_base_url = settings.get('EDX_URL', provider_default_url)
18
19 access_token_url = '{0}/oauth2/access_token'.format(provider_base_url)
20 authorize_url = '{0}/oauth2/authorize/'.format(provider_base_url)
21 profile_url = '{0}/api/user/v1/me'.format(provider_base_url)
22 account_url = '{0}/api/user/v1/accounts/{1}'
23 supports_state = False
24 redirect_uri_protocol = 'https'
25
26 def complete_login(self, request, app, token, **kwargs):
27 response = requests.get(
28 self.profile_url,
29 params={'access_token': token})
30 extra_data = response.json()
31
32 if extra_data.get('email', None) is None:
33 response = requests.get(
34 self.account_url.format(self.provider_base_url,
35 extra_data['username']),
36 params={'access_token': token})
37 extra_data = response.json()
38
39 return self.get_provider().sociallogin_from_response(
40 request,
41 extra_data)
42
43
44 oauth2_login = OAuth2LoginView.adapter_view(EdxOAuth2Adapter)
45 oauth2_callback = OAuth2CallbackView.adapter_view(EdxOAuth2Adapter)
2323
2424
2525 GRAPH_API_VERSION = getattr(settings, 'SOCIALACCOUNT_PROVIDERS', {}).get(
26 'facebook', {}).get('VERSION', 'v2.12')
26 'facebook', {}).get('VERSION', 'v7.0')
2727 GRAPH_API_URL = 'https://graph.facebook.com/' + GRAPH_API_VERSION
2828
2929 NONCE_SESSION_KEY = 'allauth_facebook_nonce'
7171 js = "allauth.facebook.login(%s, %s, %s, %s)" % (
7272 next, action, process, scope)
7373 ret = "javascript:%s" % (urlquote(js),)
74 else:
75 assert method == 'oauth2'
74 elif method == 'oauth2':
7675 ret = super(FacebookProvider, self).get_login_url(request,
7776 **kwargs)
77 else:
78 raise RuntimeError('Invalid method specified: %s' % method)
7879 return ret
7980
8081 def _get_locale_callable(self):
8182 settings = self.get_settings()
82 f = settings.get('LOCALE_FUNC')
83 if f:
84 f = import_callable(f)
85 else:
86 f = get_default_locale_callable()
87 return f
83 func = settings.get('LOCALE_FUNC')
84 return import_callable(func) if func else get_default_locale_callable()
8885
8986 def get_locale_for_request(self, request):
9087 if not self._locale_callable_cache:
2525 emails_url = '{0}/user/emails'.format(api_url)
2626
2727 def complete_login(self, request, app, token, **kwargs):
28 params = {'access_token': token.token}
29 resp = requests.get(self.profile_url, params=params)
28 headers = {'Authorization': 'token {}'.format(token.token)}
29 resp = requests.get(self.profile_url, headers=headers)
3030 resp.raise_for_status()
3131 extra_data = resp.json()
3232 if app_settings.QUERY_EMAIL and not extra_data.get('email'):
33 extra_data['email'] = self.get_email(token)
33 extra_data['email'] = self.get_email(headers)
3434 return self.get_provider().sociallogin_from_response(
3535 request, extra_data
3636 )
3737
38 def get_email(self, token):
38 def get_email(self, headers):
3939 email = None
40 params = {'access_token': token.token}
41 resp = requests.get(self.emails_url, params=params)
40 resp = requests.get(self.emails_url, headers=headers)
4241 resp.raise_for_status()
4342 emails = resp.json()
4443 if resp.status_code == 200 and emails:
77
88 def get_profile_url(self):
99 return self.PROFILE_URL + self.account.extra_data.get('username')
10
11 def get_avatar_url(self):
12 return self.account.extra_data.get('profile_picture')
1310
1411 def to_str(self):
1512 dflt = super(InstagramAccount, self).to_str()
2219 account_class = InstagramAccount
2320
2421 def extract_extra_data(self, data):
25 return data.get('data', {})
22 return data
2623
2724 def get_default_scope(self):
2825 return ['basic']
2926
3027 def extract_uid(self, data):
31 return str(data['data']['id'])
28 return str(data['id'])
3229
3330 def extract_common_fields(self, data):
34 return dict(username=data['data'].get('username'),
35 name=data['data'].get('full_name'))
31 return dict(username=data.get('username'))
3632
3733
3834 provider_classes = [InstagramProvider]
99 def get_mocked_response(self):
1010 return MockedResponse(200, """
1111 {
12 "meta": {
13 "code": 200
14 },
15 "data": {
1612 "username": "georgewhewell",
1713 "bio": "",
1814 "website": "",
2521 "follows": 104
2622 },
2723 "id": "11428116"
28 }
2924 }""") # noqa
1212 provider_id = InstagramProvider.id
1313 access_token_url = 'https://api.instagram.com/oauth/access_token'
1414 authorize_url = 'https://api.instagram.com/oauth/authorize'
15 profile_url = 'https://api.instagram.com/v1/users/self'
15 profile_url = 'https://graph.instagram.com/me'
1616
1717 def complete_login(self, request, app, token, **kwargs):
1818 resp = requests.get(self.profile_url,
19 params={'access_token': token.token})
19 params={'access_token': token.token,
20 'fields': ['id', 'username']})
2021 resp.raise_for_status()
2122 extra_data = resp.json()
2223 return self.get_provider().sociallogin_from_response(request,
1717 def complete_login(self, request, app, token, **kwargs):
1818 headers = {'Authorization': 'Bearer {0}'.format(token.token)}
1919 resp = requests.get(self.profile_url, headers=headers)
20 resp.raise_for_status()
2021 extra_data = resp.json()
2122 return self.get_provider().sociallogin_from_response(request,
2223 extra_data)
0 # -*- coding: utf-8 -*-
1 from allauth.socialaccount.providers.base import ProviderAccount
2 from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider
3
4
5 class KeycloakAccount(ProviderAccount):
6
7 def get_avatar_url(self):
8 return self.account.extra_data.get('picture')
9
10 def to_str(self):
11 dflt = super(KeycloakAccount, self).to_str()
12 return self.account.extra_data.get('name', dflt)
13
14
15 class KeycloakProvider(OAuth2Provider):
16 id = 'keycloak'
17 name = 'Keycloak'
18 account_class = KeycloakAccount
19
20 def get_default_scope(self):
21 return ['openid', 'profile', 'email']
22
23 def extract_uid(self, data):
24 return str(data['id'])
25
26 def extract_common_fields(self, data):
27 return dict(
28 email=data.get('email'),
29 username=data.get('username'),
30 name=data.get('name'),
31 user_id=data.get('user_id'),
32 picture=data.get('picture'),
33 )
34
35
36 provider_classes = [KeycloakProvider]
0 # -*- coding: utf-8 -*-
1 from allauth.socialaccount.providers.keycloak.provider import KeycloakProvider
2 from allauth.socialaccount.tests import OAuth2TestsMixin
3 from allauth.tests import MockedResponse, TestCase
4
5
6 class KeycloakTests(OAuth2TestsMixin, TestCase):
7 provider_id = KeycloakProvider.id
8
9 def get_mocked_response(self):
10 return MockedResponse(200, """
11 {
12 "picture": "https://secure.gravatar.com/avatar/123",
13 "email": "mr.bob@your.Keycloak.server.example.com",
14 "id": 2,
15 "sub": 2,
16 "identities": [],
17 "name": "Mr Bob"
18 }
19 """)
0 # -*- coding: utf-8 -*-
1 from allauth.socialaccount.providers.keycloak.provider import KeycloakProvider
2 from allauth.socialaccount.providers.oauth2.urls import default_urlpatterns
3
4
5 urlpatterns = default_urlpatterns(KeycloakProvider)
0 # -*- coding: utf-8 -*-
1 import requests
2
3 from allauth.socialaccount import app_settings
4 from allauth.socialaccount.providers.keycloak.provider import KeycloakProvider
5 from allauth.socialaccount.providers.oauth2.views import (
6 OAuth2Adapter,
7 OAuth2CallbackView,
8 OAuth2LoginView,
9 )
10
11
12 class KeycloakOAuth2Adapter(OAuth2Adapter):
13 provider_id = KeycloakProvider.id
14 supports_state = True
15
16 settings = app_settings.PROVIDERS.get(provider_id, {})
17 provider_base_url = '{0}/realms/{1}'.format(
18 settings.get("KEYCLOAK_URL"), settings.get("KEYCLOAK_REALM"))
19
20 access_token_url = '{0}/protocol/openid-connect/token' \
21 .format(provider_base_url)
22 authorize_url = '{0}/protocol/openid-connect/auth' \
23 .format(provider_base_url)
24 profile_url = '{0}/protocol/openid-connect/userinfo' \
25 .format(provider_base_url)
26
27 def complete_login(self, request, app, token, response):
28 response = requests.post(self.profile_url, headers={
29 'Authorization': 'Bearer ' + str(token)
30 })
31 response.raise_for_status()
32 extra_data = response.json()
33 extra_data['id'] = extra_data['sub']
34 del extra_data['sub']
35
36 return self.get_provider().sociallogin_from_response(
37 request,
38 extra_data
39 )
40
41
42 oauth2_login = OAuth2LoginView.adapter_view(KeycloakOAuth2Adapter)
43 oauth2_callback = OAuth2CallbackView.adapter_view(KeycloakOAuth2Adapter)
77
88 def to_str(self):
99 name = self.account.extra_data.get('displayName')
10 if name.strip() != '':
10 if name and name.strip() != '':
1111 return name
1212 return super(MicrosoftGraphAccount, self).to_str()
1313
0 from allauth.socialaccount.providers.base import ProviderAccount
1 from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider
2
3
4 class MixerAccount(ProviderAccount):
5 def _get_token(self):
6 return self.account.extra_data.get('channel', {}).get('token')
7
8 def get_profile_url(self):
9 return 'https://mixer.com/' + self._get_token()
10
11 def get_avatar_url(self):
12 return self.account.extra_data.get('avatarUrl')
13
14 def to_str(self):
15 return self._get_token()
16
17
18 class MixerProvider(OAuth2Provider):
19 id = 'mixer'
20 name = 'Mixer'
21 account_class = MixerAccount
22
23 def get_default_scope(self):
24 return ['user:details:self']
25
26 def extract_uid(self, data):
27 return str(data['id'])
28
29 def extract_common_fields(self, data):
30 return {
31 'username': data.get('username'),
32 'email': data.get('email'),
33 }
34
35
36 provider_classes = [MixerProvider]
0 from allauth.socialaccount.tests import OAuth2TestsMixin
1 from allauth.tests import MockedResponse, TestCase
2
3 from .provider import MixerProvider
4
5
6 class MixerTests(OAuth2TestsMixin, TestCase):
7 provider_id = MixerProvider.id
8
9 def get_mocked_response(self):
10 return MockedResponse(200, """
11 {
12 "avatarUrl": "https://uploads.mixer.com/avatar/2evg7cnb.jpg",
13 "id": 101052282,
14 "bio": "Ninja is the one of the world's most popular gamers.",
15 "channel": {
16 "id": 90571077,
17 "audience": "teen",
18 "token": "ninja",
19 "viewersCurrent": 0,
20 "viewersTotal": 43349053,
21 "numFollowers": 2840127,
22 "name": "TEM TEM TIME",
23 "online": false,
24 "languageId": "en"
25 },
26 "createdAt": "2019-08-01T16:45:00.000Z",
27 "deleatedAt": null,
28 "experience": 401922,
29 "frontendVersion": null,
30 "groups": [
31 {"id": 1, "name": "User"},
32 {"id": 19, "name": "Partner"},
33 {"id": 12, "name": "Pro"}
34 ],
35 "level": 103,
36 "primaryTeam": null,
37 "social": {
38 "facebook": "https://www.facebook.com/NinjaTB"
39 },
40 "sparks": 7874598,
41 "updatedAt": "2020-01-06T19:26:43.640Z",
42 "username": "Ninja",
43 "verified": true
44 }""")
0 from allauth.socialaccount.providers.oauth2.urls import default_urlpatterns
1
2 from .provider import MixerProvider
3
4
5 urlpatterns = default_urlpatterns(MixerProvider)
0 import requests
1
2 from allauth.socialaccount.providers.oauth2.views import (
3 OAuth2Adapter,
4 OAuth2CallbackView,
5 OAuth2LoginView,
6 )
7
8 from .provider import MixerProvider
9
10
11 class MixerOAuth2Adapter(OAuth2Adapter):
12 provider_id = MixerProvider.id
13 access_token_url = 'https://mixer.com/api/v1/oauth/token'
14 authorize_url = 'https://mixer.com/oauth/authorize'
15 profile_url = 'https://mixer.com/api/v1/users/current'
16
17 def complete_login(self, request, app, token, **kwargs):
18 headers = {'Authorization': 'Bearer {}'.format(token.token)}
19 response = requests.get(self.profile_url, headers=headers)
20 response.raise_for_status()
21
22 data = response.json()
23
24 return self.get_provider().sociallogin_from_response(
25 request, data
26 )
27
28
29 oauth2_login = OAuth2LoginView.adapter_view(MixerOAuth2Adapter)
30 oauth2_callback = OAuth2CallbackView.adapter_view(MixerOAuth2Adapter)
1717 def complete_login(self, request, app, token, **kwargs):
1818 headers = {'Authorization': 'Bearer {0}'.format(token.token)}
1919 resp = requests.get(self.profile_url, headers=headers)
20 resp.raise_for_status()
2021 extra_data = resp.json().get('response')
2122 return self.get_provider().sociallogin_from_response(request,
2223 extra_data)
2424 request, extra_data)
2525
2626 def get_user_info(self, token, user_id):
27 headers = {'Authorization': 'Bearer {0}'.format(self.server)}
27 headers = {'Authorization': 'Bearer {0}'.format(token)}
2828 resp = requests.get(self.profile_url + user_id, headers=headers)
2929 resp.raise_for_status()
3030 data = ET.fromstring(resp.content.decode())[1]
33
44 class OdnoklassnikiAccount(ProviderAccount):
55 def get_profile_url(self):
6 return self.account.extra_data.get('link')
6 return 'https://ok.ru/profile/' + self.account.extra_data['uid']
77
88 def get_avatar_url(self):
99 ret = None
66 return 'http://twitch.tv/' + self.account.extra_data.get('login')
77
88 def get_avatar_url(self):
9 return self.account.extra_data.get('logo')
9 # We're using `logo` as a failback for legacy profiles retrieved
10 # with the old https://api.twitch.tv/kraken/user endpoint.
11 logo = self.account.extra_data.get('logo')
12 return self.account.extra_data.get('profile_image_url', logo)
1013
1114 def to_str(self):
1215 dflt = super(TwitchAccount, self).to_str()
0 from django.test.client import RequestFactory
1 from django.urls import reverse
2
03 from allauth.socialaccount.models import SocialToken
14 from allauth.socialaccount.providers.oauth2.client import OAuth2Error
25 from allauth.socialaccount.tests import OAuth2TestsMixin
47
58 from .provider import TwitchProvider
69 from .views import TwitchOAuth2Adapter
7
8
9 class MockObject(object):
10 pass
1110
1211
1312 class TwitchTests(OAuth2TestsMixin, TestCase):
8584 we can check that the specific erros are raised before
8685 they are caught and rendered to generic error HTML
8786 """
88 request = MockObject()
89 app = MockObject()
87 request = RequestFactory().get(
88 reverse(self.provider.id + '_login'),
89 {'process': 'login'},
90 )
91 adapter = TwitchOAuth2Adapter(request)
92 app = adapter.get_provider().get_app(request)
9093 token = SocialToken(token='this-is-my-fake-token')
9194
9295 with mocked_response(resp_mock):
1616 profile_url = 'https://api.twitch.tv/helix/users'
1717
1818 def complete_login(self, request, app, token, **kwargs):
19 headers = {'Authorization': 'Bearer {}'.format(token.token)}
19 headers = {
20 'Authorization': 'Bearer {}'.format(token.token),
21 'Client-ID': app.client_id,
22 }
2023 response = requests.get(self.profile_url, headers=headers)
2124
2225 data = response.json()
00 import requests
11
2 from allauth.socialaccount import app_settings
23 from allauth.socialaccount.providers.oauth2.client import (
34 OAuth2Client,
45 OAuth2Error,
56 )
7
8 from .provider import UntappdProvider
69
710
811 class UntappdOAuth2Client(OAuth2Client):
2528 if self.access_token_method == 'GET':
2629 params = data
2730 data = None
31 # Allow custom User Agent to comply with Untappd API
32 settings = app_settings.PROVIDERS.get(UntappdProvider.id, {})
33 headers = {
34 'User-Agent': settings.get('USER_AGENT', 'django-allauth')}
2835 # TODO: Proper exception handling
2936 resp = requests.request(self.access_token_method,
3037 url,
3138 params=params,
32 data=data)
39 data=data,
40 headers=headers)
3341 access_token = None
3442 if resp.status_code == 200:
3543 access_token = resp.json()['response']
44
55 class VKAccount(ProviderAccount):
66 def get_profile_url(self):
7 return 'https://vk.com/id%s' % self.account.extra_data.get('uid')
7 return 'https://vk.com/id%s' % self.account.extra_data.get('id')
88
99 def get_avatar_url(self):
1010 ret = None
0 from allauth.account.models import EmailAddress
1 from allauth.socialaccount import app_settings
2 from allauth.socialaccount.providers.base import ProviderAccount
3 from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider
4
5
6 class YandexAccout(ProviderAccount):
7 def to_str(self):
8 first_name = self.account.extra_data.get("first_name", "")
9 last_name = self.account.extra_data.get("last_name", "")
10 name = " ".join([first_name, last_name]).strip()
11 return name or super(YandexAccout, self).to_str()
12
13
14 class YandexProvider(OAuth2Provider):
15 id = "yandex"
16 name = "Yandex"
17 account_class = YandexAccout
18
19 def get_default_scope(self):
20 scope = ["login:info"]
21 if app_settings.QUERY_EMAIL:
22 scope.append("login:email")
23 return scope
24
25 def extract_uid(self, data):
26 return str(data["id"])
27
28 def get_user_email(self, data):
29 email = data.get("default_email")
30 if not email:
31 emails = data.get("emails")
32 email = emails[0] if emails else ""
33 return email
34
35 def extract_common_fields(self, data):
36 email = self.get_user_email(data)
37 return dict(
38 email=email,
39 last_name=data.get("last_name"),
40 username=data.get("display_name"),
41 first_name=data.get("first_name"),
42 )
43
44 def extract_email_addresses(self, data):
45 ret = []
46 email = self.get_user_email(data)
47 if email:
48 ret.append(EmailAddress(email=email, verified=True, primary=True))
49 return ret
50
51
52 provider_classes = [YandexProvider]
0 from __future__ import absolute_import
1
2 from allauth.socialaccount.tests import OAuth2TestsMixin
3 from allauth.tests import MockedResponse, TestCase
4
5 from .provider import YandexProvider
6
7
8 class YandexTests(OAuth2TestsMixin, TestCase):
9 provider_id = YandexProvider.id
10
11 yandex_data = """
12 {
13 "login": "vasya",
14 "old_social_login": "uid-mmzxrnry",
15 "default_email": "test@yandex.ru",
16 "id": "1000034426",
17 "client_id": "4760187d81bc4b7799476b42b5103713",
18 "emails": [
19 "test@yandex.ru",
20 "other-test@yandex.ru"
21 ],
22 "openid_identities": [
23 "http://openid.yandex.ru/vasya/",
24 "http://vasya.ya.ru/"
25 ]
26 }"""
27
28 def get_mocked_response(self, data=None):
29 if data is None:
30 data = self.yandex_data
31 return MockedResponse(200, data)
32
33 def get_login_response_json(self, with_refresh_token=True):
34 return """
35 {
36 "access_token":"testac",
37 "refresh_token":"1:GN686QVt0mmakDd9:A4pYuW9LGk0_UnlrMIWklk",
38 "token_type":"bearer",
39 "expires_in":124234123534
40 }"""
0 from allauth.socialaccount.providers.oauth2.urls import default_urlpatterns
1
2 from .provider import YandexProvider
3
4
5 urlpatterns = default_urlpatterns(YandexProvider)
0 import requests
1
2 from allauth.socialaccount.providers.oauth2.views import (
3 OAuth2Adapter,
4 OAuth2CallbackView,
5 OAuth2LoginView,
6 )
7
8 from .provider import YandexProvider
9
10
11 class YandexAuth2Adapter(OAuth2Adapter):
12 provider_id = YandexProvider.id
13 access_token_url = "https://oauth.yandex.ru/token"
14 authorize_url = "https://oauth.yandex.com/authorize"
15 profile_url = "https://login.yandex.ru/info"
16
17 def complete_login(self, request, app, token, **kwargs):
18 resp = requests.get(
19 self.profile_url,
20 params={"oauth_token": token.token, "format": "json"},
21 )
22 resp.raise_for_status()
23 extra_data = resp.json()
24 return self.get_provider().sociallogin_from_response(
25 request, extra_data
26 )
27
28
29 oauth2_login = OAuth2LoginView.adapter_view(YandexAuth2Adapter)
30 oauth2_callback = OAuth2CallbackView.adapter_view(YandexAuth2Adapter)
11
22 {% load i18n %}
33
4 {% block head_title %}{% trans "Account" %}{% endblock %}
4 {% block head_title %}{% trans "E-mail Addresses" %}{% endblock %}
55
66 {% block content %}
77 <h1>{% trans "E-mail Addresses" %}</h1>
44 import requests
55 from datetime import date, datetime
66
7 import django
78 from django.core.files.base import ContentFile
89 from django.db import models
910 from django.test import RequestFactory, TestCase
9293 class SomeField(models.Field):
9394 def get_prep_value(self, value):
9495 return 'somevalue'
95
96 def from_db_value(self, value, expression, connection, context):
97 return some_value
96 if django.VERSION < (3, 0):
97 def from_db_value(
98 self, value, expression, connection, context
99 ):
100 return some_value
101 else:
102 def from_db_value(self, value, expression, connection):
103 return some_value
98104
99105 class SomeModel(models.Model):
100106 dt = models.DateTimeField()
77 from collections import OrderedDict
88 from urllib.parse import urlsplit
99
10 import django
1011 from django.contrib.auth import get_user_model
1112 from django.contrib.sites.models import Site
1213 from django.core.exceptions import FieldDoesNotExist, ImproperlyConfigured
218219 try:
219220 # This is quite an ugly hack, but will cover most
220221 # use cases...
221 v = f.from_db_value(v, None, None, None)
222 # The signature of `from_db_value` changed in Django 3
223 # https://docs.djangoproject.com/en/3.0/releases/3.0/#features-removed-in-3-0
224 if django.VERSION < (3, 0):
225 v = f.from_db_value(v, None, None, None)
226 else:
227 v = f.from_db_value(v, None, None)
222228 except Exception:
223229 raise ImproperlyConfigured(
224230 "Unable to auto serialize field '{}', custom"
00 Metadata-Version: 1.1
11 Name: django-allauth
2 Version: 0.41.0
2 Version: 0.42.0
33 Summary: Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.
44 Home-page: http://github.com/pennersr/django-allauth
55 Author: Raymond Penners
275275 allauth/socialaccount/providers/edmodo/tests.py
276276 allauth/socialaccount/providers/edmodo/urls.py
277277 allauth/socialaccount/providers/edmodo/views.py
278 allauth/socialaccount/providers/edx/__init__.py
279 allauth/socialaccount/providers/edx/provider.py
280 allauth/socialaccount/providers/edx/tests.py
281 allauth/socialaccount/providers/edx/urls.py
282 allauth/socialaccount/providers/edx/views.py
278283 allauth/socialaccount/providers/eventbrite/__init__.py
279284 allauth/socialaccount/providers/eventbrite/provider.py
280285 allauth/socialaccount/providers/eventbrite/tests.py
373378 allauth/socialaccount/providers/kakao/tests.py
374379 allauth/socialaccount/providers/kakao/urls.py
375380 allauth/socialaccount/providers/kakao/views.py
381 allauth/socialaccount/providers/keycloak/__init__.py
382 allauth/socialaccount/providers/keycloak/provider.py
383 allauth/socialaccount/providers/keycloak/tests.py
384 allauth/socialaccount/providers/keycloak/urls.py
385 allauth/socialaccount/providers/keycloak/views.py
376386 allauth/socialaccount/providers/line/__init__.py
377387 allauth/socialaccount/providers/line/models.py
378388 allauth/socialaccount/providers/line/provider.py
411421 allauth/socialaccount/providers/microsoft/tests.py
412422 allauth/socialaccount/providers/microsoft/urls.py
413423 allauth/socialaccount/providers/microsoft/views.py
424 allauth/socialaccount/providers/mixer/__init__.py
425 allauth/socialaccount/providers/mixer/provider.py
426 allauth/socialaccount/providers/mixer/tests.py
427 allauth/socialaccount/providers/mixer/urls.py
428 allauth/socialaccount/providers/mixer/views.py
414429 allauth/socialaccount/providers/naver/__init__.py
415430 allauth/socialaccount/providers/naver/models.py
416431 allauth/socialaccount/providers/naver/provider.py
626641 allauth/socialaccount/providers/yahoo/tests.py
627642 allauth/socialaccount/providers/yahoo/urls.py
628643 allauth/socialaccount/providers/yahoo/views.py
644 allauth/socialaccount/providers/yandex/__init__.py
645 allauth/socialaccount/providers/yandex/provider.py
646 allauth/socialaccount/providers/yandex/tests.py
647 allauth/socialaccount/providers/yandex/urls.py
648 allauth/socialaccount/providers/yandex/views.py
629649 allauth/socialaccount/providers/ynab/__init__.py
630650 allauth/socialaccount/providers/ynab/provider.py
631651 allauth/socialaccount/providers/ynab/tests.py
7979
8080 - ``allauth.socialaccount.adapter.DefaultSocialAccountAdapter``:
8181
82 - ``is_open_for_signup(self, request)``: The default function
82 - ``is_open_for_signup(self, request, socialaccount)``: The default function
8383 returns that is the same as ``ACCOUNT_ADAPTER`` in ``settings.py``.
8484 You can override this method by returning ``True``/``False``
8585 if you want to enable/disable socialaccount signup.
1616
1717 Here are a few third party resources to help you get started:
1818
19 - https://dev.to/gajesh/the-complete-django-allauth-guide-la3
1920 - https://www.youtube.com/watch?v=2QLAc7RJ99s
2021 - https://speakerdeck.com/tedtieken/signing-up-and-signing-in-users-in-django-with-django-allauth
2122 - https://stackoverflow.com/questions/tagged/django-allauth
2223 - http://www.sarahhagstrom.com/2013/09/the-missing-django-allauth-tutorial/
2324 - https://github.com/aellerton/demo-allauth-bootstrap
24 - https://medium.com/@gajeshbhat/django-allauth-setup-and-configuration-tutorial-63417bba339c
25 - https://medium.com/@gajeshbhat/extending-and-customizing-django-allauth-eed206623a1a
26 - https://medium.com/@gajeshbhat/django-allauth-social-login-tutorial-ad021c24d666
2725
2826 I think I found a security issue... now what?
2927 *********************************************
2626 },
2727 ]
2828
29 AUTHENTICATION_BACKENDS = (
29 AUTHENTICATION_BACKENDS = [
3030 ...
3131 # Needed to login by username in Django admin, regardless of `allauth`
3232 'django.contrib.auth.backends.ModelBackend',
3434 # `allauth` specific authentication methods, such as login by e-mail
3535 'allauth.account.auth_backends.AuthenticationBackend',
3636 ...
37 )
37 ]
3838
39 INSTALLED_APPS = (
39 INSTALLED_APPS = [
4040 ...
4141 # The following apps are required:
4242 'django.contrib.auth',
7070 'allauth.socialaccount.providers.dropbox',
7171 'allauth.socialaccount.providers.dwolla',
7272 'allauth.socialaccount.providers.edmodo',
73 'allauth.socialaccount.providers.edx',
7374 'allauth.socialaccount.providers.eveonline',
7475 'allauth.socialaccount.providers.evernote',
7576 'allauth.socialaccount.providers.exist',
8687 'allauth.socialaccount.providers.instagram',
8788 'allauth.socialaccount.providers.jupyterhub',
8889 'allauth.socialaccount.providers.kakao',
90 'allauth.socialaccount.providers.keycloak',
8991 'allauth.socialaccount.providers.line',
9092 'allauth.socialaccount.providers.linkedin',
9193 'allauth.socialaccount.providers.linkedin_oauth2',
9395 'allauth.socialaccount.providers.mailchimp',
9496 'allauth.socialaccount.providers.meetup',
9597 'allauth.socialaccount.providers.microsoft',
98 'allauth.socialaccount.providers.mixer',
9699 'allauth.socialaccount.providers.naver',
97100 'allauth.socialaccount.providers.nextcloud',
98101 'allauth.socialaccount.providers.odnoklassniki',
127130 'allauth.socialaccount.providers.weixin',
128131 'allauth.socialaccount.providers.windowslive',
129132 'allauth.socialaccount.providers.xing',
133 'allauth.socialaccount.providers.yandex',
130134 'allauth.socialaccount.providers.ynab',
131135 ...
132 )
136 ]
133137
134138 SITE_ID = 1
135139
151155
152156 urlpatterns = [
153157 ...
154 url(r'^accounts/', include('allauth.urls')),
158 path('accounts/', include('allauth.urls')),
155159 ...
156160 ]
157161
8282
8383 - Edmodo (OAuth2)
8484
85 - Edx (open.edx.org) (OAuth2)
86
8587 - Eve Online (OAuth2)
8688
8789 - Eventbrite (OAuth2)
114116
115117 - Kakao (OAuth2)
116118
119 - Keycloak (OAuth2)
120
117121 - Line (OAuth2)
118122
119123 - LinkedIn (OAuth, OAuth2)
126130
127131 - Microsoft (Graph) (OAuth2)
128132
133 - Mixer (OAuth2)
134
129135 - NextCloud (OAuth2)
130136
131137 - Naver (OAuth2)
195201 - Xing (OAuth)
196202
197203 - Yahoo (OAuth2)
204
205 - Yandex (OAuth2)
198206
199207 - YNAB (OAuth2)
200208
402402 }
403403
404404
405 Edx
406 ------
407
408 Open Edx OAuth2 documentation
409 https://course-catalog-api-guide.readthedocs.io/en/latest/authentication/
410
411 It is necessary to set ``EDX_URL`` to your open edx installation. If no ``EDX_URL``
412 value is set, the Edx provider will use ``https://edx.org`` which does not work:
413
414 .. code-block:: python
415
416 SOCIALACCOUNT_PROVIDERS = {
417 'edx': {
418 'EDX_URL': "https://openedx.local",
419 }
420 }
421
405422 Eve Online
406423 ----------
407424
515532 'facebook': {
516533 'METHOD': 'oauth2',
517534 'SDK_URL': '//connect.facebook.net/{locale}/sdk.js',
518 'SCOPE': ['email', 'public_profile', 'user_friends'],
535 'SCOPE': ['email', 'public_profile'],
519536 'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
520537 'INIT_PARAMS': {'cookie': True},
521538 'FIELDS': [
534551 'EXCHANGE_TOKEN': True,
535552 'LOCALE_FUNC': 'path.to.callable',
536553 'VERIFIED_EMAIL': False,
537 'VERSION': 'v2.12',
554 'VERSION': 'v7.0',
538555 }
539556 }
540557
552569 SCOPE:
553570 By default, the ``email`` scope is required depending on whether or not
554571 ``SOCIALACCOUNT_QUERY_EMAIL`` is enabled.
555 Apps using permissions beyond ``email``, ``public_profile`` and ``user_friends``
572 Apps using permissions beyond ``email`` and ``public_profile``
556573 require review by Facebook.
557574 See `Permissions with Facebook Login <https://developers.facebook.com/docs/facebook-login/permissions>`_
558575 for more information.
602619 risk.
603620
604621 VERSION:
605 The Facebook Graph API version to use. The default is ``v2.12``.
622 The Facebook Graph API version to use. The default is ``v7.0``.
606623
607624 App registration (get your key and secret here)
608625 A key and secret key can be obtained by
881898 Development callback URL
882899 http://localhost:8000/accounts/kakao/login/callback/
883900
901 Keycloak
902 --------
903
904 Creating and Registering the Client
905 https://www.keycloak.org/docs/latest/getting_started/index.html#creating-and-registering-the-client
906
907 Development callback URL
908 http://localhost:8000/accounts/keycloak/login/callback/
909
910 The following Keycloak settings are available.
911
912 KEYCLOAK_URL:
913 The url of your hosted keycloak server, it must end with ``/auth``. For
914 example, you can use: ``https://your.keycloak.server/auth``
915
916 KEYCLOAK_REAML:
917 The name of the ``realm`` you want to use.
918
919 Example:
920
921 .. code-block:: python
922
923 SOCIALACCOUNT_PROVIDERS = {
924 'keycloak': {
925 'KEYCLOAK_URL': 'https://keycloak.custom/auth',
926 'KEYCLOAK_REALM': 'master'
927 }
928 }
884929
885930 Line
886931 ----
10471092 }
10481093
10491094
1095 Mixer
1096 -----
1097
1098 API documentation
1099 https://dev.mixer.com/guides/core/introduction
1100
1101 App registration (get your key and secret here)
1102 https://mixer.com/lab/oauth
1103
1104 Development callback URL
1105 http://localhost:8000/accounts/mixer/login/callback/
1106
1107 You can change scopes for Mixer using the ``SCOPE`` parameter. For example, to add the ability to edit your mixer profile, you'd use:
1108
1109 .. code-block:: python
1110
1111 SOCIALACCOUNT_PROVIDERS = {
1112 'mixer': {
1113 'SCOPE': [
1114 'user:details:self',
1115 'user:update:self',
1116 ]
1117 }
1118 }
1119
1120 The default scope list is ``['user:details:self']``, which is required to get your email address from Mixer. The full list of scopes is available at https://dev.mixer.com/reference/oauth/scopes
1121
10501122 Naver
10511123 -----
10521124
16831755 * Secret key: "Client Secret" from Untappd
16841756 * Sites: choose your site
16851757
1758 In addition, you should override your user agent to comply with Untappd's API
1759 rules, and specify something in the format
1760 ``<platform>:<app ID>:<version string>``. Otherwise,
1761 you will risk additional rate limiting in your application.
1762
1763 .. code-block:: python
1764
1765 SOCIALACCOUNT_PROVIDERS = {
1766 'untappd': {
1767 'USER_AGENT': 'django:myappid:1.0',
1768 }
1769 }
1770
1771
16861772
16871773 Telegram
16881774 --------
17941880 Register your OAuth2 app below and enter the resultant client id and secret into admin
17951881 https://developer.yahoo.com/apps/create/
17961882
1883
1884 Yandex
1885 ------
1886
1887 App registration (get key and secret here)
1888 https://oauth.yandex.com/client/new
1889
1890 Development callback URL
1891 https://oauth.yandex.com/verification_code
1892
1893 Yandex OAuth app has many different access rights for its services. For the basic access level,
1894 you just need to a choose "Yandex.Passport API" section and check "Access to email address" and
1895 "Access to username, first name and surname, gender". Everything else is optional.
1896
1897
17971898 YNAB
17981899 ------
17991900
99
1010
1111 - ``allauth.account.signals.user_logged_in(request, user)``
12
13 Sent when a user logs in.
12 Sent when a user logs in.
1413
1514 - ``allauth.account.signals.user_logged_out(request, user)``
16
17 Sent when a user logs out.
15 Sent when a user logs out.
1816
1917 - ``allauth.account.signals.user_signed_up(request, user)``
20
21 Sent when a user signs up for an account. This signal is
22 typically followed by a ``user_logged_in``, unless e-mail verification
23 prohibits the user to log in.
18 Sent when a user signs up for an account. This signal is
19 typically followed by a ``user_logged_in``, unless e-mail verification
20 prohibits the user to log in.
2421
2522 - ``allauth.account.signals.password_set(request, user)``
26
27 Sent when a password has been successfully set for the first time.
23 Sent when a password has been successfully set for the first time.
2824
2925 - ``allauth.account.signals.password_changed(request, user)``
30
31 Sent when a password has been successfully changed.
26 Sent when a password has been successfully changed.
3227
3328 - ``allauth.account.signals.password_reset(request, user)``
34
35 Sent when a password has been successfully reset.
29 Sent when a password has been successfully reset.
3630
3731 - ``allauth.account.signals.email_confirmed(request, email_address)``
38
39 Sent after the email address in the db was updated and set to confirmed.
32 Sent after the email address in the db was updated and set to confirmed.
4033
4134 - ``allauth.account.signals.email_confirmation_sent(request, confirmation, signup)``
42
43 Sent right after the email confirmation is sent.
35 Sent right after the email confirmation is sent.
4436
4537 - ``allauth.account.signals.email_changed(request, user, from_email_address, to_email_address)``
46
47 Sent when a primary email address has been changed.
38 Sent when a primary email address has been changed.
4839
4940 - ``allauth.account.signals.email_added(request, user, email_address)``
50
51 Sent when a new email address has been added.
41 Sent when a new email address has been added.
5242
5343 - ``allauth.account.signals.email_removed(request, user, email_address)``
54
55 Sent when an email address has been deleted.
44 Sent when an email address has been deleted.
5645
5746
5847 allauth.socialaccount
5948 ---------------------
6049
6150 - ``allauth.socialaccount.signals.pre_social_login(request, sociallogin)``
62
63 Sent after a user successfully authenticates via a social provider,
64 but before the login is fully processed. This signal is emitted as
65 part of the social login and/or signup process, as well as when
66 connecting additional social accounts to an existing account. Access
67 tokens and profile information, if applicable for the provider, is
68 provided.
51 Sent after a user successfully authenticates via a social provider,
52 but before the login is fully processed. This signal is emitted as
53 part of the social login and/or signup process, as well as when
54 connecting additional social accounts to an existing account. Access
55 tokens and profile information, if applicable for the provider, is
56 provided.
6957
7058 - ``allauth.socialaccount.signals.social_account_added(request, sociallogin)``
71
72 Sent after a user connects a social account to a their local account.
59 Sent after a user connects a social account to a their local account.
7360
7461 - ``allauth.socialaccount.signals.social_account_updated(request, sociallogin)``
75
76 Sent after a social account has been updated. This happens when a user
77 logs in using an already connected social account, or completes a `connect`
78 flow for an already connected social account. Useful if you need to
79 unpack extra data for social accounts as they are updated.
62 Sent after a social account has been updated. This happens when a user
63 logs in using an already connected social account, or completes a `connect`
64 flow for an already connected social account. Useful if you need to
65 unpack extra data for social accounts as they are updated.
8066
8167 - ``allauth.socialaccount.signals.social_account_removed(request, socialaccount)``
82
83 Sent after a user disconnects a social account from their local
84 account.
68 Sent after a user disconnects a social account from their local
69 account.
7777 'allauth.socialaccount.providers.dropbox',
7878 'allauth.socialaccount.providers.dwolla',
7979 'allauth.socialaccount.providers.edmodo',
80 'allauth.socialaccount.providers.edx',
8081 'allauth.socialaccount.providers.eveonline',
8182 'allauth.socialaccount.providers.evernote',
8283 'allauth.socialaccount.providers.eventbrite',
9596 'allauth.socialaccount.providers.instagram',
9697 'allauth.socialaccount.providers.jupyterhub',
9798 'allauth.socialaccount.providers.kakao',
99 'allauth.socialaccount.providers.keycloak',
98100 'allauth.socialaccount.providers.line',
99101 'allauth.socialaccount.providers.linkedin',
100102 'allauth.socialaccount.providers.linkedin_oauth2',
102104 'allauth.socialaccount.providers.mailru',
103105 'allauth.socialaccount.providers.meetup',
104106 'allauth.socialaccount.providers.microsoft',
107 'allauth.socialaccount.providers.mixer',
105108 'allauth.socialaccount.providers.naver',
106109 'allauth.socialaccount.providers.nextcloud',
107110 'allauth.socialaccount.providers.odnoklassniki',
140143 'allauth.socialaccount.providers.windowslive',
141144 'allauth.socialaccount.providers.xing',
142145 'allauth.socialaccount.providers.yahoo',
146 'allauth.socialaccount.providers.yandex',
143147 'allauth.socialaccount.providers.ynab',
144148 )
145149