aboutsummaryrefslogtreecommitdiff
path: root/activitypub.c
diff options
context:
space:
mode:
authordefault <nobody@localhost>2024-09-18 18:34:17 +0200
committerdefault <nobody@localhost>2024-09-18 18:34:17 +0200
commit97cc35f577dbe390c5c6c841e41f6a82b32aff9d (patch)
tree82c34bfcb1fa4a1adc1e3d4eab92d53d24ffc1f3 /activitypub.c
parent00716d187163254cb3fce946316072c28b7bc949 (diff)
Started account migration code.
Diffstat (limited to 'activitypub.c')
-rw-r--r--activitypub.c27
1 files changed, 27 insertions, 0 deletions
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,