diff options
| author | 2024-04-22 05:46:56 +0200 | |
|---|---|---|
| committer | 2024-04-22 05:46:56 +0200 | |
| commit | ebf6a4bd8e97e434d1502ddead4690aca3dd6d33 (patch) | |
| tree | 1c0db63d7828759c3736e75a08da60a7362c65bd /html.c | |
| parent | Updated TODO. (diff) | |
| download | snac2-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.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, | |||
| 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); |