summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2024-05-31 17:51:33 +0200
committerGravatar default2024-05-31 17:51:33 +0200
commit6d29cfd63d744d91fa549bbd89ed2bf51c0c4760 (patch)
tree631c6bb402a76823bbc5f4c22afdefe5463fc9af
parentAdd class .snac-announcement into utils. (diff)
downloadpenes-snac2-6d29cfd63d744d91fa549bbd89ed2bf51c0c4760.tar.gz
penes-snac2-6d29cfd63d744d91fa549bbd89ed2bf51c0c4760.tar.xz
penes-snac2-6d29cfd63d744d91fa549bbd89ed2bf51c0c4760.zip
Don't propagate the user change after dismissing the announcement.
-rw-r--r--data.c11
-rw-r--r--html.c4
-rw-r--r--mastoapi.c2
-rw-r--r--snac.h2
4 files changed, 11 insertions, 8 deletions
diff --git a/data.c b/data.c
index b25ddf8..aa4be7c 100644
--- a/data.c
+++ b/data.c
@@ -303,7 +303,7 @@ int user_open_by_md5(snac *snac, const char *md5)
303 return 0; 303 return 0;
304} 304}
305 305
306int user_persist(snac *snac) 306int user_persist(snac *snac, int publish)
307/* store user */ 307/* store user */
308{ 308{
309 xs *fn = xs_fmt("%s/user.json", snac->basedir); 309 xs *fn = xs_fmt("%s/user.json", snac->basedir);
@@ -321,10 +321,13 @@ int user_persist(snac *snac)
321 321
322 history_del(snac, "timeline.html_"); 322 history_del(snac, "timeline.html_");
323 323
324 xs *a_msg = msg_actor(snac); 324 if (publish) {
325 xs *u_msg = msg_update(snac, a_msg); 325 xs *a_msg = msg_actor(snac);
326 xs *u_msg = msg_update(snac, a_msg);
327
328 enqueue_message(snac, u_msg);
329 }
326 330
327 enqueue_message(snac, u_msg);
328 enqueue_verify_links(snac); 331 enqueue_verify_links(snac);
329 332
330 return 0; 333 return 0;
diff --git a/html.c b/html.c
index ff12a95..84cbcc1 100644
--- a/html.c
+++ b/html.c
@@ -2633,7 +2633,7 @@ int html_get_handler(const xs_dict *req, const char *q_path,
2633 xs *timestamp = xs_number_new(ts); 2633 xs *timestamp = xs_number_new(ts);
2634 srv_log(xs_fmt("user dismissed announcements until %d", ts)); 2634 srv_log(xs_fmt("user dismissed announcements until %d", ts));
2635 snac.config = xs_dict_set(snac.config, "last_announcement", timestamp); 2635 snac.config = xs_dict_set(snac.config, "last_announcement", timestamp);
2636 user_persist(&snac); 2636 user_persist(&snac, 0);
2637 } 2637 }
2638 } 2638 }
2639 2639
@@ -3380,7 +3380,7 @@ int html_post_handler(const xs_dict *req, const char *q_path,
3380 snac.config = xs_dict_set(snac.config, "passwd", pw); 3380 snac.config = xs_dict_set(snac.config, "passwd", pw);
3381 } 3381 }
3382 3382
3383 user_persist(&snac); 3383 user_persist(&snac, 1);
3384 3384
3385 status = HTTP_STATUS_SEE_OTHER; 3385 status = HTTP_STATUS_SEE_OTHER;
3386 } 3386 }
diff --git a/mastoapi.c b/mastoapi.c
index db45919..3b51906 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -3319,7 +3319,7 @@ int mastoapi_patch_handler(const xs_dict *req, const char *q_path,
3319 } 3319 }
3320 3320
3321 /* Persist profile */ 3321 /* Persist profile */
3322 if (user_persist(&snac) == 0) 3322 if (user_persist(&snac, 1) == 0)
3323 credentials_get(body, ctype, &status, snac); 3323 credentials_get(body, ctype, &status, snac);
3324 else 3324 else
3325 status = HTTP_STATUS_INTERNAL_SERVER_ERROR; 3325 status = HTTP_STATUS_INTERNAL_SERVER_ERROR;
diff --git a/snac.h b/snac.h
index 8193ca5..c39ea58 100644
--- a/snac.h
+++ b/snac.h
@@ -76,7 +76,7 @@ int user_open(snac *snac, const char *uid);
76void user_free(snac *snac); 76void user_free(snac *snac);
77xs_list *user_list(void); 77xs_list *user_list(void);
78int user_open_by_md5(snac *snac, const char *md5); 78int user_open_by_md5(snac *snac, const char *md5);
79int user_persist(snac *snac); 79int user_persist(snac *snac, int publish);
80 80
81int validate_uid(const char *uid); 81int validate_uid(const char *uid);
82 82