diff --git a/README.md b/README.md index e7f8cc95..b76ed35e 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ Entry Editing: - [ ] JpegPhoto Create/Delete - [ ] Binary attribute upload - [ ] If removing an objectClass, remove all attributes that only that objectclass provided - - [ ] Rename an entry + - [ ] Move an entry - [ ] Group membership selection - [ ] Attribute tag creation diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 1751992d..691b371d 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -307,6 +307,30 @@ class HomeController extends Controller ->with('o',$o); } + public function entry_rename(Request $request): \Illuminate\Http\RedirectResponse|\Illuminate\View\View + { + $from_dn = Crypt::decryptString($request->post('dn')); + Log::info(sprintf('%s:Renaming [%s] to [%s]',self::LOGKEY,$from_dn,$request->post('new_rdn'))); + + $o = config('server')->fetch($from_dn); + + if (! $o) + return back() + ->withInput() + ->with('note',__('DN doesnt exist')); + + try { + $o->rename($request->post('new_rdn')); + + } catch (\Exception $e) { + return Redirect::to('/') + ->with('failed',$e->getMessage()); + } + + return Redirect::to('/') + ->with('success',[__('Entry renamed')]); + } + /** * Update a DN entry * diff --git a/resources/views/components/attribute/widget/options.blade.php b/resources/views/components/attribute/widget/options.blade.php index b5ab7dae..8d5b9598 100644 --- a/resources/views/components/attribute/widget/options.blade.php +++ b/resources/views/components/attribute/widget/options.blade.php @@ -6,7 +6,7 @@ @php($clone=FALSE) @if($o->is_rdn) - + @lang('Rename') @elseif($edit && $o->can_addvalues) @switch(get_class($o)) @case(Certificate::class) @@ -26,7 +26,7 @@ @break @case(ObjectClass::class) - (! $new)]) data-bs-toggle="modal" data-bs-target="#new_objectclass-modal"> @lang('Add Objectclass') + (! $new)]) data-bs-toggle="modal" data-bs-target="#new_objectclass-modal"> @lang('Add Objectclass')