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;
 | 
						|
  }
 | 
						|
}
 |