From 78fe09d242691b976c9f1c1dd8141a61433b097b Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Tue, 1 Mar 2011 11:04:25 +0000 Subject: [PATCH] Automatically log in after self registration SVN revision: 2392 --- src/elogd.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/elogd.c b/src/elogd.c index e91b38e7..d12b3246 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -12664,7 +12664,7 @@ int save_user_config(LOGBOOK * lbs, char *user, BOOL new_user) { char file_name[256], str[256], *pl, user_enc[256], new_pwd[80], new_pwd2[80], smtp_host[256], email_addr[256], mail_from[256], mail_from_name[256], subject[256], mail_text[2000], str2[256], - admin_user[80], url[256], error[2000]; + admin_user[80], url[256], error[2000], sid[32]; int i, self_register, code, first_user; PMXML_NODE node, subnode, npwd; @@ -13031,6 +13031,35 @@ int save_user_config(LOGBOOK * lbs, char *user, BOOL new_user) } } + /* log in user automatically */ + if (new_user && self_register == 1 || self_register == 2) { + + if (isparam("new_user_name")) { + /* get a new session ID */ + sid_new(lbs, getparam("new_user_name"), (char *) inet_ntoa(rem_addr), sid); + + + if (lbs) + sprintf(str, "../%s/", lbs->name_enc); + else + sprintf(str, "."); + if (isparam("new_user_name")) { + sprintf(str + strlen(str), "?cmd=%s&cfg_user=", loc("Config")); + strlcat(str, getparam("new_user_name"), sizeof(str)); + } else if (isparam("cfg_user")) { + sprintf(str + strlen(str), "?cmd=%s&cfg_user=", loc("Config")); + strlcat(str, getparam("cfg_user"), sizeof(str)); + } else if (getcfg(lbs->name, "password file", str2, sizeof(str2))) + sprintf(str + strlen(str), "?cmd=%s", loc("Config")); + setparam("redir", str); + + /* set SID cookie */ + set_sid_cookie(lbs, sid); + + return 0; + } + } + return 1; }