Skip to content

Commit

Permalink
Merge pull request #282 from maykinmedia/feature/digid-logout
Browse files Browse the repository at this point in the history
Feature/digid logout
  • Loading branch information
alextreme authored Jun 29, 2022
2 parents 41fd4f4 + b06aeb6 commit 00900f8
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 10 deletions.
3 changes: 2 additions & 1 deletion requirements/base.in
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ maykin-django-two-factor-auth
phonenumbers
django-localflavor
django-privates
django-digid-eherkenning
django-cors-headers
django-autoslug
django-elasticsearch-dsl
Expand Down Expand Up @@ -60,6 +59,8 @@ elastic-apm # Elastic APM integration
beautifulsoup4

# DigidLocal
# UNSAFE! Should be replaced with pinned version
git+https://github.com/maykinmedia/django-digid-eherkenning.git@feature/digid-logout-callback
git+https://github.com/maykinmedia/python3-saml.git@f587f77b78be79d51139f29a957b406072e2b537#egg=python3_saml
pyopenssl

Expand Down
2 changes: 1 addition & 1 deletion requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ django-csp==3.7
# via -r requirements/base.in
django-csp-reports==1.8.1
# via -r requirements/base.in
django-digid-eherkenning==0.4.0
django-digid-eherkenning @ git+https://github.com/maykinmedia/django-digid-eherkenning.git@feature/digid-logout-callback
# via -r requirements/base.in
django-elasticsearch-dsl==7.2.1
# via -r requirements/base.in
Expand Down
2 changes: 1 addition & 1 deletion requirements/ci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ django-csp-reports==1.8.1
# via
# -c requirements/base.txt
# -r requirements/base.txt
django-digid-eherkenning==0.4.0
django-digid-eherkenning @ git+https://github.com/maykinmedia/django-digid-eherkenning.git@feature/digid-logout-callback
# via
# -c requirements/base.txt
# -r requirements/base.txt
Expand Down
2 changes: 1 addition & 1 deletion requirements/dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ django-csp-reports==1.8.1
# -r requirements/ci.txt
django-debug-toolbar==3.2.2
# via -r requirements/dev.in
django-digid-eherkenning==0.4.0
django-digid-eherkenning @ git+https://github.com/maykinmedia/django-digid-eherkenning.git@feature/digid-logout-callback
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
Expand Down
7 changes: 7 additions & 0 deletions src/open_inwoner/accounts/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,13 @@ def require_necessary_fields(self) -> bool:
and not self.last_name
)

def get_logout_url(self) -> str:
return (
reverse("digid:logout")
if self.login_type == LoginTypeChoices.digid
else reverse("logout")
)


class Contact(models.Model):
uuid = models.UUIDField(
Expand Down
17 changes: 16 additions & 1 deletion src/open_inwoner/accounts/tests/test_profile_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
from django_webtest import WebTest

from open_inwoner.accounts.choices import StatusChoices
from open_inwoner.accounts.models import Action
from open_inwoner.pdc.tests.factories import CategoryFactory

from ..choices import LoginTypeChoices
from .factories import ActionFactory, ContactFactory, UserFactory


Expand Down Expand Up @@ -76,6 +76,21 @@ def test_deactivate_account_staff(self):
self.assertTrue(self.user.is_active)
self.assertIsNone(self.user.deactivated_on)

def test_deactivate_account_digid(self):
"""
check that user is redirected to digid:logout
"""
user = UserFactory.create(login_type=LoginTypeChoices.digid)

get_response = self.app.get(self.url, user=user)
self.assertEquals(get_response.status_code, 200)
form = get_response.forms["deactivate-form"]

response = form.submit()

self.assertEquals(response.status_code, 302)
self.assertEquals(response.url, reverse("digid:logout"))


class EditProfileTests(WebTest):
def setUp(self):
Expand Down
2 changes: 1 addition & 1 deletion src/open_inwoner/accounts/views/profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def post(self, request, *args, **kwargs):
self.request.user.deactivate()

self.log_user_action(instance, _("user was deactivated via frontend"))
return redirect("logout")
return redirect(instance.get_logout_url())
else:
messages.warning(request, _("Uw account kon niet worden gedeactiveerd"))
return redirect("accounts:my_profile")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@
{% if request.user.is_authenticated %}
<ul class="header__list">
<li class="header__list-item">
{% url 'logout' as logout_url %}
{% trans "Logout" as logout %}
{% link text=logout href=logout_url primary=True %}
{% link text=logout href=request.user.get_logout_url primary=True %}
</li>
</ul>
{% else %}
Expand Down Expand Up @@ -59,9 +58,8 @@
{% if request.user.is_authenticated %}
<ul class="header__list">
<li class="header__list-item">
{% url 'logout' as logout_url %}
{% trans "Logout" as logout %}
{% link text=logout href=logout_url primary=True %}
{% link text=logout href=request.user.get_logout_url primary=True %}
</li>
</ul>
{% else %}
Expand Down

0 comments on commit 00900f8

Please sign in to comment.