Просмотр исходного кода

#1518 Conversations: CSRF token is deleted when draft is saved

Alex Trofimov 8 лет назад
Родитель
Сommit
608000bc8e

+ 1 - 1
modules/boonex/convos/classes/BxCnvFormEntry.php

@@ -75,7 +75,7 @@ class BxCnvFormEntry extends BxBaseModTextFormEntry
                 $this->processFiles ($CNF['FIELD_PHOTO'], $iContentId, true);
 
             // draft is saved via ajax call only, upon successfull draft saving content id is returned
-            echo $iContentId;
+            echo $iContentId . ',' . $this->getCsrfToken();
             exit;
 
         } else {

+ 5 - 2
modules/boonex/convos/template/form_submit_text.html

@@ -12,8 +12,11 @@
             var $eSubmit = $eForm.find('[type=submit]');
             var aData = { draft_save: '1' }
             var fCallback = function (data) {
-                if ('undefined' != typeof(data) && parseInt(data) > 0 ) {
-                    $('input[name=draft_id]').val(parseInt(data));
+                var aData;
+                if ('undefined' != typeof(data) && (aData = data.split(',')) && aData.length) {
+                    $('input[name=draft_id]').val(parseInt(aData[0]));
+                    if (aData.length > 1 && aData[1])
+                        $('input[name=csrf_token]').val(aData[1]);
                     $e.html('<span>' + _t('_bx_cnv_draft_saved_success') + '</span>');
                     setTimeout(function () {
                         $e.find('span').fadeOut();