Compare commits

..

1 Commits

Author SHA1 Message Date
2b365ef258 Implement DN Entry rename
All checks were successful
Create Docker Image / Test Application (x86_64) (push) Successful in 28s
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 2m11s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 3m15s
Create Docker Image / Final Docker Image Manifest (push) Successful in 10s
2025-07-03 00:21:16 +08:00
4 changed files with 22 additions and 18 deletions

View File

@ -29,7 +29,7 @@ class HomeController extends Controller
{ {
private const LOGKEY = 'CHc'; private const LOGKEY = 'CHc';
private const INTERNAL_POST = ['_auto_value','_key','_rdn','_rdn_new','_rdn_value','_step','_template','_token','_userpassword_hash']; private const INTERNAL_POST = ['_auto_value','_key','_rdn','_rdn_value','_step','_template','_token','_userpassword_hash'];
/** /**
* Create a new object in the LDAP server * Create a new object in the LDAP server
@ -206,7 +206,7 @@ class HomeController extends Controller
} }
return Redirect::to('/') return Redirect::to('/')
->with('success',sprintf('%s: %s',__('Deleted'),$dn)); ->with('success',[sprintf('%s: %s',__('Deleted'),$dn)]);
} }
public function entry_export(Request $request,string $id): \Illuminate\View\View public function entry_export(Request $request,string $id): \Illuminate\View\View
@ -298,7 +298,7 @@ class HomeController extends Controller
$request->get('_userpassword_hash')); $request->get('_userpassword_hash'));
if (! $o->getDirty()) if (! $o->getDirty())
return Redirect::back() return back()
->withInput() ->withInput()
->with('note',__('No attributes changed')); ->with('note',__('No attributes changed'));
@ -310,17 +310,17 @@ class HomeController extends Controller
public function entry_rename(Request $request): \Illuminate\Http\RedirectResponse|\Illuminate\View\View public function entry_rename(Request $request): \Illuminate\Http\RedirectResponse|\Illuminate\View\View
{ {
$from_dn = Crypt::decryptString($request->post('dn')); $from_dn = Crypt::decryptString($request->post('dn'));
Log::info(sprintf('%s:Renaming [%s] to [%s]',self::LOGKEY,$from_dn,$request->post('_rdn_new'))); Log::info(sprintf('%s:Renaming [%s] to [%s]',self::LOGKEY,$from_dn,$request->post('new_rdn')));
$o = config('server')->fetch($from_dn); $o = config('server')->fetch($from_dn);
if (! $o) if (! $o)
return Redirect::back() return back()
->withInput() ->withInput()
->with('note',__('DN doesnt exist')); ->with('note',__('DN doesnt exist'));
try { try {
$o->rename($request->post('_rdn_new')); $o->rename($request->post('new_rdn'));
} catch (\Exception $e) { } catch (\Exception $e) {
return Redirect::to('/') return Redirect::to('/')
@ -328,8 +328,7 @@ class HomeController extends Controller
} }
return Redirect::to('/') return Redirect::to('/')
->withInput(['_key'=>Crypt::encryptString('*dn|'.$o->getDN())]) ->with('success',[__('Entry renamed')]);
->with('success',sprintf('%s: %s',__('Entry renamed'),$from_dn));
} }
/** /**
@ -351,7 +350,7 @@ class HomeController extends Controller
$o->{$key} = array_filter($value); $o->{$key} = array_filter($value);
if (! $dirty=$o->getDirty()) if (! $dirty=$o->getDirty())
return Redirect::back() return back()
->withInput() ->withInput()
->with('note',__('No attributes changed')); ->with('note',__('No attributes changed'));
@ -530,8 +529,8 @@ class HomeController extends Controller
// Setup // Setup
$cmd = NULL; $cmd = NULL;
$dn = NULL; $dn = NULL;
$key = ($x=$request->get('_key',old('_key'))) $key = $request->get('_key',old('_key'))
? Crypt::decryptString($x) ? Crypt::decryptString($request->get('_key',old('_key')))
: NULL; : NULL;
// Determine if our key has a command // Determine if our key has a command
@ -543,9 +542,9 @@ class HomeController extends Controller
$dn = ($m[2] !== '_NOP') ? $m[2] : NULL; $dn = ($m[2] !== '_NOP') ? $m[2] : NULL;
} }
} elseif ($x=old('dn',$request->get('_key'))) { } elseif (old('dn',$request->get('_key'))) {
$cmd = 'dn'; $cmd = 'dn';
$dn = Crypt::decryptString($x); $dn = Crypt::decryptString(old('dn',$request->get('_key')));
} }
return ['cmd'=>$cmd,'dn'=>$dn]; return ['cmd'=>$cmd,'dn'=>$dn];

View File

@ -1,5 +1,11 @@
@if(session()->has('success')) @if(session()->has('success'))
<div class="alert alert-success p-2"> <div class="alert alert-success">
<p class="m-0"><i class="fas fa-fw fa-thumbs-up"></i> {{ session()->pull('success') }}</p> <h4 class="alert-heading"><i class="fas fa-fw fa-thumbs-up"></i> Success!</h4>
<hr>
<ul class="square">
@foreach(session()->get('success') as $item)
<li>{{ $item }}</li>
@endforeach
</ul>
</div> </div>
@endif @endif

View File

@ -52,10 +52,9 @@
</div> </div>
@endif @endif
<x-success/>
<x-updated/>
<x-note/> <x-note/>
<x-error/> <x-error/>
<x-updated/>
<x-failed/> <x-failed/>
@endsection @endsection

View File

@ -13,7 +13,7 @@
<div class="col-12"> <div class="col-12">
<label for="rdn" class="form-label">@lang('New RDN')</label> <label for="rdn" class="form-label">@lang('New RDN')</label>
<div class="input-group mb-3"> <div class="input-group mb-3">
<input type="text" id="rdn" name="_rdn_new" class="form-control w-25" placeholder="{{ $rdn=collect(explode(',',$x))->first() }}" value="{{ $rdn }}"> <input type="text" id="rdn" name="new_rdn" class="form-control w-25" placeholder="{{ $rdn=collect(explode(',',$x))->first() }}" value="{{ $rdn }}">
<span class="input-group-text" id="label">{{ collect(explode(',',$x))->skip(1)->join(',') }}</span> <span class="input-group-text" id="label">{{ collect(explode(',',$x))->skip(1)->join(',') }}</span>
</div> </div>
</div> </div>