summaryrefslogtreecommitdiff
path: root/html.c
diff options
context:
space:
mode:
authorGravatar default2024-04-22 05:46:56 +0200
committerGravatar default2024-04-22 05:46:56 +0200
commitebf6a4bd8e97e434d1502ddead4690aca3dd6d33 (patch)
tree1c0db63d7828759c3736e75a08da60a7362c65bd /html.c
parentUpdated TODO. (diff)
downloadsnac2-ebf6a4bd8e97e434d1502ddead4690aca3dd6d33.tar.gz
snac2-ebf6a4bd8e97e434d1502ddead4690aca3dd6d33.tar.xz
snac2-ebf6a4bd8e97e434d1502ddead4690aca3dd6d33.zip
URLs like {srv_baseurl}/{user}/admin/p/{md5} are valid.
But only if {md5} is in the user's timeline.
Diffstat (limited to 'html.c')
-rw-r--r--html.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/html.c b/html.c
index d52ef03..fdc0975 100644
--- a/html.c
+++ b/html.c
@@ -2586,6 +2586,25 @@ int html_get_handler(const xs_dict *req, const char *q_path,
2586 } 2586 }
2587 } 2587 }
2588 else 2588 else
2589 if (xs_startswith(p_path, "admin/p/")) { /** unique post by md5 **/
2590 if (!login(&snac, req)) {
2591 *body = xs_dup(uid);
2592 status = 401;
2593 }
2594 else {
2595 xs *l = xs_split(p_path, "/");
2596 char *md5 = xs_list_get(l, -1);
2597
2598 if (md5 && *md5 && timeline_here(&snac, md5)) {
2599 xs *list = xs_list_append(xs_list_new(), md5);
2600
2601 *body = html_timeline(&snac, list, 0, 0, 0, 0, NULL, "/admin", 1);
2602 *b_size = strlen(*body);
2603 status = 200;
2604 }
2605 }
2606 }
2607 else
2589 if (strcmp(p_path, "people") == 0) { /** the list of people **/ 2608 if (strcmp(p_path, "people") == 0) { /** the list of people **/
2590 if (!login(&snac, req)) { 2609 if (!login(&snac, req)) {
2591 *body = xs_dup(uid); 2610 *body = xs_dup(uid);