Rolle | Wiki.js #1

Merged
roydfalk merged 11 commits from dev-wiki.js into main 2024-10-11 09:25:21 +02:00
7 changed files with 102 additions and 16 deletions
Showing only changes of commit cd7db6cf4e - Show all commits

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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",

View file

@ -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 <admin-email-address> <admin-password> [<site-url> [<allow-telemetry>]]");
}
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 <smtp-host> <smtp-port> <smtp-username> <smtp-password> <sender-name> <sender-email-address>");
}
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 <strategy-key> <strategy-name> <strategy-client-id> <strategy-client-secret> <strategy-authorization-url> <strategy-token-url> <strategy-user-info-url>");
}
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 <dark-mode> [<toc-position>]");
}
else {
await wiki_js.cli.logic.theming_set(
{
"dark_mode": (args.positional[1] === "1"),
"toc_position": args.positional[2],
}
);
return Promise.resolve(undefined);
}
break;
}
}
}
}

View file

@ -11,5 +11,5 @@
## ToDo
- Admin-Account
- E-Mail
- Locale
- Start Page

View file

@ -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"
}
}
]