summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/errors.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2020-12-06 19:43:34 +0100
committerVivien Kraus <vivien@planete-kraus.eu>2021-06-19 15:44:36 +0200
commit02a3091aa2ff9d32cad4ffe6eeffabee5e78ca15 (patch)
tree9214ecb995e4271fe1d27eb38d0898b91765c69c /src/scm/webid-oidc/errors.scm
parent25ef58cf81a08ab5f8273fd0480ca96c9d3158b5 (diff)
Implement Solid oidc provider confirmation
Diffstat (limited to 'src/scm/webid-oidc/errors.scm')
-rw-r--r--src/scm/webid-oidc/errors.scm13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/scm/webid-oidc/errors.scm b/src/scm/webid-oidc/errors.scm
index 4b4ba2d..4a62abb 100644
--- a/src/scm/webid-oidc/errors.scm
+++ b/src/scm/webid-oidc/errors.scm
@@ -818,6 +818,16 @@
(raise-exception
((record-constructor &no-refresh-token))))
+(define-public &unconfirmed-provider
+ (make-exception-type
+ '&unconfirmed-provider
+ &external-error
+ '(subject provider)))
+
+(define-public (raise-unconfirmed-provider subject provider)
+ (raise-exception
+ ((record-constructor &unconfirmed-provider) subject provider)))
+
(define*-public (error->str err #:key (max-depth #f))
(if (record? err)
(let* ((type (record-type-descriptor err))
@@ -1138,6 +1148,9 @@
((&unknown-client-locale)
(format #f (G_ "I couldn’t set the locale to ~s as an approximation of the client locale ~s")
(get 'c-locale) (get 'web-locale)))
+ ((&unconfirmed-provider)
+ (format #f (G_ "~s does not admit ~s as an identity provider")
+ (get 'subject) (get 'provider)))
((&compound-exception)
(let ((components (get 'components)))
(if (null? components)