From 90b4c2ce98cdd0990718f84a25fd907310b34b69 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Tue, 23 Jun 2009 03:29:07 +0000 Subject: [PATCH] * do_edit_vcard() accept arbitrary url's for return_to. Doesn't work yet because the string is too escaped. --- webcit/auth.c | 2 +- webcit/vcard_edit.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/webcit/auth.c b/webcit/auth.c index 18f60e269..1ac3921c4 100644 --- a/webcit/auth.c +++ b/webcit/auth.c @@ -777,7 +777,7 @@ void display_reg(int during_login) else { StrBuf *ReturnTo; ReturnTo = NewStrBufPlain(HKEY("display_main_menu?gotofirst=")); - StrBufUrlescAppend(ReturnTo, WC->wc_roomname, NULL); + StrBufAppendBuf(ReturnTo, WC->wc_roomname, 0); lprintf(9, "wc_roomname: %s\n", ChrPtr(WC->wc_roomname)); lprintf(9, " ReturnTo: %s\n", ChrPtr(ReturnTo)); do_edit_vcard(vcard_msgnum, "1", VCMsg, VCAtt, ChrPtr(ReturnTo), USERCONFIGROOM); diff --git a/webcit/vcard_edit.c b/webcit/vcard_edit.c index 320d4322f..4b3940fb2 100644 --- a/webcit/vcard_edit.c +++ b/webcit/vcard_edit.c @@ -1091,13 +1091,16 @@ void submit_vcard(void) { StrBufAppendBufPlain(WCC->ImportantMsg, _("Aborting."), -1, 0); - /// todo: call the master dispatcher again... + if (!strcmp(bstr("return_to"), "select_user_to_edit")) { select_user_to_edit(NULL); } else if (!strcmp(bstr("return_to"), "do_welcome")) { do_welcome(); } + else if (!IsEmptyStr(bstr("return_to"))) { + http_redirect(bstr("return_to")); + } else { readloop(readnew); } @@ -1187,6 +1190,9 @@ void submit_vcard(void) { else if (!strcmp(bstr("return_to"), "do_welcome")) { do_welcome(); } + else if (!IsEmptyStr(bstr("return_to"))) { + http_redirect(bstr("return_to")); + } else { readloop(readnew); } -- 2.30.2