Commit d421b6c4 authored by Pierre-Elliott Bécue's avatar Pierre-Elliott Bécue

New upstream version 0.36.0

parent 58ab8f0a
......@@ -19,6 +19,7 @@ Andrey Balandin
Andrey Akolpakov
Andy Matthews
Ani Vera
Antonin Delpeuch
Aron Griffis
Basil Shubin
Ben Timby
......
0.35.0 (2017-02-02)
0.36.0 (2018-05-08)
*******************
Note worthy changes
-------------------
- New providers: Telegram, QuickBooks.
- The Facebook API version now defaults to v2.12.
- ORCID upgraded to use API v2.1.
Security notice
---------------
- In previous versions, the authentication backend did not invoke the
``user_can_authenticate()`` method, potentially allowing users with
``is_active=False`` to authenticate when the allauth authentication backend
was used in a non allauth context.
0.35.0 (2018-02-02)
*******************
Note worthy changes
-------------------
- Add support for Django 2.0
Security notice
---------------
......@@ -9,6 +36,11 @@ Security notice
address to the hash such that whenever the user's email address changes the
token is invalidated.
Backwards incompatible changes
------------------------------
- Drop support for Django 1.8 and Django 1.10.
Note worthy changes
-------------------
......
Metadata-Version: 1.1
Name: django-allauth
Version: 0.35.0
Version: 0.36.0
Summary: Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.
Home-page: http://github.com/pennersr/django-allauth
Author: Raymond Penners
Author-email: raymond.penners@intenct.nl
License: UNKNOWN
Description-Content-Type: UNKNOWN
Description: ==========================
Welcome to django-allauth!
==========================
......
......@@ -8,7 +8,7 @@ r"""
"""
VERSION = (0, 35, 0, 'final', 0)
VERSION = (0, 36, 0, 'final', 0)
__title__ = 'django-allauth'
__version_info__ = VERSION
......
......@@ -407,7 +407,7 @@ class DefaultAccountAdapter(object):
def is_safe_url(self, url):
from django.utils.http import is_safe_url
return is_safe_url(url)
return is_safe_url(url, allowed_hosts=None)
def get_email_confirmation_url(self, request, emailconfirmation):
"""Constructs the email confirmation (activation) url.
......@@ -476,9 +476,14 @@ class DefaultAccountAdapter(object):
def authenticate(self, request, **credentials):
"""Only authenticates, does not actually login. See `login`"""
from allauth.account.auth_backends import AuthenticationBackend
self.pre_authenticate(request, **credentials)
AuthenticationBackend.unstash_authenticated_user()
user = authenticate(request, **credentials)
if user:
alt_user = AuthenticationBackend.unstash_authenticated_user()
user = user or alt_user
if user and app_settings.LOGIN_ATTEMPTS_LIMIT:
cache_key = self._get_login_attempts_cache_key(
request, **credentials)
cache.delete(cache_key)
......@@ -487,11 +492,14 @@ class DefaultAccountAdapter(object):
return user
def authentication_failed(self, request, **credentials):
cache_key = self._get_login_attempts_cache_key(request, **credentials)
data = cache.get(cache_key, [])
dt = timezone.now()
data.append(time.mktime(dt.timetuple()))
cache.set(cache_key, data, app_settings.LOGIN_ATTEMPTS_TIMEOUT)
if app_settings.LOGIN_ATTEMPTS_LIMIT:
cache_key = self._get_login_attempts_cache_key(
request, **credentials
)
data = cache.get(cache_key, [])
dt = timezone.now()
data.append(time.mktime(dt.timetuple()))
cache.set(cache_key, data, app_settings.LOGIN_ATTEMPTS_TIMEOUT)
def is_ajax(self, request):
return request.is_ajax()
......
from threading import local
from django.contrib.auth.backends import ModelBackend
from . import app_settings
......@@ -6,6 +8,9 @@ from .app_settings import AuthenticationMethod
from .utils import filter_users_by_email, filter_users_by_username
_stash = local()
class AuthenticationBackend(ModelBackend):
def authenticate(self, request, **credentials):
......@@ -33,7 +38,7 @@ class AuthenticationBackend(ModelBackend):
try:
# Username query is case insensitive
user = filter_users_by_username(username).get()
if user.check_password(password):
if self._check_password(user, password):
return user
except User.DoesNotExist:
return None
......@@ -47,6 +52,46 @@ class AuthenticationBackend(ModelBackend):
email = credentials.get('email', credentials.get('username'))
if email:
for user in filter_users_by_email(email):
if user.check_password(credentials["password"]):
if self._check_password(user, credentials["password"]):
return user
return None
def _check_password(self, user, password):
ret = user.check_password(password)
if ret:
ret = self.user_can_authenticate(user)
if not ret:
self._stash_user(user)
return ret
@classmethod
def _stash_user(cls, user):
"""Now, be aware, the following is quite ugly, let me explain:
Even if the user credentials match, the authentication can fail because
Django's default ModelBackend calls user_can_authenticate(), which
checks `is_active`. Now, earlier versions of allauth did not do this
and simply returned the user as authenticated, even in case of
`is_active=False`. For allauth scope, this does not pose a problem, as
these users are properly redirected to an account inactive page.
This does pose a problem when the allauth backend is used in a
different context where allauth is not responsible for the login. Then,
by not checking on `user_can_authenticate()` users will allow to become
authenticated whereas according to Django logic this should not be
allowed.
In order to preserve the allauth behavior while respecting Django's
logic, we stash a user for which the password check succeeded but
`user_can_authenticate()` failed. In the allauth authentication logic,
we can then unstash this user and proceed pointing the user to the
account inactive page.
"""
global _stash
ret = getattr(_stash, 'user', None)
_stash.user = user
return ret
@classmethod
def unstash_authenticated_user(cls):
return cls._stash_user(None)
......@@ -821,10 +821,12 @@ class EmailFormTests(TestCase):
HTTP_X_REQUESTED_WITH='XMLHttpRequest')
data = json.loads(resp.content.decode('utf8'))
assert data['data'] == [
{'email': 'john1@example.org',
{'id': self.email_address.pk,
'email': 'john1@example.org',
'primary': True,
'verified': True},
{'email': 'john2@example.org',
{'id': self.email_address2.pk,
'email': 'john2@example.org',
'primary': False,
'verified': False}]
......
......@@ -521,6 +521,7 @@ class EmailView(AjaxCapableProcessFormViewMixin, FormView):
data = []
for emailaddress in self.request.user.emailaddress_set.all():
data.append({
'id': emailaddress.pk,
'email': emailaddress.email,
'verified': emailaddress.verified,
'primary': emailaddress.primary,
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2016-01-19 19:32+0100\n"
"Last-Translator: David D Lowe <daviddlowe.flimm@gmail.com>\n"
"Language-Team: Arabic\n"
......
This diff is collapsed.
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django-allauth\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2017-11-04 16:22+0100\n"
"Last-Translator: Jannis Vajen <jvajen@gmail.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/django-allauth/"
......@@ -105,7 +105,7 @@ msgstr "E-Mail (optional)"
#: account/forms.py:345
msgid "You must type the same email each time."
msgstr "Du musst zweimal dasselbe Passwort eingeben."
msgstr "Du musst zweimal dieselbe E-Mail-Adresse eingeben."
#: account/forms.py:368 account/forms.py:477
msgid "Password (again)"
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2014-08-12 00:29+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: django-allauth\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"PO-Revision-Date: 2014-08-12 00:30+0200\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2018-02-14 17:46-0600\n"
"Last-Translator: Jannis Š\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/django-allauth/"
"language/es/)\n"
......@@ -17,6 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.7.1\n"
#: account/adapter.py:45
msgid "Username can not be used. Please use other username."
......@@ -89,26 +90,20 @@ msgid "Login"
msgstr "Iniciar sesión"
#: account/forms.py:292
#, fuzzy
#| msgid "E-mail (optional)"
msgid "E-mail (again)"
msgstr "Correo Electrónico (opcional)"
msgstr "Correo Electrónico (otra vez)"
#: account/forms.py:296
#, fuzzy
#| msgid "email confirmation"
msgid "E-mail address confirmation"
msgstr "confirmación de correo electrónico"
msgstr "Confirmación de la dirección de correo electrónico"
#: account/forms.py:304
msgid "E-mail (optional)"
msgstr "Correo Electrónico (opcional)"
#: account/forms.py:345
#, fuzzy
#| msgid "You must type the same password each time."
msgid "You must type the same email each time."
msgstr "Debes escribir la misma contraseña cada vez."
msgstr "Debe escribir el mismo correo electrónico cada vez."
#: account/forms.py:368 account/forms.py:477
msgid "Password (again)"
......@@ -303,7 +298,7 @@ msgstr ""
#: socialaccount/providers/douban/views.py:36
msgid "Invalid profile data"
msgstr ""
msgstr "Datos de perfil inválidos"
#: socialaccount/providers/oauth/client.py:78
#, python-format
......@@ -404,12 +399,7 @@ msgstr ""
"seleccionada?"
#: templates/account/email/email_confirmation_message.txt:1
#, fuzzy, python-format
#| msgid ""
#| "User %(user_display)s at %(site_name)s has given this as an email "
#| "address.\n"
#| "\n"
#| "To confirm this is correct, go to %(activate_url)s\n"
#, python-format
msgid ""
"Hello from %(site_name)s!\n"
"\n"
......@@ -418,8 +408,10 @@ msgid ""
"\n"
"To confirm this is correct, go to %(activate_url)s\n"
msgstr ""
"El usuario %(user_display)s de %(site_name)s ha proporcionado este como su "
"correo electrónico.\n"
"¡Te saluda %(site_name)s!\n"
"\n"
"Estás recibiendo este correo electrónico porque el usuario %(user_display)s "
"ha dado su correo electrónico para conectar su cuenta.\n"
"\n"
"Para confirmar que esto es correcto, haz clic en %(activate_url)s\n"
......@@ -429,20 +421,15 @@ msgid ""
"Thank you from %(site_name)s!\n"
"%(site_domain)s"
msgstr ""
"Gracias %(site_name)s!\n"
"%(site_domain)s"
#: templates/account/email/email_confirmation_subject.txt:3
#, fuzzy
#| msgid "Confirm E-mail Address"
msgid "Please Confirm Your E-mail Address"
msgstr "Confirmar dirección de correo electrónico"
msgstr "Por favor confirmar dirección de correo electrónico"
#: templates/account/email/password_reset_key_message.txt:1
#, fuzzy, python-format
#| msgid ""
#| "You're receiving this e-mail because you or someone else has requested a "
#| "password for your user account at %(site_domain)s.\n"
#| "It can be safely ignored if you did not request a password reset. Click "
#| "the link below to reset your password."
#, python-format
msgid ""
"Hello from %(site_name)s!\n"
"\n"
......@@ -451,10 +438,12 @@ msgid ""
"It can be safely ignored if you did not request a password reset. Click the "
"link below to reset your password."
msgstr ""
"Has recibido este correo porque tú u otra persona han pedido una nueva "
"contraseña para su cuenta en %(site_domain)s.\n"
"Si tú no pediste restablecer tu contraseña, ignora este correo. Haz clic en "
"el enlace de abajo para restablecer tu contraseña."
"¡Te saluda %(site_name)s!\n"
"\n"
"Estas recibiendo este correo electrónico porque usted u otra persona ha "
"solicitado una contraseña para su cuenta de usuario.\n"
"Se puede ignorar de forma segura si no solicitó un restablecimiento de "
"contraseña. Haga clic en el siguiente enlace para restablecer su contraseña."
#: templates/account/email/password_reset_key_message.txt:8
#, python-format
......@@ -467,6 +456,8 @@ msgid ""
"Thank you for using %(site_name)s!\n"
"%(site_domain)s"
msgstr ""
"Muchas gracias por usar %(site_name)s!\n"
"%(site_domain)s"
#: templates/account/email/password_reset_key_subject.txt:3
msgid "Password Reset E-mail"
......
......@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2015-09-14 12:40-0000\n"
"Last-Translator: NARIMAN GHARIB <NARIMAN.GH@GMAIL.COM>\n"
"Language-Team: \n"
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2015-08-13 15:17+0300\n"
"Last-Translator: Anonymous User <seppo.erviala@iki.fi>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......
......@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django-allauth\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2016-10-06 15:16+0200\n"
"Last-Translator: Steve Kossouho <steve.kossouho@yahoo.fr>\n"
"Language-Team: français <>\n"
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2017-08-26 16:11+0300\n"
"Last-Translator: Udi Oron <udioron@gmail.com>\n"
"Language-Team: Hebrew\n"
......
......@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2014-08-12 00:31+0200\n"
"Last-Translator: <goran.cetusic@gmail.com>\n"
"Language-Team: Bojan Mihelac <bmihelac@mihelac.org>\n"
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2015-05-08 22:42+0100\n"
"Last-Translator: Tamás Makó <tom@greenplug.hu>\n"
"Language-Team: \n"
......
......@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: django-allauth\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"PO-Revision-Date: 2014-08-12 00:31+0200\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2018-03-08 00:40+0100\n"
"Last-Translator: joke2k <joke2k@gmail.com>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/django-allauth/"
"language/it/)\n"
......@@ -57,7 +57,7 @@ msgstr "Ricordami"
#: account/forms.py:98
msgid "This account is currently inactive."
msgstr "Questo account non è attualmente attivo"
msgstr "Questo account non è attualmente attivo."
#: account/forms.py:101
msgid "The e-mail address and/or password you specified are not correct."
......@@ -101,7 +101,7 @@ msgstr "E-mail (opzionale)"
#, fuzzy
#| msgid "email confirmation"
msgid "E-mail address confirmation"
msgstr "email di conferma"
msgstr "e-mail di conferma"
#: account/forms.py:304
msgid "E-mail (optional)"
......@@ -143,11 +143,11 @@ msgstr "Per favore digita la tua password attuale."
#: account/forms.py:504
msgid "The e-mail address is not assigned to any user account"
msgstr "L'indirizzo e-mail non è assegnato a nessun utenza"
msgstr "L'indirizzo e-mail non è assegnato a nessun account utente"
#: account/forms.py:568
msgid "The password reset token was invalid."
msgstr ""
msgstr "Il codice per il reset della password non è valido."
#: account/models.py:23
msgid "user"
......@@ -222,7 +222,7 @@ msgstr ""
#: socialaccount/models.py:46
#, fuzzy
msgid "name"
msgstr "Username"
msgstr "username"
#: socialaccount/models.py:48
msgid "client id"
......@@ -243,7 +243,7 @@ msgstr ""
#: socialaccount/models.py:58
#, fuzzy
msgid "Key"
msgstr "chiave"
msgstr "Chiave"
#: socialaccount/models.py:66
msgid "social application"
......@@ -341,7 +341,7 @@ msgstr "Account non attivo"
#: templates/account/account_inactive.html:10
msgid "This account is inactive."
msgstr "Questo account non è attivo"
msgstr "Questo account non è attivo."
#: templates/account/email.html:5
msgid "Account"
......@@ -418,6 +418,8 @@ msgid ""
"\n"
"To confirm this is correct, go to %(activate_url)s\n"
msgstr ""
"Ciao da %(site_name)s!\n"
"\n"
"L'Utente %(user_display)s di %(site_name)s ha registrato questo indirizzo e-"
"mail.\n"
"Per confermare, clicca qui %(activate_url)s\n"
......@@ -428,6 +430,8 @@ msgid ""
"Thank you from %(site_name)s!\n"
"%(site_domain)s"
msgstr ""
"Grazie da %(site_name)s!\n"
"%(site_domain)s"
#: templates/account/email/email_confirmation_subject.txt:3
#, fuzzy
......@@ -450,15 +454,17 @@ msgid ""
"It can be safely ignored if you did not request a password reset. Click the "
"link below to reset your password."
msgstr ""
"Ciao da %(site_name)s!\n"
"\n"
"Hai ricevuto questa mail perché hai richiesto la password per il tuo account "
"utente di %(site_domain)s.\n"
"utente.\n"
"Se non hai richiesto tu il reset della password, ignora questa mail, "
"altrimenti clicca sul link qui sotto per fare il reset della password."
#: templates/account/email/password_reset_key_message.txt:8
#, python-format
msgid "In case you forgot, your username is %(username)s."
msgstr "Nel caso tu lo abbia dimenticato, il tuo nome utente é %(username)s."
msgstr "Nel caso tu lo abbia dimenticato, il tuo nome utente è %(username)s."
#: templates/account/email/password_reset_key_message.txt:10
#, python-format
......@@ -466,6 +472,8 @@ msgid ""
"Thank you for using %(site_name)s!\n"
"%(site_domain)s"
msgstr ""
"Grazie per usare %(site_name)s!\n"
"%(site_domain)s"
#: templates/account/email/password_reset_key_subject.txt:3
msgid "Password Reset E-mail"
......@@ -483,7 +491,7 @@ msgid ""
"address for user %(user_display)s."
msgstr ""
"Conferma che <a href=\"mailto:%(email)s\">%(email)s</a> è un indirizzo e-"
"mail per l'utente %(user_display)s."
"mail per l'utente %(user_display)s."
#: templates/account/email_confirm.html:20
msgid "Confirm"
......@@ -495,8 +503,8 @@ msgid ""
"This e-mail confirmation link expired or is invalid. Please <a href="
"\"%(email_url)s\">issue a new e-mail confirmation request</a>."
msgstr ""
"Questo link di conferma e-mail è scaduto o non è valido. Ti chiediamo <a "
"href=\"%(email_url)s\">di ripetere la richiesta di conferma via e-mail</a>."
"Questo link di conferma e-mail è scaduto o non è valido. Ti chiediamo di <a "
"href=\"%(email_url)s\">ripetere la richiesta di conferma via e-mail</a>."
#: templates/account/login.html:6 templates/account/login.html:10
#: templates/account/login.html:43
......@@ -511,9 +519,9 @@ msgid ""
"up</a>\n"
"for a %(site_name)s account and sign in below:"
msgstr ""
"Per favore, loggati con uno\n"
"dei tuoi account sociali. O, <a href=\"%(signup_url)s\">registra</a>\n"
"un account per %(site_name)s e loggati."
"Per favore, accedi con uno\n"
"dei tuoi account social, o <a href=\"%(signup_url)s\">registra</a>\n"
"il tuo account per %(site_name)s e accedi:"
#: templates/account/login.html:25
msgid "or"
......@@ -526,7 +534,7 @@ msgid ""
"<a href=\"%(signup_url)s\">sign up</a> first."
msgstr ""
"Se non hai ancora creato un account, \n"
"<a href=\"%(signup_url)s\">Registrati</a>"
"<a href=\"%(signup_url)s\">Registrati</a>."
#: templates/account/login.html:42
msgid "Forgot Password?"
......@@ -549,12 +557,12 @@ msgstr "Non puoi eliminare il tuo indirizzo e-mail principale (%(email)s)."
#: templates/account/messages/email_confirmation_sent.txt:2
#, python-format
msgid "Confirmation e-mail sent to %(email)s."
msgstr "Abbiamo inviato una conferma a questo indirizzo %(email)s."
msgstr "Abbiamo inviato una conferma all’indirizzo %(email)s."
#: templates/account/messages/email_confirmed.txt:2
#, python-format
msgid "You have confirmed %(email)s."
msgstr "Hai appena confermato questo indirizzo e-mail %(email)s."
msgstr "Hai appena confermato l’indirizzo e-mail %(email)s."
#: templates/account/messages/email_deleted.txt:2
#, python-format
......@@ -617,7 +625,7 @@ msgstr "Re-imposta la mia Password"
#: templates/account/password_reset.html:23
msgid "Please contact us if you have any trouble resetting your password."
msgstr "Se hai qualche problema a re-impostare la password, contattaci!"
msgstr "Se hai qualche problema a re-impostare la password, contattaci."
#: templates/account/password_reset_done.html:15
msgid ""
......@@ -687,14 +695,14 @@ msgstr "Nota"
#: templates/account/snippets/already_logged_in.html:5
#, python-format
msgid "you are already logged in as %(user_display)s."
msgstr "Sei già collegato come %(user_display)s."
msgstr "sei già collegato come %(user_display)s."
#: templates/account/verification_sent.html:5
#: templates/account/verification_sent.html:8
#: templates/account/verified_email_required.html:5
#: templates/account/verified_email_required.html:8
msgid "Verify Your E-mail Address"
msgstr "Verifica il tuo indirizzo E-Mail."
msgstr "Verifica il tuo indirizzo E-Mail"
#: templates/account/verification_sent.html:10
msgid ""
......@@ -714,7 +722,7 @@ msgid ""
msgstr ""
"Per utilizzare questa parte del sito dobbiamo verificare\n"
"che sei veramente chi dici di essere. Sarà sufficiente\n"
"dimostrare che hai effettivamente accesso al tuo indirizzo e-mail."
"dimostrare che hai effettivamente accesso al tuo indirizzo e-mail. "
#: templates/account/verified_email_required.html:16
msgid ""
......@@ -725,7 +733,7 @@ msgstr ""
"Ti abbiamo inviato un messaggio e-mail di verifica.\n"
"Clicca sul link contenuto nella mail.\n"
"Se non dovessi ricevere il messaggio entro qualche minuto, contattaci.\n"
"Grazie "
"Grazie."
#: templates/account/verified_email_required.html:20
#, python-format
......@@ -733,8 +741,8 @@ msgid ""
"<strong>Note:</strong> you can still <a href=\"%(email_url)s\">change your e-"
"mail address</a>."
msgstr ""
"<strong>Nota:</strong>Puoi cambiare<a href=\"%(email_url)s\">in ogni momento "
"l'indirizzo e-mail usato per la registrazione</a>."
"<strong>Nota:</strong> Puoi cambiare <a href=\"%(email_url)s\">in ogni "
"momento l'indirizzo e-mail usato per la registrazione</a>."
#: templates/openid/login.html:9
msgid "OpenID Sign In"
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: 2014-08-12 00:32+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-02 12:55-0600\n"
"POT-Creation-Date: 2018-05-08 00:43-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......