diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2021-09-26 10:46:27 +0200 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-10-01 12:32:20 +0200 |
commit | 8fb8ea2f9cec925ac58ef6dce9d114899eaf962e (patch) | |
tree | 64854062a9184cc957b7a70a422a609b3576fa32 | |
parent | b0d75f5b0ccb4bbe90663bb22dc92daece8c5fcd (diff) |
gui: Add a gsettings schema
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | configure.ac | 3 | ||||
-rw-r--r-- | eu.planete_kraus.Disfluid.gschema.xml.in | 96 | ||||
-rw-r--r-- | guix/vkraus/packages/disfluid.scm | 5 | ||||
-rw-r--r-- | po/POTFILES.in | 1 | ||||
-rw-r--r-- | settings.am | 20 |
6 files changed, 124 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am index 07e2128..ec7d6c1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -36,6 +36,7 @@ include src/Makefile.am include doc/Makefile.am include tests/Makefile.am include icons.am +include settings.am EXTRA_DIST += $(top_srcdir)/.version $(top_srcdir)/.release-date BUILT_SOURCES += $(top_srcdir)/.version $(top_srcdir)/.release-date diff --git a/configure.ac b/configure.ac index 379d65a..e4bc52b 100644 --- a/configure.ac +++ b/configure.ac @@ -45,8 +45,9 @@ GUILE_MODULE_REQUIRED([turtle fromrdf]) GUILE_MODULE_REQUIRED([nquads tordf]) GUILE_MODULE_REQUIRED([jsonld]) GUILE_MODULE_REQUIRED([gi]) +GLIB_GSETTINGS -AC_CONFIG_FILES([Makefile po/Makefile.in man/Makefile]) +AC_CONFIG_FILES([Makefile po/Makefile.in man/Makefile eu.planete_kraus.Disfluid.gschema.xml]) AC_CONFIG_FILES([man/reset-env], [chmod +x man/reset-env]) AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env]) AC_OUTPUT diff --git a/eu.planete_kraus.Disfluid.gschema.xml.in b/eu.planete_kraus.Disfluid.gschema.xml.in new file mode 100644 index 0000000..c84aca8 --- /dev/null +++ b/eu.planete_kraus.Disfluid.gschema.xml.in @@ -0,0 +1,96 @@ +<schemalist> + <schema id="eu.planete_kraus.Disfluid.Client" gettext-domain="@PACKAGE@"> + <key name="client-id" type="s"> + <summary>Client ID</summary> + <description> + The client application needs a public presence on the + world-wide web so that the identity provider can check it is + not spoofed; this is the public URI where to obtain + machine-readable information about the application + </description> + <default>'https://webid-oidc-demo.planete-kraus.eu/example-application#id'</default> + </key> + <key name="key-pair" type="s"> + <summary>Client key pair</summary> + <description> + When creating new accounts, use this key pair to certify them + (in the JWK format); an empty value will generate a new key + pair + </description> + <default>''</default> + </key> + <key name="redirect-uri" type="s"> + <summary>Client redirect URI</summary> + <description> + When receiving an authorization, the user’s browser is + redirected to this URI, where the user should be presented + with a code to paste into the application + </description> + <default>'https://webid-oidc-demo.planete-kraus.eu/authorized'</default> + </key> + </schema> + <schema id="eu.planete_kraus.Disfluid.Account"> + <key name="subject" type="s"> + <summary>Account webid</summary> + <description> + The accounts are tied to a particular user, through a webid + </description> + <default>''</default> + </key> + <key name="issuer" type="s"> + <summary>Identity provider</summary> + <description> + The account is certified by the server running at this URI + </description> + <default>''</default> + </key> + <key name="key-pair" type="s"> + <summary>JWK key pair</summary> + <description> + Our account is certified to be used with a key pair that the + application owns; the key is in the JWK format + </description> + <default>''</default> + </key> + <key name="id-token-header" type="s"> + <summary>Header of the identity token</summary> + <description> + How we verified the signature of the ID token; if the account + needs to be refreshed then it may be empty + </description> + <default>''</default> + </key> + <key name="id-token" type="s"> + <summary>Identity token</summary> + <description> + The identity provider sent an ID token to remind us who you + are; if the account needs to be refreshed it may be empty + </description> + <default>''</default> + </key> + <key name="access-token" type="s"> + <summary>Access token</summary> + <description> + This token is presented to the resource server when we + authentify; it is bound to a key whose possession we need to + prove at the same time; if the account needs to be refreshed + it may be empty + </description> + <default>''</default> + </key> + <key name="refresh-token" type="s"> + <summary>Refresh token</summary> + <description> + When the account expires, we present this token to the + identity provider to refresh it; it is also bound to the key + pair; if the user did not give us refresh permission it may be + empty + </description> + <default>''</default> + </key> + </schema> + <schema id="eu.planete_kraus.Disfluid" path="/eu/planete_kraus/Disfluid/"> + <child name="client" schema="eu.planete_kraus.Disfluid.Client" /> + <child name="main-account" schema="eu.planete_kraus.Disfluid.Account" /> + </schema> +</schemalist> diff --git a/guix/vkraus/packages/disfluid.scm b/guix/vkraus/packages/disfluid.scm index f69248a..e26f604 100644 --- a/guix/vkraus/packages/disfluid.scm +++ b/guix/vkraus/packages/disfluid.scm @@ -23,6 +23,7 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages glib) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages nettle) @@ -118,7 +119,9 @@ ("gettext" ,gnu-gettext) ("coreutils" ,coreutils) ;; for link (wrap-program) ("help2man" ,help2man) - ("which" ,which))) + ("which" ,which) + ("glib" ,glib) + ("glib" ,glib "bin"))) (inputs `(("guile" ,guile-3.0) ("guile-json" ,guile-json-4) ("guile-rdf" ,guile-rdf) diff --git a/po/POTFILES.in b/po/POTFILES.in index ae71785..a1bbceb 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -15,6 +15,7 @@ # along with this program. If not, see <https://www.gnu.org/licenses/>. # List of source files which contain translatable strings. +eu.planete_kraus.Disfluid.gschema.xml.in src/hash/libwebidoidc-hash.c src/jwk/generate-key.c src/jwk/libwebidoidc-jwk.c diff --git a/settings.am b/settings.am new file mode 100644 index 0000000..06642db --- /dev/null +++ b/settings.am @@ -0,0 +1,20 @@ +# disfluid, implementation of the Solid specification +# Copyright (C) 2021 Vivien Kraus + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +gsettings_SCHEMAS = %reldir%/eu.planete_kraus.Disfluid.gschema.xml +EXTRA_DIST += %reldir%/eu.planete_kraus.Disfluid.gschema.xml.in + +@GSETTINGS_RULES@ |