From: Nishi Date: Wed, 21 Aug 2024 00:44:17 +0000 (+0000) Subject: adding login message X-Git-Url: https://git.chaotic.ninja/gitweb/nishi/?a=commitdiff_plain;h=6b8201cea01437c41e642ddd063ccb5c8a703d70;p=repoview.git adding login message git-svn-id: file:///raid/svn-personal/repoview/trunk@6 7e8b2a19-8934-dd40-8cb3-db22cdd5a80f --- diff --git a/CGI/auth/cookie.c b/CGI/auth/cookie.c index c8240a6..45b9548 100644 --- a/CGI/auth/cookie.c +++ b/CGI/auth/cookie.c @@ -73,7 +73,11 @@ char* rv_logged_in(void) { int i; for(i = 0; cookie_entries[i] != NULL; i++) { if(strcmp(cookie_entries[i]->key, "token") == 0) { - return rv_who_has_token(cookie_entries[i]->value); + char* who = rv_who_has_token(cookie_entries[i]->value); + if(who == NULL) { + printf("Set-Cookie: token=; HttpOnly; Expires=0; SameSite=Strict\r\n"); + } + return who; break; } } @@ -82,7 +86,7 @@ char* rv_logged_in(void) { void rv_save_login(const char* username) { char* token = rv_new_token(username); - printf("Set-Cookie: token=%s; HttpOnly\r\n", token); + printf("Set-Cookie: token=%s; HttpOnly; SameSite=Strict\r\n", token); free(token); } diff --git a/CGI/main.c b/CGI/main.c index 39da12f..8cf9f8e 100644 --- a/CGI/main.c +++ b/CGI/main.c @@ -40,7 +40,6 @@ int main() { printf("Content-Type: text/html\r\n"); printf("\r\n"); rv_print_page(); - rv_logged_in(); rv_load_query('Q'); rv_free_query(); rv_load_query('P'); diff --git a/CGI/page.c b/CGI/page.c index c938e75..5e18532 100644 --- a/CGI/page.c +++ b/CGI/page.c @@ -4,6 +4,7 @@ #include "rv_query.h" #include "rv_util.h" +#include "rv_auth.h" #include "../config.h" @@ -11,6 +12,7 @@ #include char* buffer; +char* user; void render_page(void); @@ -23,6 +25,7 @@ void add_data(char** data, const char* txt) { void rv_process_page(void) { buffer = malloc(1); buffer[0] = 0; + user = rv_logged_in(); render_page(); } diff --git a/CGI/paper.png b/CGI/paper.png new file mode 100644 index 0000000..06dbaa1 Binary files /dev/null and b/CGI/paper.png differ diff --git a/CGI/theme/modern.c b/CGI/theme/modern.c index fc96c01..0ed184a 100644 --- a/CGI/theme/modern.c +++ b/CGI/theme/modern.c @@ -19,6 +19,7 @@ void render_stuff(); char* title = NULL; char* desc = NULL; char* page = NULL; +extern char* user; void render_page(void) { rv_load_query('Q'); @@ -63,6 +64,8 @@ void render_page(void) { } else { if(rv_has_user(rv_get_query("username"))) { if(rv_check_password(rv_get_query("username"), rv_get_query("password"))) { + if(user != NULL) free(user); + user = rv_strdup(rv_get_query("username")); add_data(&page, "Welcome back.\n"); rv_save_login(rv_get_query("username")); } else { @@ -72,6 +75,14 @@ void render_page(void) { add_data(&page, "User does not exist."); } } + } else if(strcmp(query, "mypage") == 0) { + title = rv_strdup("My Page"); + desc = rv_strdup("You manage your information here."); + if(user == NULL) { + page = rv_strdup("It looks like you are not logged in.
Want to log in?\n"); + } } if(title == NULL) title = rv_strdup(""); @@ -109,7 +120,6 @@ char* escape(const char* str) { } void render_stuff(void) { - char* user = rv_logged_in(); char* escaped; add_data(&buffer, "\n"); add_data(&buffer, "\n"); @@ -147,6 +157,9 @@ void render_stuff(void) { add_data(&buffer, "}\n"); add_data(&buffer, "#nav {\n"); add_data(&buffer, " background-color: white;\n"); + add_data(&buffer, " background-image: url('"); + add_data(&buffer, INSTANCE_NAVBAR); + add_data(&buffer, "');\n"); add_data(&buffer, " height: 44px;\n"); add_data(&buffer, " padding: 8px;\n"); add_data(&buffer, " padding-left: 32px;\n"); @@ -232,6 +245,13 @@ void render_stuff(void) { add_data(&buffer, "/?page=login\">Login\n"); add_data(&buffer, " \n"); } + if(user != NULL) { + add_data(&buffer, "
You have logged in as "); + add_data(&buffer, user); + add_data(&buffer, "
"); + } add_data(&buffer, " \n"); add_data(&buffer, "
\n"); add_data(&buffer, "
\n"); diff --git a/CGI/theme/optimized.c b/CGI/theme/optimized.c deleted file mode 100644 index 51622dc..0000000 --- a/CGI/theme/optimized.c +++ /dev/null @@ -1,6 +0,0 @@ -/* $Id$ */ - -extern char* buffer; -void add_data(char** data, const char* txt); - -void render_page(void) {} diff --git a/config.h.tmpl b/config.h.tmpl index 7e1cf05..2b89ecd 100644 --- a/config.h.tmpl +++ b/config.h.tmpl @@ -19,8 +19,13 @@ /* Instance Logo. */ #define INSTANCE_LOGO "/logo.png" +/* Image to be put in the navbar, for the modern theme. 940x60 should be good. */ +#define INSTANCE_NAVBAR "/paper.png" + +/* Navbar repeat, for the modern theme. */ +#define INSTANCE_REPEAT "resize-x" + /* Theme. */ -#undef USE_OPTIMIZED #define USE_MODERN /* Database type. */ diff --git a/objs.c b/objs.c index afeb2f3..ec4aee4 100644 --- a/objs.c +++ b/objs.c @@ -11,8 +11,6 @@ int main() { printf(" "); #if defined(USE_MODERN) printf("theme/modern.o"); -#elif defined(USE_OPTIMIZED) - printf("theme/optimized.o"); #endif printf(" "); #if defined(USE_COOKIE)