mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°2323.6 Reintegrate fixes in the new Symfony portal
This commit is contained in:
@@ -95,7 +95,7 @@ services:
|
||||
combodo.current_contact.photo_url:
|
||||
public: true
|
||||
class: Combodo\iTop\Portal\VariableAccessor\CombodoCurrentContactPhotoUrl
|
||||
arguments: ['@combodo.current_user']
|
||||
arguments: ['@combodo.current_user', '@service_container']
|
||||
# Note: This service is initialized with a UserLocal object as it needs a class that can be instantiated.
|
||||
# Anyway, it will be replaced with the real class by UserProvider in onKernelRequestEvent.
|
||||
# Note: Services relying on this one should use \User in their signature and not \UserLocal.
|
||||
|
||||
@@ -22,21 +22,21 @@
|
||||
|
||||
namespace Combodo\iTop\Portal\Controller;
|
||||
|
||||
use Combodo\iTop\Portal\Brick\UserProfileBrick;
|
||||
use Combodo\iTop\Portal\Form\PasswordFormManager;
|
||||
use Combodo\iTop\Portal\Form\PreferencesFormManager;
|
||||
use Combodo\iTop\Portal\Helper\ObjectFormHandlerHelper;
|
||||
use Combodo\iTop\Renderer\Bootstrap\BsFormRenderer;
|
||||
use Exception;
|
||||
use FileUploadException;
|
||||
use IssueLog;
|
||||
use MetaModel;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
use utils;
|
||||
use MetaModel;
|
||||
use UserRights;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Combodo\iTop\Portal\Brick\UserProfileBrick;
|
||||
use Combodo\iTop\Portal\Form\PreferencesFormManager;
|
||||
use Combodo\iTop\Portal\Form\PasswordFormManager;
|
||||
use Combodo\iTop\Renderer\Bootstrap\BsFormRenderer;
|
||||
use utils;
|
||||
|
||||
/**
|
||||
* Class UserProfileBrickController
|
||||
@@ -323,6 +323,8 @@ class UserProfileBrickController extends BrickController
|
||||
{
|
||||
/** @var \Combodo\iTop\Portal\Helper\RequestManipulatorHelper $oRequestManipulator */
|
||||
$oRequestManipulator = $this->get('request_manipulator');
|
||||
/** @var \Combodo\iTop\Portal\Routing\UrlGenerator $oUrlGenerator */
|
||||
$oUrlGenerator = $this->get('url_generator');
|
||||
|
||||
$aFormData = array();
|
||||
$sPictureAttCode = 'picture';
|
||||
@@ -371,7 +373,8 @@ class UserProfileBrickController extends BrickController
|
||||
$aFormData['error'] = $e->GetMessage();
|
||||
}
|
||||
|
||||
$aFormData['picture_url'] = $oImage->GetDownloadURL(get_class($oCurContact), $oCurContact->GetKey(), $sPictureAttCode);
|
||||
// TODO: This should be changed when refactoring the ormDocument GetDisplayUrl() and GetDownloadUrl() in iTop 2.8
|
||||
$aFormData['picture_url'] = $oUrlGenerator->generate('p_object_document_display', array('sObjectClass' => get_class($oCurContact), 'sObjectId' => $oCurContact->GetKey(), 'sObjectField' => $sPictureAttCode, 'cache' => 86400, 't' => time()));
|
||||
$aFormData['validation'] = array(
|
||||
'valid' => true,
|
||||
'messages' => array(),
|
||||
|
||||
@@ -864,11 +864,11 @@ class ObjectFormManager extends FormManager
|
||||
if (in_array(get_class($oField), array('Combodo\\iTop\\Form\\Field\\BlobField', 'Combodo\\iTop\\Form\\Field\\ImageField')))
|
||||
{
|
||||
// - Overriding attributes to display
|
||||
if ($this->oApp !== null)
|
||||
if ($this->oContainer !== null)
|
||||
{
|
||||
// Override hardcoded URLs in ormDocument pointing to back office console
|
||||
$sDisplayUrl = $this->oApp['url_generator']->generate('p_object_document_display', array('sObjectClass' => get_class($this->oObject), 'sObjectId' => $this->oObject->GetKey(), 'sObjectField' => $sAttCode, 'cache' => 86400));
|
||||
$sDownloadUrl = $this->oApp['url_generator']->generate('p_object_document_download', array('sObjectClass' => get_class($this->oObject), 'sObjectId' => $this->oObject->GetKey(), 'sObjectField' => $sAttCode, 'cache' => 86400));
|
||||
$sDisplayUrl = $this->oContainer->get('url_generator')->generate('p_object_document_display', array('sObjectClass' => get_class($this->oObject), 'sObjectId' => $this->oObject->GetKey(), 'sObjectField' => $sAttCode, 'cache' => 86400));
|
||||
$sDownloadUrl = $this->oContainer->get('url_generator')->generate('p_object_document_download', array('sObjectClass' => get_class($this->oObject), 'sObjectId' => $this->oObject->GetKey(), 'sObjectField' => $sAttCode, 'cache' => 86400));
|
||||
/** @var \Combodo\iTop\Form\Field\BlobField $oField */
|
||||
$oField->SetDisplayUrl($sDisplayUrl)
|
||||
->SetDownloadUrl($sDownloadUrl);
|
||||
@@ -895,14 +895,14 @@ class ObjectFormManager extends FormManager
|
||||
}
|
||||
|
||||
// Checking dependencies to ensure that all needed fields are in the form
|
||||
// (This is kind of a garbage collector for dependancies)
|
||||
foreach ($oForm->GetDependencies() as $sImpactedFieldId => $aDependancies)
|
||||
// (This is kind of a garbage collector for dependencies)
|
||||
foreach ($oForm->GetDependencies() as $sImpactedFieldId => $aDependencies)
|
||||
{
|
||||
foreach ($aDependancies as $sDependancyFieldId)
|
||||
foreach ($aDependencies as $sDependencyFieldId)
|
||||
{
|
||||
if (!$oForm->HasField($sDependancyFieldId))
|
||||
if (!$oForm->HasField($sDependencyFieldId))
|
||||
{
|
||||
$oAttDef = MetaModel::GetAttributeDef(get_class($this->oObject), $sDependancyFieldId);
|
||||
$oAttDef = MetaModel::GetAttributeDef(get_class($this->oObject), $sDependencyFieldId);
|
||||
$oField = $oAttDef->MakeFormField($this->oObject);
|
||||
$oField->SetHidden(true);
|
||||
|
||||
@@ -1145,7 +1145,7 @@ class ObjectFormManager extends FormManager
|
||||
$oAttDef = MetaModel::GetAttributeDef($sObjectClass, $sAttCode);
|
||||
if ($oAttDef->IsLinkSet())
|
||||
{
|
||||
/** @var \AttributeLinkedSet $oAttDef*/
|
||||
/** @var \AttributeLinkedSet $oAttDef */
|
||||
|
||||
// Parsing JSON value
|
||||
//
|
||||
@@ -1174,7 +1174,7 @@ class ObjectFormManager extends FormManager
|
||||
// Creating link when linkset is indirect...
|
||||
if ($oAttDef->IsIndirect())
|
||||
{
|
||||
/** @var \AttributeLinkedSetIndirect $oAttDef*/
|
||||
/** @var \AttributeLinkedSetIndirect $oAttDef */
|
||||
$oLink = MetaModel::NewObject($sLinkedClass);
|
||||
$oLink->Set($oAttDef->GetExtKeyToRemote(), $iObjKey);
|
||||
$oLink->Set($oAttDef->GetExtKeyToMe(), $this->oObject->GetKey());
|
||||
|
||||
@@ -24,6 +24,7 @@ namespace Combodo\iTop\Portal\VariableAccessor;
|
||||
|
||||
use Exception;
|
||||
use MetaModel;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use User;
|
||||
use UserRights;
|
||||
|
||||
@@ -42,16 +43,20 @@ class CombodoCurrentContactPhotoUrl
|
||||
private $sCombodoPortalInstanceAbsoluteUrl;
|
||||
/** @var string|null $sContactPhotoUrl */
|
||||
private $sContactPhotoUrl;
|
||||
/** @var \Symfony\Component\DependencyInjection\ContainerInterface */
|
||||
private $oContainer;
|
||||
|
||||
/**
|
||||
* CombodoCurrentContactPhotoUrl constructor.
|
||||
*
|
||||
* @param \User $oUser
|
||||
* @param string $sCombodoPortalInstanceAbsoluteUrl
|
||||
* @param \User $oUser
|
||||
* @param \Symfony\Component\DependencyInjection\ContainerInterface $oContainer
|
||||
* @param string $sCombodoPortalInstanceAbsoluteUrl
|
||||
*/
|
||||
public function __construct(User $oUser, $sCombodoPortalInstanceAbsoluteUrl)
|
||||
public function __construct(User $oUser, ContainerInterface $oContainer, $sCombodoPortalInstanceAbsoluteUrl)
|
||||
{
|
||||
$this->oUser = $oUser;
|
||||
$this->oContainer = $oContainer;
|
||||
$this->sCombodoPortalInstanceAbsoluteUrl = $sCombodoPortalInstanceAbsoluteUrl;
|
||||
$this->sContactPhotoUrl = null;
|
||||
}
|
||||
@@ -101,17 +106,19 @@ class CombodoCurrentContactPhotoUrl
|
||||
// - Retrieving picture
|
||||
if ($oContact)
|
||||
{
|
||||
if (MetaModel::IsValidAttCode(get_class($oContact), 'picture'))
|
||||
$sPictureAttCode = 'picture';
|
||||
if (MetaModel::IsValidAttCode(get_class($oContact), $sPictureAttCode))
|
||||
{
|
||||
/** @var \ormDocument $oImage */
|
||||
$oImage = $oContact->Get('picture');
|
||||
$oImage = $oContact->Get($sPictureAttCode);
|
||||
if (is_object($oImage) && !$oImage->IsEmpty())
|
||||
{
|
||||
$sContactPhotoUrl = $oImage->GetDownloadURL(get_class($oContact), $oContact->GetKey(), 'picture');
|
||||
// TODO: This should be changed when refactoring the ormDocument GetDisplayUrl() and GetDownloadUrl() in iTop 2.8
|
||||
$sContactPhotoUrl = $this->oContainer->get('url_generator')->generate('p_object_document_display', array('sObjectClass' => get_class($oContact), 'sObjectId' => $oContact->GetKey(), 'sObjectField' => $sPictureAttCode, 'cache' => 86400));
|
||||
}
|
||||
else
|
||||
{
|
||||
$sContactPhotoUrl = MetaModel::GetAttributeDef(get_class($oContact), 'picture')->Get('default_image');
|
||||
$sContactPhotoUrl = MetaModel::GetAttributeDef(get_class($oContact), $sPictureAttCode)->Get('default_image');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user