From feb5baa63974746614ff0b4aae68484b6bff8ec3 Mon Sep 17 00:00:00 2001
From: Vivien Kraus
Date: Fri, 1 Oct 2021 09:36:40 +0200
Subject: client manifest: make room for client manifest extensions
In case of multiple inheritance, it is required that the ->json-data
method for the base class to allow for a next method.
---
src/scm/webid-oidc/client-manifest.scm | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
(limited to 'src/scm/webid-oidc/client-manifest.scm')
diff --git a/src/scm/webid-oidc/client-manifest.scm b/src/scm/webid-oidc/client-manifest.scm
index dd29152..2a901c2 100644
--- a/src/scm/webid-oidc/client-manifest.scm
+++ b/src/scm/webid-oidc/client-manifest.scm
@@ -253,9 +253,16 @@ approved.
"))
(check-redirect mf (redirect-uris mf) redir)))
(define-method (->json-data (mf ))
- `((@context . "https://www.w3.org/ns/solid/oidc-context.jsonld")
- (client_id . ,(uri->string (client-id mf)))
- (redirect_uris . ,(list->vector (map uri->string (redirect-uris mf))))))
+ (let ((other
+ (catch 'goops-error
+ (lambda ()
+ (next-method))
+ (lambda _
+ '()))))
+ `((@context . "https://www.w3.org/ns/solid/oidc-context.jsonld")
+ (client_id . ,(uri->string (client-id mf)))
+ (redirect_uris . ,(list->vector (map uri->string (redirect-uris mf))))
+ ,@other)))
(define-method (serve (mf ) expiration-date)
(when (equal? (client-id mf) public-client-uri)
--
cgit v1.2.3