diff --git a/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php index 595a40f134..69201966fa 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php @@ -91,6 +91,15 @@ class ObjectController extends AbstractController $aData['form'] = $this->HandleForm($oRequest, $oApp, $aData['sMode'], $sObjectClass, $sObjectId); $aData['form']['title'] = Dict::Format('Brick:Portal:Object:Form:View:Title', MetaModel::GetName($sObjectClass), $oObject->GetName()); + // Add an edit button if user is allowed + if (SecurityHelper::IsActionAllowed($oApp, UR_ACTION_MODIFY, $sObjectClass, $sObjectId)) + { + $aData['form']['buttons']['links'][] = array( + 'label' => Dict::S('UI:Menu:Modify'), + 'url' => $oApp['url_generator']->generate('p_object_edit', array('sObjectClass' => $sObjectClass, 'sObjectId' => $sObjectId)) + ); + } + // Preparing response if ($oRequest->isXmlHttpRequest()) { diff --git a/datamodels/2.x/itop-portal-base/portal/src/views/bricks/object/mode_view.html.twig b/datamodels/2.x/itop-portal-base/portal/src/views/bricks/object/mode_view.html.twig index df07f05d1c..9eb7cf2270 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/views/bricks/object/mode_view.html.twig +++ b/datamodels/2.x/itop-portal-base/portal/src/views/bricks/object/mode_view.html.twig @@ -4,8 +4,14 @@ {# This layout is exactly the same as the mode_create.html.twig, we duplicated it in case we need to have some subtle differences #} - {% block pFormButtons %} + {% if form.buttons is defined and form.buttons.links is defined %} +