From cd7db6cf4edfbabc0cf92ff057e05bba67b01d80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Fra=C3=9F?= Date: Sat, 28 Sep 2024 13:22:17 +0200 Subject: [PATCH] [fix] wiki.js-roles --- roles/authelia-for-wiki_js/defaults/main.json | 4 +- .../templates/authelia-client-conf.json.j2 | 4 +- roles/wiki_js-and-nginx/defaults/main.json | 4 +- roles/wiki_js/defaults/main.json | 2 +- roles/wiki_js/files/cli.js | 83 ++++++++++++++++++- roles/wiki_js/info.md | 4 +- roles/wiki_js/tasks/main.json | 17 +++- 7 files changed, 102 insertions(+), 16 deletions(-) diff --git a/roles/authelia-for-wiki_js/defaults/main.json b/roles/authelia-for-wiki_js/defaults/main.json index 98ccb23..f6531bc 100644 --- a/roles/authelia-for-wiki_js/defaults/main.json +++ b/roles/authelia-for-wiki_js/defaults/main.json @@ -1,6 +1,6 @@ { - "var_authelia_for_wiki_js_wiki_js_url_base": "https://wiki_js.example.org", + "var_authelia_for_wiki_js_wiki_js_url_base": "https://wiki-js.example.org", "var_authelia_for_wiki_js_client_id": "wiki_js", "var_authelia_for_wiki_js_client_secret": "REPLACE_ME", - "var_authelia_for_wiki_js_uuid": "REPLACE_ME" + "var_authelia_for_wiki_js_strategy_id": "authelia" } diff --git a/roles/authelia-for-wiki_js/templates/authelia-client-conf.json.j2 b/roles/authelia-for-wiki_js/templates/authelia-client-conf.json.j2 index 2bdc8e6..8537aea 100644 --- a/roles/authelia-for-wiki_js/templates/authelia-client-conf.json.j2 +++ b/roles/authelia-for-wiki_js/templates/authelia-client-conf.json.j2 @@ -5,7 +5,7 @@ "public": false, "authorization_policy": "one_factor", "redirect_uris": [ - "{{var_authelia_for_wiki_js_wiki_js_url_base}}/login/{{var_authelia_for_wiki_js_uuid}}/calback" + "{{var_authelia_for_wiki_js_wiki_js_url_base}}/login/{{var_authelia_for_wiki_js_strategy_id}}/callback" ], "scopes": [ "openid", @@ -13,5 +13,5 @@ "profile" ], "userinfo_signed_response_alg": "none", - "token_endpoint_auth_method": "client_secret_basic" + "token_endpoint_auth_method": "client_secret_post" } diff --git a/roles/wiki_js-and-nginx/defaults/main.json b/roles/wiki_js-and-nginx/defaults/main.json index 654de80..b1dd624 100644 --- a/roles/wiki_js-and-nginx/defaults/main.json +++ b/roles/wiki_js-and-nginx/defaults/main.json @@ -1,5 +1,5 @@ { - "var_vikunja_and_nginx_domain": "vikunja.example.org", + "var_wiki_js_and_nginx_domain": "wiki-js.example.org", "var_wiki_js_and_nginx_internal_port": 5632, - "var_vikunja_and_nginx_tls_mode": "force" + "var_wiki_js_and_nginx_tls_mode": "force" } diff --git a/roles/wiki_js/defaults/main.json b/roles/wiki_js/defaults/main.json index 0a7f8a1..07a1bda 100644 --- a/roles/wiki_js/defaults/main.json +++ b/roles/wiki_js/defaults/main.json @@ -8,7 +8,7 @@ "var_wiki_js_log_level": "info", "var_wiki_js_log_format": "default", "var_wiki_js_database_kind": "sqlite", - "var_wiki_js_database_data_sqlite_path": "/var/wiki.js/data.sqlite", + "var_wiki_js_database_data_sqlite_path": "/var/wiki_js/data.sqlite", "var_wiki_js_database_data_postgresql_host": "postgresql.example.org", "var_wiki_js_database_data_postgresql_port": 5432, "var_wiki_js_database_data_postgresql_username": "wiki_js_user", diff --git a/roles/wiki_js/files/cli.js b/roles/wiki_js/files/cli.js index f488a2b..bfa6cb8 100644 --- a/roles/wiki_js/files/cli.js +++ b/roles/wiki_js/files/cli.js @@ -544,6 +544,43 @@ wiki_js.cli.api = (wiki_js.cli.api || {}); } exports.call_authentication_strategy_set = call_authentication_strategy_set; + + /** + */ + function call_theming_set( + login_token, + dark_mode, + toc_position + ) + { + wiki_js.cli.helpers.log.write( + "info", + "api_call_theming_set", + { + "dark_mode": dark_mode, + "toc_position": toc_position, + } + ); + return ( + call_generic_graphql( + "mutation ($theme: String!, $iconset: String!, $darkMode: Boolean!, $tocPosition: String, $injectCSS: String, $injectHead: String, $injectBody: String) {theming {setConfig(theme: $theme, iconset: $iconset, darkMode: $darkMode, tocPosition: $tocPosition, injectCSS: $injectCSS, injectHead: $injectHead, injectBody: $injectBody) {responseResult {succeeded errorCode slug message __typename} __typename} __typename}}", + { + "login_token": login_token, + "variables": { + "theme": "default", + "iconset": "mdi", + "darkMode": dark_mode, + "tocPosition": "left", + "injectCSS": "", + "injectHead": "", + "injectBody": "" + } + } + ) + ); + } + exports.call_theming_set = call_theming_set; + }) (wiki_js.cli.api); @@ -760,6 +797,31 @@ wiki_js.cli.logic = (wiki_js.cli.logic || {}); } exports.authentication_strategy_add = authentication_strategy_add; + + /** + */ + async function theming_set( + options = {} + ) + { + options = Object.assign( + { + "dark_mode": false, + "toc_position": "left", + }, + options + ); + const login_token = await wiki_js.cli.api.call_login_local( + ); + const result = await wiki_js.cli.api.call_theming_set( + login_token, + options.dark_mode, + options.toc_position + ); + return Promise.resolve(result); + } + exports.theming_set = theming_set; + }) (wiki_js.cli.logic); @@ -849,7 +911,7 @@ wiki_js.cli = (wiki_js.cli || {}); break; } case "init": { - if (args.positional.length < 3) { + if (args.positional.length <= 2) { return Promise.reject("SYNTAX: … init [ []]"); } else { @@ -878,7 +940,7 @@ wiki_js.cli = (wiki_js.cli || {}); break; } case "email-settings-set": { - if (args.positional.length < 7) { + if (args.positional.length <= 6) { return Promise.reject("SYNTAX: … email-settings-set "); } else { @@ -910,7 +972,7 @@ wiki_js.cli = (wiki_js.cli || {}); break; } case "auth-strat-add-oauth2": { - if (args.positional.length < 8) { + if (args.positional.length <= 7) { return Promise.reject("SYNTAX: … auth-strat-add-oauth2 "); } else { @@ -929,6 +991,21 @@ wiki_js.cli = (wiki_js.cli || {}); } break; } + case "theming-set": { + if (args.positional.length <= 2) { + return Promise.reject("SYNTAX: … theming-set []"); + } + else { + await wiki_js.cli.logic.theming_set( + { + "dark_mode": (args.positional[1] === "1"), + "toc_position": args.positional[2], + } + ); + return Promise.resolve(undefined); + } + break; + } } } } diff --git a/roles/wiki_js/info.md b/roles/wiki_js/info.md index 9801213..55e275c 100644 --- a/roles/wiki_js/info.md +++ b/roles/wiki_js/info.md @@ -11,5 +11,5 @@ ## ToDo -- Admin-Account -- E-Mail +- Locale +- Start Page diff --git a/roles/wiki_js/tasks/main.json b/roles/wiki_js/tasks/main.json index 947607a..57f4c47 100644 --- a/roles/wiki_js/tasks/main.json +++ b/roles/wiki_js/tasks/main.json @@ -36,7 +36,7 @@ "become_user": "{{var_wiki_js_user}}", "ansible.builtin.get_url": { "url": "https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz", - "dest": "/tmp/wiki_js.zip" + "dest": "/tmp/wiki_js.tar.gz" } }, { @@ -121,7 +121,7 @@ "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", - "cmd": "node cli.js -b https://{{var_wiki_js_domain}} init {{var_wiki_js_admin_email_address}} {{var_wiki_js_admin_password}} https://{{var_wiki_js_domain}} 0" + "cmd": "node cli.js -b http://127.0.0.1:{{var_wiki_js_port | string}} init {{var_wiki_js_admin_email_address}} {{var_wiki_js_admin_password}} https://{{var_wiki_js_domain}} 0" } }, { @@ -130,7 +130,16 @@ "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", - "cmd": "node cli.js -b https://{{var_wiki_js_domain}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} email-settings-set {{var_wiki_js_smtp_host}} {{var_wiki_js_smtp_port}} {{var_wiki_js_smtp_username}} {{var_wiki_js_smtp_password}} {{email_sending_sender_name}} {{email_sending_sender_email_address}}" + "cmd": "node cli.js -b http://127.0.0.1:{{var_wiki_js_port | string}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} email-settings-set {{var_wiki_js_smtp_host}} {{var_wiki_js_smtp_port}} {{var_wiki_js_smtp_username}} {{var_wiki_js_smtp_password}} {{email_sending_sender_name}} {{email_sending_sender_email_address}}" + } + }, + { + "name": "theming", + "become": true, + "become_user": "{{var_wiki_js_user}}", + "ansible.builtin.command": { + "chdir": "{{var_wiki_js_directory}}", + "cmd": "node cli.js -b http://127.0.0.1:{{var_wiki_js_port | string}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} theming-set 1 left" } }, { @@ -140,7 +149,7 @@ "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", - "cmd": "node cli.js -b https://{{var_wiki_js_domain}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} auth-strat-add-oauth2 {{var_wiki_js_authentication_data_authelia_provider_id}} {{var_wiki_js_authentication_data_authelia_provider_name}} {{var_wiki_js_authentication_data_authelia_client_id}} {{var_wiki_js_authentication_data_authelia_client_secret}} {{var_wiki_js_authentication_data_authelia_url_base}}/api/oidc/authorization {{var_wiki_js_authentication_data_authelia_url_base}}/api/oidc/token {{var_wiki_js_authentication_data_authelia_url_base}}/api/oidc/userinfo" + "cmd": "node cli.js -b http://127.0.0.1:{{var_wiki_js_port | string}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} auth-strat-add-oauth2 {{var_wiki_js_authentication_data_authelia_provider_id}} {{var_wiki_js_authentication_data_authelia_provider_name}} {{var_wiki_js_authentication_data_authelia_client_id}} {{var_wiki_js_authentication_data_authelia_client_secret}} {{var_wiki_js_authentication_data_authelia_url_base}}/api/oidc/authorization {{var_wiki_js_authentication_data_authelia_url_base}}/api/oidc/token {{var_wiki_js_authentication_data_authelia_url_base}}/api/oidc/userinfo" } } ]