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:
Pierre Goiffon
2021-10-13 11:49:22 +02:00
parent 2bc61caab1
commit b5369a0c03
3 changed files with 30 additions and 3 deletions

View File

@@ -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)
{

View File

@@ -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());
}
}

View File

@@ -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;