Runs black
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
''' class views for login/register views '''
|
||||
""" class views for login/register views """
|
||||
from django.contrib.auth import authenticate, login, logout
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.core.exceptions import PermissionDenied
|
||||
@ -14,60 +14,59 @@ from bookwyrm.settings import DOMAIN
|
||||
|
||||
|
||||
# pylint: disable= no-self-use
|
||||
@method_decorator(csrf_exempt, name='dispatch')
|
||||
@method_decorator(csrf_exempt, name="dispatch")
|
||||
class Login(View):
|
||||
''' authenticate an existing user '''
|
||||
""" authenticate an existing user """
|
||||
|
||||
def get(self, request):
|
||||
''' login page '''
|
||||
""" login page """
|
||||
if request.user.is_authenticated:
|
||||
return redirect('/')
|
||||
return redirect("/")
|
||||
# sene user to the login page
|
||||
data = {
|
||||
'login_form': forms.LoginForm(),
|
||||
'register_form': forms.RegisterForm(),
|
||||
"login_form": forms.LoginForm(),
|
||||
"register_form": forms.RegisterForm(),
|
||||
}
|
||||
return TemplateResponse(request, 'login.html', data)
|
||||
return TemplateResponse(request, "login.html", data)
|
||||
|
||||
def post(self, request):
|
||||
''' authentication action '''
|
||||
""" authentication action """
|
||||
if request.user.is_authenticated:
|
||||
return redirect('/')
|
||||
return redirect("/")
|
||||
login_form = forms.LoginForm(request.POST)
|
||||
|
||||
localname = login_form.data['localname']
|
||||
if '@' in localname: # looks like an email address to me
|
||||
localname = login_form.data["localname"]
|
||||
if "@" in localname: # looks like an email address to me
|
||||
email = localname
|
||||
try:
|
||||
username = models.User.objects.get(email=email)
|
||||
except models.User.DoesNotExist: # maybe it's a full username?
|
||||
except models.User.DoesNotExist: # maybe it's a full username?
|
||||
username = localname
|
||||
else:
|
||||
username = '%s@%s' % (localname, DOMAIN)
|
||||
password = login_form.data['password']
|
||||
username = "%s@%s" % (localname, DOMAIN)
|
||||
password = login_form.data["password"]
|
||||
user = authenticate(request, username=username, password=password)
|
||||
if user is not None:
|
||||
# successful login
|
||||
login(request, user)
|
||||
user.last_active_date = timezone.now()
|
||||
user.save(broadcast=False)
|
||||
return redirect(request.GET.get('next', '/'))
|
||||
return redirect(request.GET.get("next", "/"))
|
||||
|
||||
# login errors
|
||||
login_form.non_field_errors = 'Username or password are incorrect'
|
||||
login_form.non_field_errors = "Username or password are incorrect"
|
||||
register_form = forms.RegisterForm()
|
||||
data = {
|
||||
'login_form': login_form,
|
||||
'register_form': register_form
|
||||
}
|
||||
return TemplateResponse(request, 'login.html', data)
|
||||
data = {"login_form": login_form, "register_form": register_form}
|
||||
return TemplateResponse(request, "login.html", data)
|
||||
|
||||
|
||||
class Register(View):
|
||||
''' register a user '''
|
||||
""" register a user """
|
||||
|
||||
def post(self, request):
|
||||
''' join the server '''
|
||||
""" join the server """
|
||||
if not models.SiteSettings.get().allow_registration:
|
||||
invite_code = request.POST.get('invite_code')
|
||||
invite_code = request.POST.get("invite_code")
|
||||
|
||||
if not invite_code:
|
||||
raise PermissionDenied
|
||||
@ -83,42 +82,43 @@ class Register(View):
|
||||
if not form.is_valid():
|
||||
errors = True
|
||||
|
||||
localname = form.data['localname'].strip()
|
||||
email = form.data['email']
|
||||
password = form.data['password']
|
||||
localname = form.data["localname"].strip()
|
||||
email = form.data["email"]
|
||||
password = form.data["password"]
|
||||
|
||||
# check localname and email uniqueness
|
||||
if models.User.objects.filter(localname=localname).first():
|
||||
form.errors['localname'] = [
|
||||
'User with this username already exists']
|
||||
form.errors["localname"] = ["User with this username already exists"]
|
||||
errors = True
|
||||
|
||||
if errors:
|
||||
data = {
|
||||
'login_form': forms.LoginForm(),
|
||||
'register_form': form,
|
||||
'invite': invite,
|
||||
'valid': invite.valid() if invite else True,
|
||||
"login_form": forms.LoginForm(),
|
||||
"register_form": form,
|
||||
"invite": invite,
|
||||
"valid": invite.valid() if invite else True,
|
||||
}
|
||||
if invite:
|
||||
return TemplateResponse(request, 'invite.html', data)
|
||||
return TemplateResponse(request, 'login.html', data)
|
||||
return TemplateResponse(request, "invite.html", data)
|
||||
return TemplateResponse(request, "login.html", data)
|
||||
|
||||
username = '%s@%s' % (localname, DOMAIN)
|
||||
username = "%s@%s" % (localname, DOMAIN)
|
||||
user = models.User.objects.create_user(
|
||||
username, email, password, localname=localname, local=True)
|
||||
username, email, password, localname=localname, local=True
|
||||
)
|
||||
if invite:
|
||||
invite.times_used += 1
|
||||
invite.save()
|
||||
|
||||
login(request, user)
|
||||
return redirect('/')
|
||||
return redirect("/")
|
||||
|
||||
|
||||
@method_decorator(login_required, name='dispatch')
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
class Logout(View):
|
||||
''' log out '''
|
||||
""" log out """
|
||||
|
||||
def get(self, request):
|
||||
''' done with this place! outa here! '''
|
||||
""" done with this place! outa here! """
|
||||
logout(request)
|
||||
return redirect('/')
|
||||
return redirect("/")
|
||||
|
Reference in New Issue
Block a user