From 8cb6140d114e676410d7a0921a2d3257d48f3351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be> Date: Wed, 6 Jul 2016 06:02:43 +0200 Subject: [PATCH] Fixes #4981 trying to put an ACL assignments on an non existing branch crashes --- plugins/admin/acl/class_aclManagement.inc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/admin/acl/class_aclManagement.inc b/plugins/admin/acl/class_aclManagement.inc index a39bec8e7..11510d616 100644 --- a/plugins/admin/acl/class_aclManagement.inc +++ b/plugins/admin/acl/class_aclManagement.inc @@ -104,8 +104,12 @@ class aclAssignmentCreationDialog extends simplePlugin msg_dialog::displayChecks($msgs); return TRUE; } - $this->simpleManagement->closeDialogs(); - $this->simpleManagement->newEntryConfirmed($this->baseDn); + try { + $this->simpleManagement->newEntryConfirmed($this->baseDn); + } catch (NonExistingLdapNodeException $e) { + msg_dialog::displayChecks(array(_('The dn you entered could not be found in the LDAP'))); + return TRUE; + } return FALSE; } @@ -179,14 +183,19 @@ class aclManagement extends simpleManagement { $type = 'aclAssignment'; + /* This might throw an exception which is catched in aclAssignmentCreationDialog */ + $tabObject = objects::open($this->dn, $type); + + /* This will happen only if the exception is not thrown */ + $this->closeDialogs(); + $this->displayApplyBtn = FALSE; $this->dn = $dn; $this->is_single_edit = FALSE; set_object_info($this->dn); - // Open object - $this->openTabObject(objects::open($this->dn, $type), $this->headpage->getBase()); + $this->openTabObject($tabObject, $this->headpage->getBase()); @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Creating new ACLĂ‚ assignment'); } -- GitLab