Changeset 0722fd8


Ignore:
Timestamp:
Dec 14, 2017 4:11:54 PM (2 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
52f736a
Parents:
b33551d4
Message:

SusiMail?: P-R-G from login and compose pages (ticket #1373)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    rb33551d4 r0722fd8  
    940940                        // the user hit the back button previously
    941941                        if( buttonPressed( request, SEND ) ) {
    942                                 if( sendMail( sessionObject, request ) )
     942                                if (sendMail(sessionObject, request)) {
     943                                        // If we have a reference UIDL, go back to that
     944                                        if (request.getParameter(B64UIDL) != null)
     945                                                sessionObject.state = STATE_SHOW;
     946                                        else
     947                                                sessionObject.state = STATE_LIST;
     948                                }
     949                        } else if (buttonPressed(request, CANCEL)) {
     950                                // If we have a reference UIDL, go back to that
     951                                if (request.getParameter(B64UIDL) != null)
     952                                        sessionObject.state = STATE_SHOW;
     953                                else
    943954                                        sessionObject.state = STATE_LIST;
    944                         } else if (buttonPressed( request, CANCEL ) ||
    945                             buttonPressed( request, SHOW )  ||       // A param, not a button, but we could be lost
     955                                sessionObject.sentMail = null; 
     956                                sessionObject.clearAttachments();
     957                        } else if (buttonPressed(request, SHOW)  ||       // A param, not a button, but we could be lost
    946958                            buttonPressed( request, PREVPAGE ) ||    // All these buttons are not shown but we could be lost
    947959                            buttonPressed( request, NEXTPAGE ) ||
     
    972984                /*
    973985                 * message dialog or config
     986                 * Do not go through here if we were originally in NEW (handled above)
    974987                 */
    975                 if((sessionObject.state == STATE_SHOW || sessionObject.state == STATE_CONFIG) && isPOST ) {
     988                else if ((sessionObject.state == STATE_SHOW || sessionObject.state == STATE_CONFIG) && isPOST ) {
    976989                        if( buttonPressed( request, LIST ) ) {
    977990                                sessionObject.state = STATE_LIST;
     
    15341547         */
    15351548        private static void processConfigButtons(SessionObject sessionObject, RequestWrapper request) {
     1549                if (buttonPressed(request, CONFIGURE)) {
     1550                        sessionObject.state = STATE_CONFIG;
     1551                        return;
     1552                }
     1553                // If no config text, we can't be on the config page,
     1554                // and we don't want to process the CANCEL button which
     1555                // is also on the compose page.
     1556                if (request.getParameter(CONFIG_TEXT) == null)
     1557                        return;
    15361558                if (buttonPressed(request, SAVE)) {
    15371559                        try {
     
    15891611                } else if (buttonPressed(request, CANCEL)) {
    15901612                        sessionObject.state = (sessionObject.folder != null) ? STATE_LIST : STATE_AUTH;
    1591                 } else if (buttonPressed(request, CONFIGURE)) {
    1592                         sessionObject.state = STATE_CONFIG;
    15931613                }
    15941614        }
     
    17421762                                        }
    17431763                                        int newPage = processFolderButtons(sessionObject, page, request);
    1744                                         // LIST is from SHOW page
    1745                                         if (newPage != page || buttonPressed(request, LIST)) {
     1764                                        // LIST is from SHOW page, SEND and CANCEL are from NEW page
     1765                                        // OFFLINE and LOGIN from login page
     1766                                        if (newPage != page || buttonPressed(request, LIST) ||
     1767                                            buttonPressed(request, SEND) || buttonPressed(request, CANCEL) ||
     1768                                            buttonPressed(request, LOGIN) || buttonPressed(request, OFFLINE)) {
    17461769                                                // P-R-G
    17471770                                                String q = '?' + CUR_PAGE + '=' + newPage;
     
    17701793                                if (isPOST) {
    17711794                                        String newShowUIDL = processMessageButtons(sessionObject, showUIDL, request);
    1772                                         if (newShowUIDL != null && !newShowUIDL.equals(showUIDL)) {
     1795                                        // SEND and CANCEL are from NEW page
     1796                                        if (newShowUIDL != null &&
     1797                                            (!newShowUIDL.equals(showUIDL) ||
     1798                                             buttonPressed(request, SEND) || buttonPressed(request, CANCEL))) {
    17731799                                                // P-R-G
    17741800                                                String q = '?' + B64UIDL + '=' + Base64.encode(newShowUIDL);
     
    18781904                                        "<form method=\"POST\" enctype=\"multipart/form-data\" action=\"" + myself + "\" accept-charset=\"UTF-8\">\n" +
    18791905                                        "<input type=\"hidden\" name=\"" + SUSI_NONCE + "\" value=\"" + nonce + "\">");
    1880                                 if( sessionObject.state == STATE_SHOW) {
     1906                                if( sessionObject.state == STATE_SHOW || sessionObject.state == STATE_NEW) {
     1907                                        // Store the reference UIDL on the compose form also
    18811908                                        if (showUIDL != null) {
    18821909                                                // reencode, as showUIDL may have changed, and also for XSS
Note: See TracChangeset for help on using the changeset viewer.