2 # This file is part of my.gpodder.org.
4 # my.gpodder.org is free software: you can redistribute it and/or modify it
5 # under the terms of the GNU Affero General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or (at your
7 # option) any later version.
9 # my.gpodder.org is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
12 # License for more details.
14 # You should have received a copy of the GNU Affero General Public License
15 # along with my.gpodder.org. If not, see <http://www.gnu.org/licenses/>.
18 from django
.conf
import settings
19 from django
.contrib
.auth
.models
import User
20 from django
.contrib
.auth
.backends
import ModelBackend
21 from django
.core
.exceptions
import ImproperlyConfigured
22 from django
.forms
.fields
import email_re
23 from django
.db
.models
import get_model
25 class EmailAuthenticationBackend(ModelBackend
):
26 def authenticate(self
, username
=None, password
=None):
27 if email_re
.search(username
):
29 user
= User
.objects
.filter(email
=username
)[0]
30 return user
if user
.check_password(password
) else None
35 def get_user(self
, user_id
):
37 return User
.objects
.get(pk
=user_id
)
38 except User
.DoesNotExist
: