From 0ab67447f3a0b266a7980ddd8a19463133da52ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Fra=C3=9F?= Date: Thu, 21 Aug 2025 22:45:41 +0000 Subject: [PATCH] [int] --- misc/sampledata.json | 10 +-- ...{invite_accept.ts => invitation_accept.ts} | 0 ...{invite_create.ts => invitation_create.ts} | 0 ...nvite_examine.ts => invitation_examine.ts} | 0 .../{invite_list.ts => invitation_list.ts} | 0 .../{invite_read.ts => invitation_read.ts} | 6 +- source/api/actions/member_summon.ts | 66 ------------------- source/api/functions.ts | 1 - source/repositories/member.ts | 2 +- source/services/member.ts | 38 ++++------- tools/makefile | 11 ++-- 11 files changed, 28 insertions(+), 106 deletions(-) rename source/api/actions/{invite_accept.ts => invitation_accept.ts} (100%) rename source/api/actions/{invite_create.ts => invitation_create.ts} (100%) rename source/api/actions/{invite_examine.ts => invitation_examine.ts} (100%) rename source/api/actions/{invite_list.ts => invitation_list.ts} (100%) rename source/api/actions/{invite_read.ts => invitation_read.ts} (97%) delete mode 100644 source/api/actions/member_summon.ts diff --git a/misc/sampledata.json b/misc/sampledata.json index 56ef685..c002a50 100644 --- a/misc/sampledata.json +++ b/misc/sampledata.json @@ -2,23 +2,23 @@ "groups": [ { "id": 1, - "name": "auto" + "name": "Auto" }, { "id": 2, - "name": "zug" + "name": "Zug" }, { "id": 3, - "name": "flugzeug" + "name": "Flugzeug" }, { "id": 4, - "name": "fahrrad" + "name": "Fahrrad" }, { "id": 5, - "name": "zu_fuß" + "name": "zu Fuß" } ], "admins": [ diff --git a/source/api/actions/invite_accept.ts b/source/api/actions/invitation_accept.ts similarity index 100% rename from source/api/actions/invite_accept.ts rename to source/api/actions/invitation_accept.ts diff --git a/source/api/actions/invite_create.ts b/source/api/actions/invitation_create.ts similarity index 100% rename from source/api/actions/invite_create.ts rename to source/api/actions/invitation_create.ts diff --git a/source/api/actions/invite_examine.ts b/source/api/actions/invitation_examine.ts similarity index 100% rename from source/api/actions/invite_examine.ts rename to source/api/actions/invitation_examine.ts diff --git a/source/api/actions/invite_list.ts b/source/api/actions/invitation_list.ts similarity index 100% rename from source/api/actions/invite_list.ts rename to source/api/actions/invitation_list.ts diff --git a/source/api/actions/invite_read.ts b/source/api/actions/invitation_read.ts similarity index 97% rename from source/api/actions/invite_read.ts rename to source/api/actions/invitation_read.ts index 8ba4140..07b77b7 100644 --- a/source/api/actions/invite_read.ts +++ b/source/api/actions/invitation_read.ts @@ -101,11 +101,11 @@ namespace _espe.api }, "required": [ "expiry", - "name_mode", + "name_changeable", "name_value", - "email_address_mode", + "email_address_changeable", "email_address_value", - "groups_mode", + "groups_changeable", "groups_value", ] }), diff --git a/source/api/actions/member_summon.ts b/source/api/actions/member_summon.ts deleted file mode 100644 index 20eef9e..0000000 --- a/source/api/actions/member_summon.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* -Espe | Ein schlichtes Werkzeug zur Mitglieder-Verwaltung | Backend -Copyright (C) 2024 Christian Fraß - -This program is free software: you can redistribute it and/or modify it under the terms of the GNU 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 General Public License for more details. - -You should have received a copy of the GNU General Public License along with this program. If not, see -. - */ - -namespace _espe.api -{ - - /** - */ - export function register_member_summon( - rest_subject : lib_plankton.rest_http.type_rest - ) : void - { - lib_plankton.rest_http.register< - { - url_template : string; - }, - ( - null - | - string - ) - >( - rest_subject, - lib_plankton.http.enum_method.post, - _espe.conf.get().server.path_base + "/member/summon/:id", - { - "description": () => "sendet an ein Mitglied eine E-Mail mit Aufforderung zur Registrierung", - "restriction": () => restriction_logged_in, - "execution": () => async ({"path_parameters": path_parameters, "input": input}) => { - if (input === null) { - return Promise.reject(new Error("impossible")); - } - else { - const member_id : _espe.type.member_id = parseInt(path_parameters["id"]); - const url : (null | string) = await _espe.service.member.summon(member_id, input.url_template); - - return ( - (url === null) - ? Promise.resolve({ - "status_code": 409, - "data": null, - }) - : Promise.resolve({ - "status_code": 200, - "data": url, - }) - ); - } - } - } - ); - } - -} diff --git a/source/api/functions.ts b/source/api/functions.ts index 3b910fc..d030510 100644 --- a/source/api/functions.ts +++ b/source/api/functions.ts @@ -52,7 +52,6 @@ namespace _espe.api } // member { - _espe.api.register_member_summon(rest_subject); _espe.api.register_member_list(rest_subject); _espe.api.register_member_read(rest_subject); _espe.api.register_member_modify(rest_subject); diff --git a/source/repositories/member.ts b/source/repositories/member.ts index c4cab2b..6e15a53 100644 --- a/source/repositories/member.ts +++ b/source/repositories/member.ts @@ -273,7 +273,7 @@ namespace _espe.repository.member // groups const hits : Array<{key : Array; preview : Record;}> = await get_group_chest().search( { - "expression": "group_id = $group_id", + "expression": "member_id = $member_id", "arguments": {"member_id": id} } ); diff --git a/source/services/member.ts b/source/services/member.ts index 448f19c..ae997c5 100644 --- a/source/services/member.ts +++ b/source/services/member.ts @@ -623,18 +623,14 @@ namespace _espe.service.member * @todo check validity (e.g. username characters) */ export async function export_authelia_user_data( - options : { + { + "custom_data": custom_data = null, + } : { custom_data ?: (null | Array<_espe.type.member_object>); - } = {} + } = { + } ) : Promise { - options = Object.assign( - { - "custom_data": null, - }, - options - ); - type type_entry = { disabled : boolean; displayname : string; @@ -645,11 +641,11 @@ namespace _espe.service.member return lib_plankton.call.convey( ( ( - (options.custom_data !== undefined) + (custom_data !== undefined) && - (options.custom_data !== null) + (custom_data !== null) ) - ? (options.custom_data.map((member_object, index) => ({"id": index, "object": member_object}))) + ? (custom_data.map((member_object, index) => ({"id": index, "object": member_object}))) : await dump() ), [ @@ -661,8 +657,6 @@ namespace _espe.service.member ), (x : Array) => x.filter( entry => ( - entry.object.registered - && ( (entry.object.password_image !== null) && @@ -697,20 +691,16 @@ namespace _espe.service.member /** */ export async function export_authelia_user_file( - options : { + { + "custom_data": custom_data = null, + } : { custom_data ?: (null | Array<_espe.type.member_object>); - } = {} + } = { + } ) : Promise { - options = Object.assign( - { - "custom_data": null, - }, - options - ); - const nm_yaml = require("yaml"); - return nm_yaml.stringify(await export_authelia_user_data(options)); + return nm_yaml.stringify(await export_authelia_user_data({"custom_data": custom_data})); } diff --git a/tools/makefile b/tools/makefile index 14a7d0e..a621835 100644 --- a/tools/makefile +++ b/tools/makefile @@ -65,18 +65,17 @@ ${dir_temp}/espe-core.js ${dir_temp}/espe-core.d.ts: \ ${dir_source}/api/actions/group_read.ts \ ${dir_source}/api/actions/group_add.ts \ ${dir_source}/api/actions/group_modify.ts \ - ${dir_source}/api/actions/member_summon.ts \ ${dir_source}/api/actions/member_list.ts \ ${dir_source}/api/actions/member_read.ts \ ${dir_source}/api/actions/member_modify.ts \ ${dir_source}/api/actions/member_delete.ts \ ${dir_source}/api/actions/member_password_change_initialize.ts \ ${dir_source}/api/actions/member_password_change_execute.ts \ - ${dir_source}/api/actions/invite_list.ts \ - ${dir_source}/api/actions/invite_read.ts \ - ${dir_source}/api/actions/invite_create.ts \ - ${dir_source}/api/actions/invite_examine.ts \ - ${dir_source}/api/actions/invite_accept.ts \ + ${dir_source}/api/actions/invitation_list.ts \ + ${dir_source}/api/actions/invitation_read.ts \ + ${dir_source}/api/actions/invitation_create.ts \ + ${dir_source}/api/actions/invitation_examine.ts \ + ${dir_source}/api/actions/invitation_accept.ts \ ${dir_source}/api/functions.ts \ ${dir_source}/conf.ts @ ${cmd_log} "compile | core …"