From 97cc35f577dbe390c5c6c841e41f6a82b32aff9d Mon Sep 17 00:00:00 2001 From: default Date: Wed, 18 Sep 2024 18:34:17 +0200 Subject: Started account migration code. --- activitypub.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'activitypub.c') diff --git a/activitypub.c b/activitypub.c index c41dfbd..b15b883 100644 --- a/activitypub.c +++ b/activitypub.c @@ -1522,6 +1522,17 @@ xs_dict *msg_pong(snac *user, const char *rcpt, const char *object) } +xs_dict *msg_move(snac *user, const char *new_account) +/* creates a Move message (to move the user to new_account) */ +{ + xs_dict *msg = msg_base(user, "Move", "@dummy", user->actor, NULL, user->actor); + + msg = xs_dict_append(msg, "target", new_account); + + return msg; +} + + xs_dict *msg_question(snac *user, const char *content, xs_list *attach, const xs_list *opts, int multiple, int end_secs) /* creates a Question message */ @@ -2653,6 +2664,22 @@ int process_queue(void) } +/** account migration **/ + +int migrate_account(snac *user) +/* migrates this account to a new one (stored in the 'aka' user field) */ +{ + const char *new_account = xs_dict_get(user->config, "aka"); + + if (xs_type(new_account) != XSTYPE_STRING) { + snac_log(user, xs_fmt("Cannot migrate: 'aka' (new account) not defined")); + return 1; + } + + return 0; +} + + /** HTTP handlers */ int activitypub_get_handler(const xs_dict *req, const char *q_path, -- cgit v1.2.3