From 7cd2251af3e4437166df96b108bdecd3c29b8610 Mon Sep 17 00:00:00 2001 From: Deon George Date: Fri, 12 Jul 2013 13:48:14 +1000 Subject: [PATCH] Moved KH LDAP functions into KH module --- .gitmodules | 3 + application/bootstrap.php | 1 + application/classes/Auth/LDAP.php | 4 - application/classes/Block.php | 4 - application/classes/Config.php | 1 - .../classes/Controller/TemplateDefault.php | 1 - application/classes/Database/LDAP.php | 4 - application/classes/Database/LDAP/Search.php | 4 - .../Database/LDAP/Search/Builder/Query.php | 4 - application/classes/PLA/Auth/LDAP.php | 80 ------ application/classes/PLA/Block.php | 65 ----- .../classes/PLA/Controller/Template.php | 1 - application/classes/PLA/Database/LDAP.php | 186 ------------ .../classes/PLA/Database/LDAP/Search.php | 270 ------------------ .../Database/LDAP/Search/Builder/Query.php | 214 -------------- application/classes/PLA/SystemMessage.php | 65 ----- application/classes/SystemMessage.php | 4 - application/config/config.php | 1 - application/config/database.php | 70 ----- application/config/debug.php | 1 - doc/uidpool.schema | 11 - modules/ldap | 1 + 22 files changed, 5 insertions(+), 990 deletions(-) delete mode 100644 application/classes/Auth/LDAP.php delete mode 100644 application/classes/Block.php delete mode 100644 application/classes/Database/LDAP.php delete mode 100644 application/classes/Database/LDAP/Search.php delete mode 100644 application/classes/Database/LDAP/Search/Builder/Query.php delete mode 100644 application/classes/PLA/Auth/LDAP.php delete mode 100644 application/classes/PLA/Block.php delete mode 100644 application/classes/PLA/Database/LDAP.php delete mode 100644 application/classes/PLA/Database/LDAP/Search.php delete mode 100644 application/classes/PLA/Database/LDAP/Search/Builder/Query.php delete mode 100644 application/classes/PLA/SystemMessage.php delete mode 100644 application/classes/SystemMessage.php delete mode 100644 application/config/database.php delete mode 100755 doc/uidpool.schema create mode 160000 modules/ldap diff --git a/.gitmodules b/.gitmodules index f69a7d4..21cc33e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "modules/lnApp"] path = modules/lnApp url = ssh://10.1.3.20/afs/local/git/lnapp +[submodule "modules/ldap"] + path = modules/ldap + url = ssh://10.1.3.20/afs/local/git/khldap diff --git a/application/bootstrap.php b/application/bootstrap.php index b5c0f55..5199a8b 100644 --- a/application/bootstrap.php +++ b/application/bootstrap.php @@ -113,6 +113,7 @@ Kohana::modules(array( 'auth' => SMDPATH.'auth', // Basic authentication 'cache' => SMDPATH.'cache', // Caching with multiple backends // 'codebench' => SMDPATH.'codebench', // Benchmarking tool + // 'ldap' => MODPATH.'ldap', // LDAP Database Interaction (Depends on DATABASE which must be after this) 'database' => SMDPATH.'database', // Database access // 'image' => SMDPATH.'image', // Image manipulation 'minion' => SMDPATH.'minion', // CLI Tasks diff --git a/application/classes/Auth/LDAP.php b/application/classes/Auth/LDAP.php deleted file mode 100644 index f6eced6..0000000 --- a/application/classes/Auth/LDAP.php +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/application/classes/Block.php b/application/classes/Block.php deleted file mode 100644 index bde7470..0000000 --- a/application/classes/Block.php +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/application/classes/Config.php b/application/classes/Config.php index f10f07f..0eb0e74 100644 --- a/application/classes/Config.php +++ b/application/classes/Config.php @@ -5,7 +5,6 @@ * specific functions, and configuration. * * @package PLA - * @subpackage Config * @category Helpers * @author Deon George * @copyright (c) phpLDAPadmin Development Team diff --git a/application/classes/Controller/TemplateDefault.php b/application/classes/Controller/TemplateDefault.php index a26f1d7..f40f442 100644 --- a/application/classes/Controller/TemplateDefault.php +++ b/application/classes/Controller/TemplateDefault.php @@ -4,7 +4,6 @@ * This class provides the default template controller for rendering pages. * * @package OSB - * @subpackage Page/Template * @category Controllers * @author Deon George * @copyright (c) phpLDAPadmin Development Team diff --git a/application/classes/Database/LDAP.php b/application/classes/Database/LDAP.php deleted file mode 100644 index d9b3b1a..0000000 --- a/application/classes/Database/LDAP.php +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/application/classes/Database/LDAP/Search.php b/application/classes/Database/LDAP/Search.php deleted file mode 100644 index 4a28484..0000000 --- a/application/classes/Database/LDAP/Search.php +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/application/classes/Database/LDAP/Search/Builder/Query.php b/application/classes/Database/LDAP/Search/Builder/Query.php deleted file mode 100644 index 6931b05..0000000 --- a/application/classes/Database/LDAP/Search/Builder/Query.php +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/application/classes/PLA/Auth/LDAP.php b/application/classes/PLA/Auth/LDAP.php deleted file mode 100644 index 246abce..0000000 --- a/application/classes/PLA/Auth/LDAP.php +++ /dev/null @@ -1,80 +0,0 @@ -_config['hash_key']) - return $str; - else - return parent::hash($str); - } - - /** - * Logs a user in. - * - * @param string username - * @param string password - * @param boolean enable autologin (not supported) - * @return boolean - */ - protected function _login($user, $password, $remember) { - if ( ! is_object($user)) { - $username = $user; - - // Load the user - // @todo Get the server ID - $sid = 'default'; - - $user = Database_LDAP::instance($sid)->select_db('user')->connect(); - $user->bind($username,$password); - } - - // @todo Implement conditional logging based on memberships to groups or other criteria. - // @todo This check of user being logged in needs to be better - if (! $user->noconnect) { - /* - // @todo To implement - if ($remember === TRUE) { - // Token data - $data = array( - 'user_id'=>$user->id, - 'expires'=>time()+$this->_config['lifetime'], - 'user_agent'=>sha1(Request::$user_agent), - ); - - // Create a new autologin token - $token = ORM::factory('user_token') - ->values($data) - ->create(); - - // Set the autologin cookie - Cookie::set('authautologin', $token->token, $this->_config['lifetime']); - } - */ - - // Finish the login - $this->complete_login($user); - - return TRUE; - } - - // Login failed - return FALSE; - } -} -?> diff --git a/application/classes/PLA/Block.php b/application/classes/PLA/Block.php deleted file mode 100644 index bcb0a0c..0000000 --- a/application/classes/PLA/Block.php +++ /dev/null @@ -1,65 +0,0 @@ -$media) - Style::add(array( - 'type'=>'file', - 'data'=>$data, - 'media'=>$media, - )); - } - - /** - * Return an instance of this class - * - * @return Block - */ - public static function factory() { - return new Block; - } - - /** - * Render this block - * - * @see HTMLRender::render() - */ - protected function render() { - $output = ''; - - foreach (static::$_data as $value) - $output .= View::factory(Kohana::Config('config.theme').'/block') - ->set('title',empty($value['title']) ? '' : $value['title']) - ->set('subtitle',empty($value['subtitle']) ? '' : $value['subtitle']) - ->set('body',empty($value['body']) ? '' : $value['body']) - ->set('footer',empty($value['footer']) ? '' : $value['footer']); - - return $output; - } -} -?> diff --git a/application/classes/PLA/Controller/Template.php b/application/classes/PLA/Controller/Template.php index 8ee52eb..1a89f0d 100644 --- a/application/classes/PLA/Controller/Template.php +++ b/application/classes/PLA/Controller/Template.php @@ -4,7 +4,6 @@ * This class provides the default template controller for rendering pages. * * @package PLA - * @subpackage Page/Template * @category Controllers * @author Deon George * @copyright (c) phpLDAPadmin Development Team diff --git a/application/classes/PLA/Database/LDAP.php b/application/classes/PLA/Database/LDAP.php deleted file mode 100644 index e127284..0000000 --- a/application/classes/PLA/Database/LDAP.php +++ /dev/null @@ -1,186 +0,0 @@ -index); - */ - - /* - // @todo To implement - if (function_exists('run_hook')) - run_hook('pre_connect',array('server_id'=>$this->index,'method'=>$method)); - */ - - if (! empty($this->_config['port'])) - $r = ldap_connect($this->_config['connection']['hostname'],$this->_config['port']); - else - $r = ldap_connect($this->_config['connection']['hostname']); - - /* - // @todo To implement - if (DEBUG_ENABLED) - debug_log('LDAP Resource [%s], Host [%s], Port [%s]',16,0,__FILE__,__LINE__,__METHOD__, - $this->_r,$this->getValue('server','host'),$this->getValue('server','port')); - */ - - if (! is_resource($r)) - throw Kohana_Exception('UNHANDLED, $r is not a resource'); - - // Go with LDAP version 3 if possible (needed for renaming and Novell schema fetching) - ldap_set_option($r,LDAP_OPT_PROTOCOL_VERSION,3); - - /* Disabling this makes it possible to browse the tree for Active Directory, and seems - * to not affect other LDAP servers (tested with OpenLDAP) as phpLDAPadmin explicitly - * specifies deref behavior for each ldap_search operation. */ - ldap_set_option($r,LDAP_OPT_REFERRALS,0); - - /* - // @todo To implement - # Try to fire up TLS is specified in the config - if ($this->isTLSEnabled()) - $this->startTLS($this->_r); - */ - - return $r; - } - - private function _bind($r,$u,$p) { - if (! is_resource($r)) - throw Kohana_Exception('UNHANDLED, $r is not a resource'); - - /* - // @todo To implement - # If SASL has been configured for binding, then start it now. - if ($this->isSASLEnabled()) - $br = $this->startSASL($this->_r,$method); - - # Normal bind... - else - */ - $br = @ldap_bind($r,$u,$p); - - /* - if ($debug) - debug_dump(array('method'=>$method,'bind'=>$bind,'USER'=>$_SESSION['USER'])); - - if (DEBUG_ENABLED) - debug_log('Resource [%s], Bind Result [%s]',16,0,__FILE__,__LINE__,__METHOD__,$this->_r,$bind); - */ - - if (! $br) { - /* - if (DEBUG_ENABLED) - debug_log('Leaving with FALSE, bind FAILed',16,0,__FILE__,__LINE__,__METHOD__); - */ - - $this->noconnect = true; - - /* - // @todo To implement - system_message(array( - 'title'=>sprintf('%s %s',_('Unable to connect to LDAP server'),$this->getName()), - 'body'=>sprintf('%s: %s (%s) for %s',_('Error'),$this->getErrorMessage($method),$this->getErrorNum($method),$method), - 'type'=>'error')); - */ - - } else { - $this->noconnect = false; - - /* - // @todo To implement - # If this is a proxy session, we need to switch to the proxy user - if ($this->isProxyEnabled() && $bind['id'] && $method != 'anon') - if (! $this->startProxy($this->_r,$method)) { - $this->noconnect = true; - $CACHE[$this->index][$method] = null; - } - */ - } - - /* - // @todo To implement - if (function_exists('run_hook')) - run_hook('post_connect',array('server_id'=>$this->index,'method'=>$method,'id'=>$bind['id'])); - */ - - /* - // @todo To implement - if ($debug) - debug_dump(array($method=>$CACHE[$this->index][$method])); - */ - - return $br; - } - - public function connect() { - if ($this->_r = $this->_connect()) - return $this; - else - throw Kohana_Exception('Unable to connect to LDAP Server?'); - } - - public function bind($user,$pass) { - // If this is an anon query, then we return - - // Do we need to do an anon search to find the DN - if (! empty($this->_config['login_attr']) AND strtoupper($this->_config['login_attr']) != 'DN') { - $u = $this->search() - ->scope('sub') - ->where($this->_config['login_attr'],'=',$user) - ->run(); - - if (! $u) - throw new Kohana_Exception('Unable to find user :user',array(':user'=>$user)); - - $u = array_shift($u); - $user = $u['dn']; - } - - // Bind - if ($this->_bind($this->_r,$user,$pass)) - return $this; - else - throw new Kohana_Exception('Unable to bind'); - } - - public function search() { - return new Database_LDAP_Search($this->_r); - } -} -?> diff --git a/application/classes/PLA/Database/LDAP/Search.php b/application/classes/PLA/Database/LDAP/Search.php deleted file mode 100644 index 04ac955..0000000 --- a/application/classes/PLA/Database/LDAP/Search.php +++ /dev/null @@ -1,270 +0,0 @@ -_r = $resource; - } - - /** - * Handles pass-through to database methods. Calls to query methods - * (query, get, insert, update) are not allowed. Query builder methods - * are chainable. - * - * @param string $method Method name - * @param array $args Method arguments - * @return mixed - */ - public function __call($method,array $args) { - if (in_array($method,Database_LDAP_Search::$_properties)) { - /* - // @todo To Implement - if ($method === 'validation') - { - if ( ! isset($this->_validation)) - { - // Initialize the validation object - $this->_validation(); - } - } - */ - - // Return the property - return $this->{'_'.$method}; - } - elseif (in_array($method,Database_LDAP_Search::$_db_methods)) - { - // Add pending database call which is executed after query type is determined - $this->_db_pending[] = array('name' => $method,'args' => $args); - - return $this; - } - else - { - throw new Kohana_Exception('Invalid method :method called in :class', - array(':method' => $method,':class' => get_class($this))); - } - } - - private function _build() { - $s = Database_LDAP_Search::Search(); - - // Process pending database method calls - foreach ($this->_db_pending as $method) { - $name = $method['name']; - $args = $method['args']; - - $this->_db_applied[$name] = $name; - - call_user_func_array(array($s,$name),$args); - } - - return $s; - } - - public static function Search($columns = NULL) { - return new Database_LDAP_Search_Builder_Query(func_get_args()); - } - - public static function instance($resource) { - return new Database_LDAP_Search($resource); - } - - public function scope($val) { - switch ($val) { - case 'base': - case 'sub': - case 'one': $this->_scope = $val; - break; - - default: - throw new Kohana_Exception('Unknown search scope :scope',array(':scope',$val)); - } - - return $this; - } - - /** - * Search the LDAP database - */ - public function run() { - $query = array(); - - // Compile our query - if ($this->_db_pending) - $this->_filter = $this->_build(); - - /* - if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) - debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); - */ - - $attrs_only = 0; - - $this->_base = 'o=Simpsons'; - /* - // @todo To implement - if (! isset($query['base'])) { - $bases = $this->getBaseDN(); - $query['base'] = array_shift($bases); - } - */ - - /* - // @todo To implement - if (! isset($query['deref'])) - $query['deref'] = $_SESSION[APPCONFIG]->getValue('deref','search'); - */ - if (! isset($query['size_limit'])) - $query['size_limit'] = 0; - if (! isset($query['time_limit'])) - $query['time_limit'] = 0; - - /* - if ($query['scope'] == 'base' && ! isset($query['baseok'])) - system_message(array( - 'title'=>sprintf('Dont call %s',__METHOD__), - 'body'=>sprintf('Use getDNAttrValues for base queries [%s]',$query['base']), - 'type'=>'info')); - */ - - /* - if (is_array($query['base'])) { - system_message(array( - 'title'=>_('Invalid BASE for query'), - 'body'=>_('The query was cancelled because of an invalid base.'), - 'type'=>'error')); - - return array(); - } - */ - - /* - if (DEBUG_ENABLED) - debug_log('%s search PREPARE.',16,0,__FILE__,__LINE__,__METHOD__,$query['scope']); - */ - - /* - if ($debug) - debug_dump(array('query'=>$query,'server'=>$this->getIndex(),'con'=>$this->connect($method))); - */ - - //$resource = $this->connect($method,$debug); - - switch ($this->_scope) { - case 'base': - $search = @ldap_read($this->_r,$this->_base,$this->_filter,$this->_attrs,$attrs_only,$query['size_limit'],$query['time_limit'],$query['deref']); - break; - - case 'one': - $search = @ldap_list($this->_r,$this->_base,$this->_filter,$this->_attrs,$attrs_only,$query['size_limit'],$query['time_limit'],$query['deref']); - break; - - case 'sub': - default: - $search = @ldap_search($this->_r,$this->_base,$this->_filter,$this->_attrs,$attrs_only,$query['size_limit'],$query['time_limit'],$query['deref']); - break; - } - - /* - if ($debug) - debug_dump(array('method'=>$method,'search'=>$search,'error'=>$this->getErrorMessage())); - */ - - /* - if (DEBUG_ENABLED) - debug_log('Search scope [%s] base [%s] filter [%s] attrs [%s] COMPLETE (%s).',16,0,__FILE__,__LINE__,__METHOD__, - $query['scope'],$query['base'],$query['filter'],$query['attrs'],is_null($search)); - */ - - if (! $search) - return array(); - - $return = array(); - - // Get the first entry identifier - if ($entries = ldap_get_entries($this->_r,$search)) { - # Remove the count - if (isset($entries['count'])) - unset($entries['count']); - - // Iterate over the entries - foreach ($entries as $a => $entry) { - /* - if (! isset($entry['dn'])) - debug_dump_backtrace('No DN?',1); - */ - - // Remove the none entry references. - if (! is_array($entry)) { - unset($entries[$a]); - continue; - } - - $dn = $entry['dn']; - unset($entry['dn']); - - // Iterate over the attributes - foreach ($entry as $b => $attrs) { - // Remove the none entry references. - if (! is_array($attrs)) { - unset($entry[$b]); - continue; - } - - // Remove the count - if (isset($entry[$b]['count'])) - unset($entry[$b]['count']); - } - - // Our queries always include the DN (the only value not an array). - $entry['dn'] = $dn; - $return[$dn] = $entry; - } - - // Sort our results - foreach ($return as $key => $values) - ksort($return[$key]); - } - - /* - if (DEBUG_ENABLED) - debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$return); - */ - - return $return; - } -} -?> diff --git a/application/classes/PLA/Database/LDAP/Search/Builder/Query.php b/application/classes/PLA/Database/LDAP/Search/Builder/Query.php deleted file mode 100644 index 5905cf3..0000000 --- a/application/classes/PLA/Database/LDAP/Search/Builder/Query.php +++ /dev/null @@ -1,214 +0,0 @@ -and_where($column,$op,$value); - } - - /** - * Creates a new "AND WHERE" condition for the query. - * - * @param mixed column name or array($column,$alias) or object - * @param string logic operator - * @param mixed column value - * @return $this - */ - public function and_where($column,$op,$value) { - $this->_where[] = array('AND' => array($column,$op,$value)); - - return $this; - } - - /** - * Creates a new "OR WHERE" condition for the query. - * - * @param mixed column name or array($column,$alias) or object - * @param string logic operator - * @param mixed column value - * @return $this - */ - public function or_where($column,$op,$value) { - $this->_where[] = array('OR' => array($column,$op,$value)); - - return $this; - } - - /** - * Alias of and_where_open() - * - * @return $this - */ - public function where_open() { - return $this->and_where_open(); - } - - /** - * Opens a new "AND WHERE (...)" grouping. - * - * @return $this - */ - public function and_where_open() { - $this->_where[] = array('AND' => '('); - - return $this; - } - - /** - * Opens a new "OR WHERE (...)" grouping. - * - * @return $this - */ - public function or_where_open() { - $this->_where[] = array('OR' => '('); - - return $this; - } - - public function compile($db = NULL) { - $filter = ''; - - return $this->_compile_conditions($db,$this->_where); - } - - /** - * Closes an open "AND WHERE (...)" grouping. - * - * @return $this - */ - public function where_close() { - return $this->and_where_close(); - } - - /** - * Closes an open "AND WHERE (...)" grouping. - * - * @return $this - */ - public function and_where_close() { - $this->_where[] = array('AND' => ')'); - - return $this; - } - - /** - * Closes an open "OR WHERE (...)" grouping. - * - * @return $this - */ - public function or_where_close() { - $this->_where[] = array('OR' => ')'); - - return $this; - } - - /** - * Compiles an array of conditions into an LDAP filter. - * - * @param object Database instance - * @param array condition statements - * @return string - */ - protected function _compile_conditions(Database $db,array $conditions,$index=0) { - $current_condition = $last_condition = NULL; - - $filter = ''; - $sub = 0; - foreach ($conditions as $key => $group) { - // If we have been called again, we need to skip ahead, or skip what has been processed - if ($key < $index OR $sub) - continue; - - // Process groups of conditions - foreach ($group as $logic => $condition) { - if ($condition === '(') { - $filter .= $this->_compile_conditions($db,$conditions,$key+1); - $sub = 1; - - } elseif ($condition === ')') { - if ($index) { - // As we return, we'll include our condition - switch ($current_condition) { - case 'AND': - return '(&'.$filter.')'; - - case 'OR': - return '(|'.$filter.')'; - - default: - throw new Kohana_Exception('Condition :condition not handled.',array(':condition'=>$condition)); - } - } - - $sub = 0; - - } else { - // We currently cant handle when a condition changes, without brackets. - if ($filter AND $current_condition AND $current_condition != $logic) - throw new Kohana_Exception('Condition changed without brackets'); - - $current_condition = $logic; - - // Split the condition - list($column,$op,$value) = $condition; - - // Database operators are always uppercase - $op = strtoupper($op); - - if ((is_string($value) AND array_key_exists($value,$this->_parameters)) === FALSE) { - // Quote the value, it is not a parameter - $value = $db->quote($value); - } - - if ($column) { - // Apply proper quoting to the column - $column = $db->quote_column($column); - } - - // Append the statement to the query - $filter .= trim('('.$column.$op.$value.')'); - } - - $last_condition = $condition; - } - } - - switch ($current_condition) { - case 'AND': - return '(&'.$filter.')'; - - case 'OR': - return '(|'.$filter.')'; - - default: - throw new Kohana_Exception('Condition :condition not handled.',array(':condition'=>$condition)); - } - } -} -?> diff --git a/application/classes/PLA/SystemMessage.php b/application/classes/PLA/SystemMessage.php deleted file mode 100644 index 3492919..0000000 --- a/application/classes/PLA/SystemMessage.php +++ /dev/null @@ -1,65 +0,0 @@ -$media) - Style::add(array( - 'type'=>'file', - 'data'=>$data, - 'media'=>$media, - )); - } - - /** - * Return an instance of this class - * - * @return Block - */ - public static function factory() { - return new SystemMessage; - } - - /** - * Render this block - * - * @see HTMLRender::render() - */ - protected function render() { - $output = ''; - - foreach (static::$_data as $value) - $output .= View::factory(Kohana::Config('config.theme').'/block') - ->set('title',empty($value['title']) ? '' : $value['title']) - ->set('subtitle',empty($value['subtitle']) ? '' : $value['subtitle']) - ->set('body',empty($value['body']) ? '' : $value['body']) - ->set('footer',empty($value['footer']) ? '' : $value['footer']); - - return $output; - } -} -?> diff --git a/application/classes/SystemMessage.php b/application/classes/SystemMessage.php deleted file mode 100644 index bf43e7e..0000000 --- a/application/classes/SystemMessage.php +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/application/config/config.php b/application/config/config.php index 6e94933..045210a 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -4,7 +4,6 @@ * PLA Configuration - System Default Configurable Items. * * @package PLA - * @subpackage System * @category Configuration * @author Deon George * @copyright (c) phpLDAPadmin Development Team diff --git a/application/config/database.php b/application/config/database.php deleted file mode 100644 index 13d1068..0000000 --- a/application/config/database.php +++ /dev/null @@ -1,70 +0,0 @@ - array - ( - 'type' => 'ldap', - 'connection' => array( - /** - * The following options are available for MySQL: - * - * string hostname server hostname, or socket - * string database database name - * string username database username - * string password database password - * boolean persistent use persistent connections? - * - * Ports and sockets may be appended to the hostname. - */ - 'hostname' => 'localhost', - 'database' => 'kohana', - 'username' => FALSE, - 'password' => FALSE, - 'persistent' => FALSE, - ), - 'table_prefix' => '', - 'charset' => 'utf8', - 'caching' => FALSE, - 'profiling' => TRUE, - - 'login_attr'=>'uid', - ), - 'alternate' => array( - 'type' => 'pdo', - 'connection' => array( - /** - * The following options are available for PDO: - * - * string dsn Data Source Name - * string username database username - * string password database password - * boolean persistent use persistent connections? - */ - 'dsn' => 'mysql:host=localhost;dbname=kohana', - 'username' => 'root', - 'password' => 'r00tdb', - 'persistent' => FALSE, - ), - /** - * The following extra options are available for PDO: - * - * string identifier set the escaping identifier - */ - 'table_prefix' => '', - 'charset' => 'utf8', - 'caching' => FALSE, - 'profiling' => TRUE, - ), -); diff --git a/application/config/debug.php b/application/config/debug.php index 534ff36..dbd9130 100644 --- a/application/config/debug.php +++ b/application/config/debug.php @@ -4,7 +4,6 @@ * PLA Configuration - Debug Settings * * @package PLA - * @subpackage Debug * @category Configuration * @author Deon George * @copyright (c) 2013 phpLDAPadmin Development Team diff --git a/doc/uidpool.schema b/doc/uidpool.schema deleted file mode 100755 index 7154740..0000000 --- a/doc/uidpool.schema +++ /dev/null @@ -1,11 +0,0 @@ -## -## Used for storing the next gid and next uid in the the directory -## -objectclass ( 1.3.6.1.4.1.7165.1.2.2.3 NAME 'uidPool' SUP top AUXILIARY - DESC 'Pool for allocating UNIX uids' - MUST ( uidNumber $ cn ) ) - - -objectclass ( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' SUP top AUXILIARY - DESC 'Pool for allocating UNIX gids' - MUST ( gidNumber $ cn ) ) diff --git a/modules/ldap b/modules/ldap new file mode 160000 index 0000000..a82edbf --- /dev/null +++ b/modules/ldap @@ -0,0 +1 @@ +Subproject commit a82edbf64c8211588e6a21b0b581de245404c603