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