aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/home/views
diff options
context:
space:
mode:
authorGravatar Leon Sandøy <[email protected]>2020-10-04 20:04:53 +0200
committerGravatar Leon Sandøy <[email protected]>2020-10-04 20:04:53 +0200
commita2357c087239cfd5bcdd7c77e1d3bdee25ea833b (patch)
treed882fc14b11b1a157629bbdb3e2c501b906cb071 /pydis_site/apps/home/views
parentRemove django-allauth from settings. (diff)
Remove files related to django-allauth.
Diffstat (limited to 'pydis_site/apps/home/views')
-rw-r--r--pydis_site/apps/home/views/account/__init__.py4
-rw-r--r--pydis_site/apps/home/views/account/delete.py37
-rw-r--r--pydis_site/apps/home/views/account/settings.py59
3 files changed, 0 insertions, 100 deletions
diff --git a/pydis_site/apps/home/views/account/__init__.py b/pydis_site/apps/home/views/account/__init__.py
deleted file mode 100644
index 3b3250ea..00000000
--- a/pydis_site/apps/home/views/account/__init__.py
+++ /dev/null
@@ -1,4 +0,0 @@
-from .delete import DeleteView
-from .settings import SettingsView
-
-__all__ = ["DeleteView", "SettingsView"]
diff --git a/pydis_site/apps/home/views/account/delete.py b/pydis_site/apps/home/views/account/delete.py
deleted file mode 100644
index 798b8a33..00000000
--- a/pydis_site/apps/home/views/account/delete.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from django.contrib.auth.mixins import LoginRequiredMixin
-from django.contrib.messages import ERROR, INFO, add_message
-from django.http import HttpRequest, HttpResponse
-from django.shortcuts import redirect, render
-from django.urls import reverse
-from django.views import View
-
-from pydis_site.apps.home.forms.account_deletion import AccountDeletionForm
-
-
-class DeleteView(LoginRequiredMixin, View):
- """Account deletion view, for removing linked user accounts from the DB."""
-
- def __init__(self, *args, **kwargs):
- self.login_url = reverse("home")
- super().__init__(*args, **kwargs)
-
- def get(self, request: HttpRequest) -> HttpResponse:
- """HTTP GET: Return the view template."""
- return render(
- request, "home/account/delete.html",
- context={"form": AccountDeletionForm()}
- )
-
- def post(self, request: HttpRequest) -> HttpResponse:
- """HTTP POST: Process the deletion, as requested by the user."""
- form = AccountDeletionForm(request.POST)
-
- if not form.is_valid() or request.user.username != form.cleaned_data["username"]:
- add_message(request, ERROR, "Please enter your username exactly as shown.")
-
- return redirect(reverse("account_delete"))
-
- request.user.delete()
- add_message(request, INFO, "Your account has been deleted.")
-
- return redirect(reverse("home"))
diff --git a/pydis_site/apps/home/views/account/settings.py b/pydis_site/apps/home/views/account/settings.py
deleted file mode 100644
index 3a817dbc..00000000
--- a/pydis_site/apps/home/views/account/settings.py
+++ /dev/null
@@ -1,59 +0,0 @@
-from allauth.socialaccount.models import SocialAccount
-from allauth.socialaccount.providers import registry
-from django.contrib.auth.mixins import LoginRequiredMixin
-from django.contrib.messages import ERROR, INFO, add_message
-from django.http import HttpRequest, HttpResponse
-from django.shortcuts import redirect, render
-from django.urls import reverse
-from django.views import View
-
-
-class SettingsView(LoginRequiredMixin, View):
- """
- Account settings view, for managing and deleting user accounts and connections.
-
- This view actually renders a template with a bare modal, and is intended to be
- inserted into another template using JavaScript.
- """
-
- def __init__(self, *args, **kwargs):
- self.login_url = reverse("home")
- super().__init__(*args, **kwargs)
-
- def get(self, request: HttpRequest) -> HttpResponse:
- """HTTP GET: Return the view template."""
- context = {
- "groups": request.user.groups.all(),
-
- "discord": None,
- "github": None,
-
- "discord_provider": registry.provider_map.get("discord"),
- "github_provider": registry.provider_map.get("github"),
- }
-
- for account in SocialAccount.objects.filter(user=request.user).all():
- if account.provider == "discord":
- context["discord"] = account
-
- if account.provider == "github":
- context["github"] = account
-
- return render(request, "home/account/settings.html", context=context)
-
- def post(self, request: HttpRequest) -> HttpResponse:
- """HTTP POST: Process account disconnections."""
- provider = request.POST["provider"]
-
- if provider == "github":
- try:
- account = SocialAccount.objects.get(user=request.user, provider=provider)
- except SocialAccount.DoesNotExist:
- add_message(request, ERROR, "You do not have a GitHub account linked.")
- else:
- account.delete()
- add_message(request, INFO, "The social account has been disconnected.")
- else:
- add_message(request, ERROR, f"Unknown provider: {provider}")
-
- return redirect(reverse("home"))