Skip to content

Commit fcb4c6b

Browse files
author
Paul Schilling
committed
[#2932] Update eHerkenning SAML flow: get & store vestigingsnummer
1 parent 28260d0 commit fcb4c6b

File tree

4 files changed

+11
-5
lines changed

4 files changed

+11
-5
lines changed

src/eherkenning/backends.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from digid_eherkenning.exceptions import eHerkenningError
55
from digid_eherkenning.utils import get_client_ip
66

7+
from open_inwoner.kvk.branches import KVK_BRANCH_SESSION_VARIABLE
8+
79
UserModel = get_user_model()
810

911

@@ -12,7 +14,11 @@ class eHerkenningBackend(_eHerkenningBackend):
1214
Custom backend to identify users based on the KvK number instead of RSIN
1315
"""
1416

15-
# TODO: get vestigingsnummer from saml_response
17+
def get_company_branch_number(self, attributes):
18+
company_branch_number = attributes.get(
19+
"urn:etoegang:1.9:ServiceRestriction:Vestigingsnr", None
20+
)
21+
return company_branch_number
1622

1723
def get_or_create_user(self, request, saml_response, saml_attributes):
1824
kvk = self.get_kvk_number(saml_attributes)
@@ -28,6 +34,10 @@ def get_or_create_user(self, request, saml_response, saml_attributes):
2834
user = UserModel.eherkenning_objects.eherkenning_create(kvk)
2935
created = True
3036

37+
if vestigingsnummer := self.get_company_branch_number(saml_attributes):
38+
self.request.session[KVK_BRANCH_SESSION_VARIABLE] = vestigingsnummer
39+
self.request.session.save()
40+
3141
success_message = self.error_messages["login_success"] % {
3242
"user": str(user),
3343
"user_info": " (new account)" if created else "",

src/eherkenning/mock/backends.py

-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ class eHerkenningBackend(BaseBackend):
2222
}
2323
)
2424

25-
# TODO: update mock to test retrieval/storage of vestigingsnummer
26-
2725
def get_or_create_user(self, request, kvk):
2826
created = False
2927
try:

src/open_inwoner/accounts/backends.py

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from django.contrib.auth.backends import ModelBackend
77
from django.contrib.auth.hashers import check_password
88
from django.contrib.auth.models import AbstractUser
9-
from django.core.exceptions import SuspiciousOperation
109
from django.urls import reverse, reverse_lazy
1110

1211
from axes.backends import AxesBackend

src/open_inwoner/kvk/views.py

-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ def get(self, request, *args, **kwargs):
5959
return HttpResponse(_("Unauthorized"), status=401)
6060

6161
redirect = self.get_redirect()
62-
6362
context = super().get_context_data()
6463

6564
form = context["form"]

0 commit comments

Comments
 (0)