/* * /logout/ * * HTML is in templates/logout.tmpl * * Clean up a users session. Remove their entry from the sessions db and * set the session_id browser cookie to expired. */ static void logout(void) { TCTDB *tdb; TDBQRY *qry; TCLIST *res; int rsize; const char *rbuf; tdb = tctdbnew(); tctdbopen(tdb, SESSION_DB, TDBOWRITER); qry = tctdbqrynew(tdb); tctdbqryaddcond(qry, "session_id", TDBQCSTREQ, user_session.session_id); res = tctdbqrysearch(qry); rbuf = tclistval(res, 0, &rsize); tctdbout(tdb, rbuf, strlen(rbuf)); tclistdel(res); tctdbqrydel(qry); tctdbclose(tdb); tctdbdel(tdb); /* Immediately expire the session cookies */ printf("Set-Cookie: session_id=deleted; " "expires=Thu, 01 Jan 1970 00:00:01 GMT; " "path=/; httponly\r\n"); send_template("templates/logout.tmpl", NULL, NULL); }
moduser() { if (!( AdminType==DOMAIN_ADMIN || (AdminType==USER_ADMIN && strcmp(ActionUser,Username)==0))){ sprintf(StatusMessage,"%s", get_html_text("142")); vclose(); exit(0); } send_template( "mod_user.html" ); }
adduser() { count_users(); load_limits(); if ( AdminType!=DOMAIN_ADMIN ) { sprintf(StatusMessage,"%s", get_html_text("142")); vclose(); exit(0); } if ( MaxPopAccounts != -1 && CurPopAccounts >= MaxPopAccounts ) { sprintf(StatusMessage, "%s %d\n", get_html_text("199"), MaxPopAccounts); show_menu(); vclose(); exit(0); } send_template( "add_user.html" ); }
/* * /login/ * * HTML is in templates/login.tmpl * * Display the login screen. */ static void login(void) { int ret = 1; unsigned long long sid; TMPL_varlist *vl = NULL; if (qvars) { ret = check_auth(); if (ret == 0) { sid = log_login(); create_session(sid); printf("Location: //\r\n\r\n"); return; /* Successful login */ } } if (ret == -1) vl = add_html_var(vl, "logged_in", "no"); if (ret == -2) vl = add_html_var(vl, "enabled", "no"); send_template("templates/login.tmpl", vl, NULL); TMPL_free_varlist(vl); }
setremotecatchall() { send_template("setremotecatchall.html"); }
deluser() { send_template( "del_user_confirm.html" ); }
int show_users(char *Username, char *Domain, time_t Mytime) { if (MaxPopAccounts == 0) return 0; send_template("show_users.html"); }