transform(function($item) { return [ 'title'=>$item->getRdn(), 'item'=>$item->getDNSecure(), 'lazy'=>TRUE, 'icon'=>'fa-fw fas fa-sitemap', 'tooltip'=>$item->getDn(), ]; }); } /** * @param Request $request * @return Collection */ public function children(Request $request): Collection { $levels = $request->query('depth',1); $dn = Crypt::decryptString($request->query('key')); Log::debug(sprintf('%s: Query [%s] - Levels [%d]',__METHOD__,$dn,$levels)); return (config('server')) ->children($dn) ->transform(function($item) { return [ 'title'=>$item->getRdn(), 'item'=>$item->getDNSecure(), 'icon'=>$item->icon(), 'lazy'=>Arr::get($item->getAttribute('hassubordinates'),0) == 'TRUE', 'tooltip'=>$item->getDn(), ]; }); } public function schema_view(Request $request) { $server = new Server; switch($request->type) { case 'objectclasses': return view('fragment.schema.objectclasses') ->with('objectclasses',$server->schema('objectclasses')->sortBy(function($item) { return strtolower($item->name); })); case 'attributetypes': return view('fragment.schema.attributetypes') ->with('server',$server) ->with('attributetypes',$server->schema('attributetypes')->sortBy(function($item) { return strtolower($item->name); })); case 'ldapsyntaxes': return view('fragment.schema.ldapsyntaxes') ->with('ldapsyntaxes',$server->schema('ldapsyntaxes')->sortBy(function($item) { return strtolower($item->description); })); case 'matchingrules': return view('fragment.schema.matchingrules') ->with('matchingrules',$server->schema('matchingrules')->sortBy(function($item) { return strtolower($item->name); })); default: abort(404); } } /** * Return the required and additional attributes for an object class * * @param Request $request * @param string $objectclass * @return array */ public function schema_objectclass_attrs(Request $request,string $objectclass): array { $oc = config('server')->schema('objectclasses',$objectclass); return [ 'must' => $oc->getMustAttrs()->pluck('name'), 'may' => $oc->getMayAttrs()->pluck('name'), ]; } }