diff options
author | default <nobody@localhost> | 2024-04-22 05:46:56 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2024-04-22 05:46:56 +0200 |
commit | ebf6a4bd8e97e434d1502ddead4690aca3dd6d33 (patch) | |
tree | 1c0db63d7828759c3736e75a08da60a7362c65bd /html.c | |
parent | 62cc167c5f9205bf3a758a40cd7b22b9a54164be (diff) |
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.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -2586,6 +2586,25 @@ int html_get_handler(const xs_dict *req, const char *q_path, } } else + if (xs_startswith(p_path, "admin/p/")) { /** unique post by md5 **/ + if (!login(&snac, req)) { + *body = xs_dup(uid); + status = 401; + } + else { + xs *l = xs_split(p_path, "/"); + char *md5 = xs_list_get(l, -1); + + if (md5 && *md5 && timeline_here(&snac, md5)) { + xs *list = xs_list_append(xs_list_new(), md5); + + *body = html_timeline(&snac, list, 0, 0, 0, 0, NULL, "/admin", 1); + *b_size = strlen(*body); + status = 200; + } + } + } + else if (strcmp(p_path, "people") == 0) { /** the list of people **/ if (!login(&snac, req)) { *body = xs_dup(uid); |