mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-22 01:58:47 +02:00
N°4356 Fix portal attachment download
Was opening the attachment directly in the browser (HTTP header Content-Disposition set to 'inline' instead of 'download')
This commit is contained in:
@@ -32,12 +32,37 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
abstract class AbstractController extends Controller
|
||||
{
|
||||
/**
|
||||
* Unlike {@see Controller::redirectToRoute()}, this method directly calls the route controller without creating a redirection client side
|
||||
*
|
||||
* Default route params will be preserved (see N°4356)
|
||||
*
|
||||
* @param string $sRouteName
|
||||
* @param array $aRouteParams
|
||||
* @param array $aQueryParameters
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
protected function ForwardToRoute($sRouteName, $aRouteParams, $aQueryParameters, $bPreserveDefaultRouteParams = true)
|
||||
{
|
||||
$oRouteCollection = $this->get('router')->getRouteCollection();
|
||||
$aRouteDefaults = $oRouteCollection->get($sRouteName)->getDefaults();
|
||||
|
||||
if ($bPreserveDefaultRouteParams) {
|
||||
$aRouteParams = array_merge($aRouteDefaults, $aRouteParams);
|
||||
}
|
||||
|
||||
return $this->forward($aRouteDefaults['_controller'], $aRouteParams, $aQueryParameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sRouteName
|
||||
* @param array $aRouteParams
|
||||
* @param array $aQueryParameters
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*
|
||||
* @deprecated 2.7.6 N°4356 use {@link ForwardToRoute} instead !
|
||||
*/
|
||||
protected function ForwardFromRoute($sRouteName, $aRouteParams, $aQueryParameters)
|
||||
{
|
||||
return $this->forward($this->GetControllerNameFromRoute($sRouteName), $aRouteParams, $aQueryParameters);
|
||||
@@ -51,6 +76,8 @@ abstract class AbstractController extends Controller
|
||||
* @param string $sRouteName
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @deprecated 2.7.6 N°4356 use {@link ForwardToRoute} instead !
|
||||
*/
|
||||
protected function GetControllerNameFromRoute($sRouteName)
|
||||
{
|
||||
|
||||
@@ -68,7 +68,7 @@ class CreateBrickController extends BrickController
|
||||
$aRouteParams['ar_token'] = ContextManipulatorHelper::PrepareAndEncodeRulesToken($aRules);
|
||||
}
|
||||
|
||||
return $this->ForwardFromRoute('p_object_create', $aRouteParams, $oRequest->query->all());
|
||||
return $this->ForwardToRoute('p_object_create', $aRouteParams, $oRequest->query->all());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -344,7 +344,7 @@ class ObjectController extends BrickController
|
||||
'sObjectClass' => get_class($oTargetObject),
|
||||
);
|
||||
|
||||
return $this->ForwardFromRoute('p_object_create', $aRouteParams, $oRequest->query->all());
|
||||
return $this->ForwardToRoute('p_object_create', $aRouteParams, $oRequest->query->all());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1182,7 +1182,7 @@ class ObjectController extends BrickController
|
||||
'sObjectField' => 'contents',
|
||||
);
|
||||
|
||||
$oResponse = $this->forward($this->GetControllerNameFromRoute('p_object_document_download'), $aRouteParams, $oRequest->query->all());
|
||||
$oResponse = $this->ForwardToRoute('p_object_document_download', $aRouteParams, $oRequest->query->all());
|
||||
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user