OIDC authentication: provide link to view/edit user data
This commit is contained in:
parent
e079ef6747
commit
8c43b4b406
1 changed files with 10 additions and 2 deletions
|
@ -10,7 +10,7 @@ import requests
|
|||
from time import time
|
||||
from urllib.parse import urlencode
|
||||
from zope.authentication.interfaces import IAuthentication, IPrincipal
|
||||
from zope.interface import implementer
|
||||
from zope.interface import Attribute, Interface, implementer
|
||||
from zope.publisher.interfaces import Unauthorized
|
||||
from zope.security.interfaces import IGroupAwarePrincipal
|
||||
|
||||
|
@ -63,7 +63,11 @@ class OidcAuthentication:
|
|||
authentication = OidcAuthentication(None)
|
||||
|
||||
|
||||
@implementer(IGroupAwarePrincipal)
|
||||
class IExternalPrincipal(Interface):
|
||||
extUserLink = Attribute('Link to OIDC provider for viewing/editing external user')
|
||||
|
||||
|
||||
@implementer(IGroupAwarePrincipal, IExternalPrincipal)
|
||||
class Principal:
|
||||
|
||||
def __init__(self, id, data):
|
||||
|
@ -78,6 +82,10 @@ class Principal:
|
|||
def groups(self):
|
||||
return self.data.get('groups', [])
|
||||
|
||||
@property
|
||||
def extUserLink(self):
|
||||
return config.oidc_provider + '/ui/console/users/me'
|
||||
|
||||
def asDict(self):
|
||||
data = self.data.copy()
|
||||
data['id'] = self.id
|
||||
|
|
Loading…
Add table
Reference in a new issue