Work on fixing forms in the presence of resources and to enable cachingof images, a=chris
Work on fixing forms in the presence of resources and to enable cachingof images, a=chris
diff --git a/src/models/GroupModel.php b/src/models/GroupModel.php
index a53d27f99..0e000068c 100644
--- a/src/models/GroupModel.php
+++ b/src/models/GroupModel.php
@@ -1441,7 +1441,13 @@ class GroupModel extends Model implements MediaConstants
$parsed_page = $parser->parse($page);
if ($is_form && strstr($page, '<form ') !== false) {
return null;
- } else if ($is_form) {
+ }
+ }
+ if ($page_id = $this->getPageId($group_id, $page_name, $locale_tag)) {
+ //can only add and use resources for a page that exists
+ $parsed_page = $this->insertResourcesParsePage($group_id, $page_id,
+ $locale_tag, $parsed_page);
+ if ($is_form) {
$end_head = "END_HEAD_VARS";
$parsed_page = str_replace($end_head, $end_head .
"\n<form method='post' >\n<input type='hidden' name='" .
@@ -1454,11 +1460,6 @@ class GroupModel extends Model implements MediaConstants
"[{form-hash". L\crawlHash($page_body) . "}]",
$parsed_page);
}
- }
- if ($page_id = $this->getPageId($group_id, $page_name, $locale_tag)) {
- //can only add and use resources for a page that exists
- $parsed_page = $this->insertResourcesParsePage($group_id, $page_id,
- $locale_tag, $parsed_page);
$sql = "UPDATE GROUP_PAGE SET PAGE=?, LAST_MODIFIED=? WHERE ID = ?";
$result = $db->execute($sql, [$parsed_page, $pubdate, $page_id]);
} else {
@@ -2238,7 +2239,7 @@ class GroupModel extends Model implements MediaConstants
$resource_url .= "&". C\CSRF_TOKEN . "=" .
$csrf_token;
} else {
- $resource_url .= "&[{token}]";
+ $resource_url .= "&[{rtoken}]";
}
}
}
@@ -4162,7 +4163,7 @@ EOD;
$resource_name = urlencode($resource_name);
$sub_path = urlencode($sub_path);
$token_string = ($csrf_token) ? C\CSRF_TOKEN . "=" . $csrf_token :
- "[{token}]";
+ "[{rtoken}]";
if (C\REDIRECTS_ON) {
$url = C\SHORT_BASE_URL . "wd/resources/$token_string/$group_id/".
$page_id;
diff --git a/src/views/elements/WikiElement.php b/src/views/elements/WikiElement.php
index 63788e874..9c8dc37ab 100644
--- a/src/views/elements/WikiElement.php
+++ b/src/views/elements/WikiElement.php
@@ -2116,18 +2116,22 @@ class WikiElement extends Element implements CrawlConstants
$no_amp_csrf_token = "";
$no_right_amp_csrf_token = "";
if (!empty($data['ADMIN'])) {
- $token_string = $data[C\CSRF_TOKEN];
+ $resource_token = $data[C\CSRF_TOKEN];
if ($group_id == C\PUBLIC_GROUP_ID ||
(!empty($data["GROUP"]["GROUP_ID"]) &&
!empty($data["GROUP"]["REGISTER_TYPE"]) &&
$group_id == $data["GROUP"]["GROUP_ID"]) &&
$data["GROUP"]["REGISTER_TYPE"] == C\PUBLIC_JOIN) {
- $data[C\CSRF_TOKEN] = str_pad("", 11, "0");
+ $resource_token = str_pad("", 11, "0");
}
$no_amp_csrf_token = C\CSRF_TOKEN . "=" . $data[C\CSRF_TOKEN];
+ $resource_no_amp_csrf_token = C\CSRF_TOKEN . "=" . $resource_token;
$no_right_amp_csrf_token =
"&". $no_amp_csrf_token;
+ $resource_no_right_amp_csrf_token = "&".
+ $resource_no_amp_csrf_token;
$csrf_token = $no_right_amp_csrf_token . "&";
+ $resource_csrf_token = $resource_no_right_amp_csrf_token . "&";
}
if ($data['CONTROLLER'] == 'static') {
$address = C\SHORT_BASE_URL . "p/";
@@ -2150,6 +2154,11 @@ class WikiElement extends Element implements CrawlConstants
$pre_page);
$pre_page = preg_replace('/\[{token}\]/', $csrf_token,
$pre_page);
+ $pre_page = preg_replace('/\/\[{rtoken}\]\//',
+ (empty($no_amp_csrf_token)) ? "/-/" :
+ "/$resource_no_amp_csrf_token/" , $pre_page);
+ $pre_page = preg_replace('/\[{rtoken}\]/', $resource_csrf_token,
+ $pre_page);
$pre_page = preg_replace('/\[{just\-token}\]/', $data[C\CSRF_TOKEN],
$pre_page);
$pre_page = preg_replace('/\[{image-captcha}\]/',