]> code.citadel.org Git - citadel.git/blobdiff - webcit/useredit.c
* migrated SUBST stuff to hash
[citadel.git] / webcit / useredit.c
index a69787c07e5fcd2070dba2842327303d44b10495..425139a7e67e331ec3e57a3e6229cbd28043b63d 100644 (file)
@@ -24,20 +24,19 @@ void select_user_to_edit(char *message, char *preselect)
 
        output_headers(1, 1, 2, 0, 0, 0);
        wprintf("<div id=\"banner\">\n");
-       wprintf("<table class=\"useredit_banner\"><tr>"
-               "<td>"
-               "<span class=\"titlebar\">"
-               "<img src=\"static/usermanag_48x.gif\">");
+       wprintf("<img src=\"static/usermanag_48x.gif\">");
+        wprintf("<h1>");
        wprintf(_("Edit or delete users"));
-       wprintf("</span></td></tr></table>\n"
-               "</div>\n<div id=\"content\">\n"
-       );
+        wprintf("</h1>");
+        wprintf("</div>");
+
+        wprintf("<div id=\"content\" class=\"service\">\n");
 
        if (message != NULL) wprintf(message);
 
        wprintf("<table border=0 cellspacing=10><tr valign=top><td>\n");
 
-       svprintf("BOXTITLE", WCS_STRING, _("Add users"));
+       svput("BOXTITLE", WCS_STRING, _("Add users"));
        do_template("beginbox");
 
        wprintf(_("To create a new user account, enter the desired "
@@ -55,7 +54,7 @@ void select_user_to_edit(char *message, char *preselect)
 
        wprintf("</td><td>");
 
-       svprintf("BOXTITLE", WCS_STRING, _("Edit or Delete users"));
+       svput("BOXTITLE", WCS_STRING, _("Edit or Delete users"));
        do_template("beginbox");
 
        wprintf(_("To edit an existing user account, select the user "
@@ -209,7 +208,7 @@ void display_edit_address_book_entry(char *username, long usernum) {
                return;
        }
 
-       do_edit_vcard(vcard_msgnum, "1", "select_user_to_edit");
+       do_edit_vcard(vcard_msgnum, "1", "select_user_to_edit", roomname);
 }
 
 
@@ -268,24 +267,25 @@ void display_edituser(char *supplied_username, int is_new) {
        lastcall = extract_long(&buf[4], 7);
        purgedays = extract_long(&buf[4], 8);
 
-       if (!IsEmptyStr(bstr("edit_abe_button"))) {
+       if (havebstr("edit_abe_button")) {
                display_edit_address_book_entry(username, usernum);
                return;
        }
 
-       if (!IsEmptyStr(bstr("delete_button"))) {
+       if (havebstr("delete_button")) {
                delete_user(username);
                return;
        }
 
        output_headers(1, 1, 2, 0, 0, 0);
        wprintf("<div id=\"banner\">\n");
-       wprintf("<table class=\"useredit_banner\"><tr><td>");
-       wprintf("<span class=\"titlebar\">");
+       wprintf("<h1>");
        wprintf(_("Edit user account: "));
        escputs(username);
-       wprintf("</span></td></tr></table>\n");
-       wprintf("</div>\n<div id=\"content\">\n");
+        wprintf("</h1>");
+        wprintf("</div>");
+
+        wprintf("<div id=\"content\" class=\"service\">\n");
 
        wprintf("<div class=\"fix_scrollbar_bug\">"
                "<table class=\"useredit_background\"><tr><td>\n");
@@ -302,6 +302,13 @@ void display_edituser(char *supplied_username, int is_new) {
 
        wprintf("<center><table>");
 
+       wprintf("<tr><td>");
+       wprintf(_("User name:"));
+       wprintf("</td><td>"
+               "<input type=\"text\" name=\"newname\" value=\"");
+       escputs(username);
+       wprintf("\" maxlength=\"63\"></td></tr>\n");
+
        wprintf("<tr><td>");
        wprintf(_("Password"));
        wprintf("</td><td>"
@@ -398,23 +405,40 @@ void edituser(void) {
        char buf[SIZ];
        int is_new = 0;
        unsigned int flags = 0;
+       char *username;
 
-       is_new = atoi(bstr("is_new"));
+       is_new = ibstr("is_new");
+       safestrncpy(message, "", sizeof message);
+       username = bstr("username");
 
-       if (IsEmptyStr(bstr("ok_button"))) {
+       if (!havebstr("ok_button")) {
                safestrncpy(message, _("Changes were not saved."), sizeof message);
        }
+       
        else {
-               flags = atoi(bstr("flags"));
-               if (!strcasecmp(bstr("inetmail"), "yes")) {
+               flags = ibstr("flags");
+               if (yesbstr("inetmail")) {
                        flags |= US_INTERNET;
                }
                else {
                        flags &= ~US_INTERNET ;
                }
 
+               if ((havebstr("newname")) && (strcasecmp(bstr("username"), bstr("newname")))) {
+                       serv_printf("RENU %s|%s", bstr("username"), bstr("newname"));
+                       serv_getln(buf, sizeof buf);
+                       if (buf[0] != '2') {
+                               sprintf(&message[strlen(message)],
+                                       "<img src=\"static/error.gif\" align=center>"
+                                       "%s<br /><br />\n", &buf[4]);
+                       }
+                       else {
+                               username = bstr("newname");
+                       }
+               }
+
                serv_printf("ASUP %s|%s|%d|%s|%s|%s|%s|%s|%s|",
-                       bstr("username"),
+                       username,
                        bstr("password"),
                        flags,
                        bstr("timescalled"),
@@ -426,13 +450,10 @@ void edituser(void) {
                );
                serv_getln(buf, sizeof buf);
                if (buf[0] != '2') {
-                       sprintf(message,
+                       sprintf(&message[strlen(message)],
                                "<img src=\"static/error.gif\" align=center>"
                                "%s<br /><br />\n", &buf[4]);
                }
-               else {
-                       safestrncpy(message, "", sizeof message);
-               }
        }
 
        /**
@@ -440,14 +461,14 @@ void edituser(void) {
         * the vCard edit screen.
         */
        if (is_new) {
-               display_edit_address_book_entry( bstr("username"), atol(bstr("usernum")) );
+               display_edit_address_book_entry(username, lbstr("usernum") );
        }
        else {
-               select_user_to_edit(message, bstr("username"));
+               select_user_to_edit(message, username);
        }
 }
 
-/**
+/*
  * \brief burge a user 
  * \param username the name of the user to remove
  */
@@ -485,10 +506,19 @@ void create_user(void) {
        serv_getln(buf, sizeof buf);
 
        if (buf[0] == '2') {
-               sprintf(WC->ImportantMessage,
-                       _("A new user has been created."));
+               sprintf(WC->ImportantMessage, _("A new user has been created."));
                display_edituser(username, 1);
        }
+       else if (!strncmp(buf, "570", 3)) {
+               sprintf(error_message,
+                       "<img src=\"static/error.gif\" align=center>"
+                       "%s<br /><br />\n",
+                       _("You are attempting to create a new user from within Citadel "
+                       "while running in host based authentication mode.  In this mode, "
+                       "you must create new users on the host system, not within Citadel.")
+               );
+               select_user_to_edit(error_message, NULL);
+       }
        else {
                sprintf(error_message,
                        "<img src=\"static/error.gif\" align=center>"