Saving vCards now requires the API caller to specify the room
authorArt Cancro <ajc@citadel.org>
Tue, 2 Oct 2007 21:58:51 +0000 (21:58 +0000)
committerArt Cancro <ajc@citadel.org>
Tue, 2 Oct 2007 21:58:51 +0000 (21:58 +0000)
name.  This name is passed along through the form as a hidden
field, and prevents the vCard from being saved in the wrong room.

webcit/auth.c
webcit/messages.c
webcit/useredit.c
webcit/vcard_edit.c
webcit/webcit.h

index 505d8ccb852fe6faf17e8850e959ee5c6e9b85ff..cc48386bc8453fbb9083a73b252dda42f48566b9 100644 (file)
@@ -445,10 +445,10 @@ void display_reg(int during_login)
        }
 
        if (during_login) {
-               do_edit_vcard(vcard_msgnum, "1", "do_welcome");
+               do_edit_vcard(vcard_msgnum, "1", "do_welcome", USERCONFIGROOM);
        }
        else {
-               do_edit_vcard(vcard_msgnum, "1", "display_main_menu");
+               do_edit_vcard(vcard_msgnum, "1", "display_main_menu", USERCONFIGROOM);
        }
 
 }
index abe91b05e77848873b194289ddebbca617a6d6da..a173d19810b471b636b1a7c981926cc503ea1ada 100644 (file)
@@ -3008,7 +3008,7 @@ void display_enter(void)
         * message" command really means "add new entry."
         */
        if (WC->wc_default_view == VIEW_ADDRESSBOOK) {
-               do_edit_vcard(-1, "", "");
+               do_edit_vcard(-1, "", "", WC->wc_roomname);
                return;
        }
 
index 16f4c48f72c5324a028c70ad83677e67be428786..39f42f760cdb10f855c63cd530ea61ecc052e362 100644 (file)
@@ -208,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);
 }
 
 
index d7edb879f45756996bf33819dd928b9b366d4890..52cea9bd0d12992a3f221d47eee5c5a51d82b5e0 100644 (file)
@@ -18,7 +18,7 @@
  * \param partnum what???
  * \param return_to where to go back in the browser after edit ????
  */
-void do_edit_vcard(long msgnum, char *partnum, char *return_to) {
+void do_edit_vcard(long msgnum, char *partnum, char *return_to, char *force_room) {
        char buf[SIZ];
        char *serialized_vcard = NULL;
        size_t total_len = 0;
@@ -181,6 +181,13 @@ void do_edit_vcard(long msgnum, char *partnum, char *return_to) {
 
        wprintf("<form method=\"POST\" action=\"submit_vcard\">\n");
        wprintf("<input type=\"hidden\" name=\"nonce\" value=\"%ld\">\n", WC->nonce);
+
+       if (force_room != NULL) {
+               wprintf("<input type=\"hidden\" name=\"force_room\" value=\"");
+               escputs(force_room);
+               wprintf("\">\n");
+       }
+
        wprintf("<div class=\"fix_scrollbar_bug\">"
                "<table class=\"vcard_edit_background\"><tr><td>\n");
 
@@ -344,7 +351,7 @@ void edit_vcard(void) {
 
        msgnum = atol(bstr("msgnum"));
        partnum = bstr("partnum");
-       do_edit_vcard(msgnum, partnum, "");
+       do_edit_vcard(msgnum, partnum, "", NULL);
 }
 
 
@@ -363,6 +370,10 @@ void submit_vcard(void) {
                return;
        }
 
+       if (!IsEmptyStr(bstr("force_room"))) {
+               gotoroom(bstr("force_room"));
+       }
+
        sprintf(buf, "ENT0 1|||4||");
        serv_puts(buf);
        serv_getln(buf, sizeof buf);
index 5b7f2778e02b86992563342150b19912b1bddc08..96367bea063404bd472794005303e5032ca8f9ee 100644 (file)
@@ -593,7 +593,7 @@ long extract_token(char *dest, const char *source, int parmnum, char separator,
 void remove_token(char *source, int parmnum, char separator);
 char *load_mimepart(long msgnum, char *partnum);
 int pattern2(char *search, char *patn);
-void do_edit_vcard(long, char *, char *);
+void do_edit_vcard(long, char *, char *, char *);
 void edit_vcard(void);
 void submit_vcard(void);
 void striplt(char *);