From 13fdce9bbebf7ffb4b4a42288788f0a21f5041d1 Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Tue, 8 Apr 2003 08:01:53 +0000 Subject: [PATCH] Fixed problem with global self registering SVN revision: 483 --- eloglang.german | 1 + src/elogd.c | 59 ++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/eloglang.german b/eloglang.german index 54984573..3f71ed61 100755 --- a/eloglang.german +++ b/eloglang.german @@ -257,3 +257,4 @@ No Email address registered with user name "%s" = F Error sending Email = Fehler beim Versenden der Email A new password for user "%s" has been sent to %s = Ein neues Kennwort für Benutzer "%s" wurde and %s geschickt Forgot = vergessen +User "%s" registered on host "%s" = Benutzer "%s" auf Computer "%s" registriert \ No newline at end of file diff --git a/src/elogd.c b/src/elogd.c index a37c6a59..545cb233 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -6,6 +6,9 @@ Contents: Web server program for Electronic Logbook ELOG $Log$ + Revision 1.73 2003/04/08 08:01:53 midas + Fixed problem with global self registering + Revision 1.72 2003/04/07 20:38:50 midas Fixed problem with 'Forgot' @@ -6066,7 +6069,8 @@ int i, fh, size, self_register; line[i] = pl[i]; line[i] = 0; - if (line[0] == ';' || line[0] == '#' || line[0] == 0) + /* skip outcommented lines */ + if (line[0] == ';' || line[0] == '#') { pl += strlen(line); while (*pl && (*pl == '\r' || *pl == '\n')) @@ -6074,6 +6078,9 @@ int i, fh, size, self_register; continue; } + if (line[0] == 0) + break; + strcpy(str, line); if (strchr(str, ':')) *strchr(str, ':') = 0; @@ -6100,7 +6107,7 @@ int i, fh, size, self_register; lseek(fh, 0, SEEK_END); if (strlen(buf) != 0 && (buf[strlen(buf)-1] != '\r' && buf[strlen(buf)-1] != '\n')) - write(fh, "\n", 2); + write(fh, "\n", 1); if (activate) sprintf(str, "%s:%s:%s:%s:%s\n", getparam("new_user_name"), getparam("encpwd"), @@ -6198,13 +6205,21 @@ int i, fh, size, self_register; } else { - sprintf(subject, loc("User \"%s\" registered on logbook \"%s\""), getparam("new_user_name"), lbs->name); + if (lbs) + sprintf(subject, loc("User \"%s\" registered on logbook \"%s\""), getparam("new_user_name"), lbs->name); + else + sprintf(subject, loc("User \"%s\" registered on host \"%s\""), getparam("new_user_name"), host_name); + sprintf(mail_text, loc("A new ELOG user has been registered on %s"), host_name); } sprintf(mail_text+strlen(mail_text), "\r\n\r\n"); - sprintf(mail_text+strlen(mail_text), "%s : %s\r\n", loc("Logbook"), lbs->name); + if (lbs) + sprintf(mail_text+strlen(mail_text), "%s : %s\r\n", loc("Logbook"), lbs->name); + else + sprintf(mail_text+strlen(mail_text), "%s : %s\r\n", loc("Host"), host_name); + sprintf(mail_text+strlen(mail_text), "%s : %s\r\n", loc("Login name"), getparam("new_user_name")); sprintf(mail_text+strlen(mail_text), "%s : %s\r\n", loc("Full name"), getparam("new_full_name")); sprintf(mail_text+strlen(mail_text), "%s : %s\r\n", loc("Email"), getparam("new_user_email")); @@ -6354,16 +6369,21 @@ int i, fh, size; void show_config_page(LOGBOOK *lbs) { -char str[256], user[80], password[80], full_name[80], user_email[80], email_notify[256]; +char str[256], user[80], password[80], full_name[80], user_email[80], email_notify[256], logbook[256]; int i; + if (lbs) + strcpy(logbook, lbs->name); + else + strcpy(logbook, "global"); + /*---- header ----*/ show_standard_header(lbs, TRUE, loc("ELOG user config"), "."); /*---- title ----*/ - show_standard_title(lbs->name, "", 0); + show_standard_title(logbook, "", 0); /* get user */ strcpy(user, getparam("unm")); @@ -6387,7 +6407,7 @@ int i; /*---- if admin user, show user list ----*/ - if (getcfg(lbs->name, "Admin user", str) && + if (getcfg(logbook, "Admin user", str) && strstr(str, getparam("unm")) != 0) { rsprintf("\n"); @@ -6416,7 +6436,7 @@ int i; rsprintf("%s:\n", loc("Login name")); - if (get_user_line(lbs->name, user, password, full_name, user_email, email_notify) != 1) + if (get_user_line(logbook, user, password, full_name, user_email, email_notify) != 1) sprintf(str, loc("User [%s] has been deleted"), user); else strcpy(str, user); @@ -6444,8 +6464,8 @@ int i; rsprintf("\n", loc("Change password")); rsprintf("\n", loc("Remove user")); - if (!getcfg(lbs->name, "Admin user", str) || - (getcfg(lbs->name, "Admin user", str) && strstr(str, getparam("unm")) != 0)) + if (!getcfg(logbook, "Admin user", str) || + (getcfg(logbook, "Admin user", str) && strstr(str, getparam("unm")) != 0)) { rsprintf("\n", loc("New user")); rsprintf("\n", loc("Change elogd.cfg")); @@ -10874,6 +10894,8 @@ int i, n; rsprintf("\n"); + rsprintf("
ELOG V%s
", VERSION); + rsprintf("\r\n"); return FALSE; @@ -10982,7 +11004,11 @@ char str[256]; if (!save_user_config(lbs, getparam("new_user_name"), TRUE, FALSE)) return 0; - sprintf(str, "../%s/", lbs->name_enc); + if (lbs) + sprintf(str, "../%s/", lbs->name_enc); + else + sprintf(str, "."); + redirect(lbs, str); return 0; } @@ -11111,6 +11137,17 @@ FILE *f; return; } + /* check for activate */ + if (equal_ustring(command, "Activate")) + { + if (!save_user_config(NULL, getparam("new_user_name"), TRUE, TRUE)) + return; + + setparam("cfg_user", getparam("new_user_name")); + show_config_page(NULL); + return; + } + /* check for password recovery */ if (isparam("cmd") || isparam("newpwd")) {