Skip to content
Snippets Groups Projects
Commit be692534 authored by Jean-Baptiste's avatar Jean-Baptiste
Browse files

update: retro compatibility

parent 31576de8
No related branches found
No related tags found
1 merge request!8Resolve "Login endpoint"
from urllib.parse import urlparse
import validators
from django.conf import settings
from django.contrib.auth import login, get_user_model
......@@ -157,7 +159,7 @@ class RPLoginCallBackEndpoint(object):
def extract_web_id(self, userinfo):
"""
@See https://github.com/solid/webid-oidc-spec/blob/master/README.md#method-1---custom-webid-claim
See https://github.com/solid/webid-oidc-spec/blob/master/README.md#method-1---custom-webid-claim
:param userinfo:
:return:
"""
......@@ -172,11 +174,13 @@ class RPLoginCallBackEndpoint(object):
def confirm_webid(self, webid):
"""
@see https://github.com/solid/webid-oidc-spec/blob/master/README.md#webid-provider-confirmation
See https://github.com/solid/webid-oidc-spec/blob/master/README.md#webid-provider-confirmation
:param webid:
:return:
"""
if webid.startswith(self.client.issuer):
url = urlparse(self.client.issuer)
webid_url = urlparse(webid)
if webid_url.netloc == url.netloc:
pass
else:
raise LDPLoginError('cannot_confirm_webid')
......@@ -190,6 +194,8 @@ class RPLoginCallBackEndpoint(object):
if existing_user is not None:
user = existing_user
else:
user = get_user_model().objects.create_user(username=webid, first_name=userinfo['given_name'],
last_name=userinfo['family_name'], email=userinfo['email'])
user = get_user_model().objects.create_user(username=webid,
first_name=userinfo['given_name'],
last_name=userinfo['family_name'],
email=userinfo['email'])
login(self.request, user, backend='django.contrib.auth.backends.ModelBackend')
......@@ -5,6 +5,8 @@ from django.conf import settings
from django.conf.urls import url, include
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from django.urls import reverse_lazy
from django.views.generic import RedirectView
from djangoldp.permissions import AnonymousReadOnly
from djangoldp.views import LDPViewSet
......@@ -30,13 +32,12 @@ urlpatterns = [
nested_fields=user_nested_fields)),
url(r'^accounts/', include('django.contrib.auth.urls')),
url(r'^accounts/', LDPViewSet.urls(model=Account, permission_classes=[AnonymousReadOnly])),
url(r'^chat-profile/', LDPViewSet.urls(model=ChatProfile, permission_classes=[AnonymousReadOnly])),
url(r'^chat-profile/?', LDPViewSet.urls(model=ChatProfile, permission_classes=[AnonymousReadOnly])),
url(r'^ldp/login/callback/?$', RPLoginCallBackView.as_view(), name='ldp_login_callback'),
url(r'^ldp/login/?$', RPLoginView.as_view(), name='ldp_login'),
url(r'^userinfo/?$', userinfocustom),
url(r'^', include('oidc_provider.urls', namespace='oidc_provider')),
url(r'^openid/userinfo/?$', userinfocustom),
url(r'^openid/', include('oidc_provider.urls', namespace='oidc_provider'))
]
s_fields = []
s_fields.extend(user_fields)
s_fields.extend(user_nested_fields)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment