35 lines
928 B
PHP
35 lines
928 B
PHP
<?php
|
|
namespace nur\ldap;
|
|
|
|
use nur\A;
|
|
use nur\b\ValueException;
|
|
use nur\path;
|
|
|
|
class ldap_config {
|
|
static function get_shared_file(string $uri): string {
|
|
if ($uri == "ldapi://") {
|
|
$file = "ldapi__.ldaphost";
|
|
} else {
|
|
$parts = parse_url($uri);
|
|
if ($parts === false) throw ValueException::invalid_value($uri, "uri");
|
|
$scheme = A::get($parts, "scheme", "ldap");
|
|
$host = A::get($parts, "host");
|
|
$port = A::get($parts, "port");
|
|
if ($port === null) {
|
|
if ($scheme === "ldap") $port = 389;
|
|
elseif ($scheme === "ldaps") $port = 636;
|
|
}
|
|
$file = "${scheme}_${host}_${port}.ldaphost";
|
|
}
|
|
return $file;
|
|
}
|
|
|
|
static function get_file(string $file, ?string $profile=null): string {
|
|
if (!path::is_qualified($file) && !path::have_ext($file)) {
|
|
if ($profile !== null) $file .= ".$profile";
|
|
$file .= ".ldapconf";
|
|
}
|
|
return $file;
|
|
}
|
|
}
|