diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index ed24a821..7c1744f9 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -156,6 +156,46 @@ class HomeController extends Controller ->withFragment($o->getDNSecure()); } + public function entry_delete(Request $request) + { + $dn = Crypt::decryptString($request->dn); + + $o = config('server')->fetch($dn); + + try { + $o->delete(); + + } catch (InsufficientAccessException $e) { + $request->flash(); + + switch ($x=$e->getDetailedError()->getErrorCode()) { + case 50: + return Redirect::to('/') + ->withInput() + ->withErrors(sprintf('%s: %s (%s)',__('LDAP Server Error Code'),$x,__($e->getDetailedError()->getErrorMessage()))); + + default: + abort(599,$e->getDetailedError()->getErrorMessage()); + } + + } catch (LdapRecordException $e) { + $request->flash(); + + switch ($x=$e->getDetailedError()->getErrorCode()) { + case 8: + return Redirect::to('/') + ->withInput() + ->withErrors(sprintf('%s: %s (%s)',__('LDAP Server Error Code'),$x,__($e->getDetailedError()->getErrorMessage()))); + + default: + abort(599,$e->getDetailedError()->getErrorMessage()); + } + } + + return Redirect::to('/') + ->with('success',[sprintf('%s: %s',__('Deleted'),$dn)]); + } + public function entry_export(Request $request,string $id) { $dn = Crypt::decryptString($id); diff --git a/resources/themes/architect/views/layouts/partials/contentheader.blade.php b/resources/themes/architect/views/layouts/partials/contentheader.blade.php index 72893e2b..897ed081 100644 --- a/resources/themes/architect/views/layouts/partials/contentheader.blade.php +++ b/resources/themes/architect/views/layouts/partials/contentheader.blade.php @@ -35,9 +35,12 @@ @endif + @if(isset($page_actions) && $page_actions->contains('delete'))