Sanitise class name in JSON formatter

This commit is contained in:
Andreas Piening 2018-04-04 14:54:00 +12:00
parent d45a407185
commit 9cfe4f343d

View File

@ -108,11 +108,11 @@ class JSONDataFormatter extends DataFormatter
} }
$fieldName = $relName . 'ID'; $fieldName = $relName . 'ID';
if ($obj->$fieldName) { $rel = $this->config()->api_base;
$href = Director::absoluteURL($this->config()->api_base . "$relClass/" . $obj->$fieldName); $rel .= $obj->$fieldName
} else { ? $this->sanitiseClassName($relClass) . '/' . $obj->$fieldName
$href = Director::absoluteURL($this->config()->api_base . "$className/$id/$relName"); : $this->sanitiseClassName($className) . "/$id/$relName";
} $href = Director::absoluteURL($rel);
$serobj->$relName = ArrayData::array_to_object(array( $serobj->$relName = ArrayData::array_to_object(array(
"className" => $relClass, "className" => $relClass,
"href" => "$href.json", "href" => "$href.json",
@ -140,8 +140,8 @@ class JSONDataFormatter extends DataFormatter
$innerParts = array(); $innerParts = array();
$items = $obj->$relName(); $items = $obj->$relName();
foreach ($items as $item) { foreach ($items as $item) {
//$href = Director::absoluteURL($this->config()->api_base . "$className/$id/$relName/$item->ID"); $rel = $this->config()->api_base . $this->sanitiseClassName($relClass) . "/$item->ID";
$href = Director::absoluteURL($this->config()->api_base . "$relClass/$item->ID"); $href = Director::absoluteURL($rel);
$innerParts[] = ArrayData::array_to_object(array( $innerParts[] = ArrayData::array_to_object(array(
"className" => $relClass, "className" => $relClass,
"href" => "$href.json", "href" => "$href.json",