<?php namespace App\Classes\LDAP\Attribute\Schema; use App\Classes\LDAP\Attribute\Schema; /** * Represents an OID Attribute */ final class OID extends Schema { public function __toString(): string { return $this->values ->transform(function($item) { if (preg_match('/[0-9]+\.[0-9]+\.[0-9]+/',$item)) { $format = sprintf('<abbr class="pb-1" title="%s"><i class="fas fa-list-ol pr-2"></i>%s</abbr>%s<p class="mb-0">%s</p>', $item, static::get($item,'title'), ($x=static::get($item,'ref')) ? sprintf('<abbr class="pl-2" title="%s"><i class="fas fa-comment-dots"></i></abbr>',$x) : '', static::get($item,'desc'), ); return $format; } else return $item; })->join('<br>'); } /** * Given an LDAP OID number, returns a verbose description of the OID. * This function parses ldap_supported_oids.txt and looks up the specified * OID, and returns the verbose message defined in that file. * * <code> * "1.3.6.1.4.1.4203.1.5.1" => array:3 [ * [title] => All Operational Attribute * [ref] => RFC 3673 * [desc] => An LDAP extension which clients may use to request the return of all operational attributes. * ] * </code> * * @param string $string The OID number (ie, "1.3.6.1.4.1.4203.1.5.1") of the OID of interest. * @param string $key The title|ref|desc to return * @return string|null * @testedby TranslateOidTest::testRootDSE() */ protected static function get(string $string,string $key): ?string { return parent::_get(config_path('ldap_supported_oids.txt'),$string,$key); } }