diff -Naur account/login_form.php account/login_form.php --- account/login_form.php 2008-01-15 08:08:02.000000000 +1100 +++ account/login_form.php 2008-05-30 09:09:21.000000000 +1000 @@ -59,7 +59,7 @@

-
+ @@ -104,4 +104,4 @@
- \ No newline at end of file + diff -Naur account/login_ldap.php account/login_ldap.php --- account/login_ldap.php 1970-01-01 10:00:00.000000000 +1000 +++ account/login_ldap.php 2008-05-30 09:09:21.000000000 +1000 @@ -0,0 +1,126 @@ + wb groups from database +$query = "SELECT group_id, ldap_dn FROM ".TABLE_PREFIX."groups"; +$results = $database->query($query); +while($row = $results->fetchRow()) { + + $ldap_group[$row['group_id']] = $row['ldap_dn']; + +} + +$ldapconn = ldap_connect($ldap_host) + or die("Could not connect to LDAP server."); + +$bind = ldap_bind($ldapconn, $ldap_binddn, $ldap_bindpw) + or die("LDAP bind failed.."); + + +$filter="(&(objectclass=inetorgperson)($ldap_user=$username))"; +$attrs = array($ldap_user, $ldap_pass, $ldap_gn, $ldap_sn, $ldap_mail, $ldap_member); + +$sr=ldap_search($ldapconn, $dn, $filter, $attrs); + +$entryid = ldap_first_entry($ldapconn, $sr); + +if (!$entryid) { + ldap_close($ldapconn); + //echo "Cannot find user"; + require('login.php'); + die(); +} + +$dn = ldap_get_dn($ldapconn, $entryid); + +if (!ldap_compare($ldapconn, $dn, $ldap_pass, $password)) { + ldap_close($ldapconn); + //echo "Invalid password"; + require('login.php'); + die (); +} + +$gn = ldap_get_values($ldapconn, $entryid, $ldap_gn); +$sn = ldap_get_values($ldapconn, $entryid, $ldap_sn); +$mail = ldap_get_values($ldapconn, $entryid, $ldap_mail); + +foreach (ldap_get_values($ldapconn, $entryid, $ldap_member) as $group) { + foreach ($ldap_group as $wb_group => $ld_group) { + + if ($ld_group == $group) { + $wb_member[] = $wb_group; + } + } +} + +$display_name = mysql_escape_string($gn[0]." ".$sn[0]); +$email = $mail[0]; +$active = 1; +$home_folder = ""; + +ldap_close($ldapconn); + +if ($username == $ldap_admin) { + $group_id = ",1"; +} + + +if (is_array($wb_member)) { + foreach ($wb_member as $group_name) { + + +// $query = "SELECT group_id FROM ".TABLE_PREFIX."groups WHERE name = '".$group_name."'"; +// $results = $database->query($query); +// $group_row = $results->fetchRow(); +// $group_id .= ",".$group_row["group_id"]; + + $group_id .= ",".$group_name; + } + + $group_id = substr($group_id, 1); +} + + +$query = "SELECT user_id FROM ".TABLE_PREFIX."users WHERE username = '$username'"; + +$results = $database->query($query); + +// check is the user exists +if($results->numRows() == 0) { + // create the user + + $query = "INSERT INTO ".TABLE_PREFIX."users (groups_id,active,username,password,display_name,home_folder,email,timezone) VALUES ('$group_id', '$active', '$username','$md5_password','$display_name','$home_folder','$email','-72000')"; + $database->query($query); + + if($database->is_error()) { + //echo 'error'; + } else { + //echo 'success'; + } +} + +// MD5 supplied password +$md5_password = md5($password); +$query = "UPDATE ".TABLE_PREFIX."users SET groups_id = '$group_id', display_name = '$display_name', email = '$email', password = '$md5_password' WHERE username = '$username'"; + +$database->query($query); +if($database->is_error()) { + //echo 'error'; +} else { + //echo 'success'; +} + + + +require('login.php'); + +?> diff -Naur admin/groups/add.php admin/groups/add.php --- admin/groups/add.php 2007-12-24 01:37:02.000000000 +1100 +++ admin/groups/add.php 2008-05-30 09:09:21.000000000 +1000 @@ -33,6 +33,7 @@ // Gather details entered $group_name = $admin->get_post('group_name'); +$group_ldap = $admin->get_post('group_ldap'); // Create a javascript back link $js_back = "javascript: history.go(-1);"; @@ -50,11 +51,11 @@ require(ADMIN_PATH.'/groups/get_permissions.php'); // Update the database -$query = "INSERT INTO ".TABLE_PREFIX."groups (name,system_permissions,module_permissions,template_permissions) VALUES ('$group_name','$system_permissions','$module_permissions','$template_permissions')"; - +$query = "INSERT INTO ".TABLE_PREFIX."groups (name,ldap_dn,system_permissions,module_permissions,template_permissions) VALUES ('$group_name','$group_ldap','$system_permissions','$module_permissions','$template_permissions')"; $database->query($query); if($database->is_error()) { $admin->print_error($database->get_error()); + die(); } else { $admin->print_success($MESSAGE['GROUPS']['ADDED'], ADMIN_URL.'/groups/index.php'); } @@ -62,4 +63,4 @@ // Print admin footer $admin->print_footer(); -?> \ No newline at end of file +?> diff -Naur admin/groups/group_form.html admin/groups/group_form.html --- admin/groups/group_form.html 2008-01-15 05:45:02.000000000 +1100 +++ admin/groups/group_form.html 2008-05-30 09:09:21.000000000 +1000 @@ -21,6 +21,12 @@ + + LDAP Group DN: + + + + @@ -286,4 +292,4 @@
- \ No newline at end of file + diff -Naur admin/groups/groups.php admin/groups/groups.php --- admin/groups/groups.php 2008-02-02 09:53:02.000000000 +1100 +++ admin/groups/groups.php 2008-05-30 09:09:21.000000000 +1000 @@ -58,6 +58,7 @@ 'SUBMIT_TITLE' => $TEXT['SAVE'], 'GROUP_ID' => $group['group_id'], 'GROUP_NAME' => $group['name'], + 'GROUP_LDAP' => $group['ldap_dn'], 'ADVANCED_ACTION' => 'groups.php' ) ); @@ -185,4 +186,4 @@ // Print admin footer $admin->print_footer(); -?> \ No newline at end of file +?> diff -Naur admin/groups/save.php admin/groups/save.php --- admin/groups/save.php 2008-02-02 09:53:02.000000000 +1100 +++ admin/groups/save.php 2008-05-30 09:09:21.000000000 +1000 @@ -41,6 +41,7 @@ // Gather details entered $group_name = $admin->get_post_escaped('group_name'); +$group_ldap = $admin->get_post_escaped('group_ldap'); // Create a javascript back link $js_back = "javascript: history.go(-1);"; @@ -54,9 +55,9 @@ require_once(ADMIN_PATH.'/groups/get_permissions.php'); // Update the database -$query = "UPDATE ".TABLE_PREFIX."groups SET name = '$group_name', system_permissions = '$system_permissions', module_permissions = '$module_permissions', template_permissions = '$template_permissions' WHERE group_id = '$group_id'"; - +$query = "UPDATE ".TABLE_PREFIX."groups SET name = '$group_name', ldap_dn = '$group_ldap', system_permissions = '$system_permissions', module_permissions = '$module_permissions', template_permissions = '$template_permissions' WHERE group_id = '$group_id'"; $database->query($query); + if($database->is_error()) { $admin->print_error($database->get_error()); } else { @@ -66,4 +67,4 @@ // Print admin footer $admin->print_footer(); -?> \ No newline at end of file +?> diff -Naur install/index.php install/index.php --- install/index.php 2008-04-08 03:23:11.000000000 +1000 +++ install/index.php 2008-05-30 09:09:21.000000000 +1000 @@ -201,8 +201,8 @@ Writeable'; } elseif(!file_exists('../languages/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?> wb/temp/ Writeable'; } elseif(!file_exists('../temp/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?> -   -   + wb/ldap_config.php + Writeable'; } elseif(!file_exists('../ldap_config.php')) { echo 'File Not Found'; } else { echo 'Unwriteable'; } ?> @@ -396,7 +396,91 @@ +
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

 

Step 8 (LDAP)

Please enter your LDAP settings below...
Hostname: + +
Search Base: + +
Bind User DN: + +  Bind Password: + +
Attribute Mappings 
Username + +
Password + +
Given Name + +
Surname + +
Email + +
Group Membership + +
Admin Username + +   
diff -Naur install/save.php install/save.php --- install/save.php 2008-04-06 05:24:10.000000000 +1000 +++ install/save.php 2008-05-30 09:09:21.000000000 +1000 @@ -327,6 +327,44 @@ set_error("The configuration file $config_filename is not writable. Change its permissions so it is, then re-run step 4."); } + +// Create LDAP config file + +$ldap_config_content = +""; + +$ldap_config_filename = '../ldap_config.php'; + +// Check if the file exists and is writable first. +if(file_exists($ldap_config_filename) AND is_writable($ldap_config_filename)) { + if(!$handle = fopen($ldap_config_filename, 'w')) { + set_error("Cannot open the configuration file ($ldap_config_filename)"); + } else { + if (fwrite($handle, $ldap_config_content) === FALSE) { + set_error("Cannot write to the configuration file ($lda_config_filename)"); + } + // Close file + fclose($handle); + } +} else { + set_error("The configuration file $ldaP_config_filename is not writable. Change its permissions so it is, then re-run step 4."); +} + + // Define configuration vars define('DB_TYPE', 'mysql'); define('DB_HOST', $database_host); @@ -514,6 +552,7 @@ // Groups table $groups = 'CREATE TABLE `'.TABLE_PREFIX.'groups` ( `group_id` INT NOT NULL auto_increment,' . ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `ldap_dn` TEXT NOT NULL ,' . ' `system_permissions` TEXT NOT NULL ,' . ' `module_permissions` TEXT NOT NULL ,' . ' `template_permissions` TEXT NOT NULL ,' @@ -550,7 +589,7 @@ // Admin group $full_system_permissions = 'pages,pages_view,pages_add,pages_add_l0,pages_settings,pages_modify,pages_intro,pages_delete,media,media_view,media_upload,media_rename,media_delete,media_create,addons,modules,modules_view,modules_install,modules_uninstall,templates,templates_view,templates_install,templates_uninstall,languages,languages_view,languages_install,languages_uninstall,settings,settings_basic,settings_advanced,access,users,users_view,users_add,users_modify,users_delete,groups,groups_view,groups_add,groups_modify,groups_delete,admintools'; - $insert_admin_group = "INSERT INTO `".TABLE_PREFIX."groups` VALUES ('1', 'Administrators', '$full_system_permissions', '', '')"; + $insert_admin_group = "INSERT INTO `".TABLE_PREFIX."groups` VALUES ('1', 'Administrators', ' ', '$full_system_permissions', '', '')"; $database->query($insert_admin_group); // Admin user $insert_admin_user = "INSERT INTO `".TABLE_PREFIX."users` (user_id,group_id,groups_id,active,username,password,email,display_name) VALUES ('1','1','1','1','$admin_username','".md5($admin_password)."','$admin_email','Administrator')"; diff -Naur ldap_config.php ldap_config.php --- ldap_config.php 1970-01-01 10:00:00.000000000 +1000 +++ ldap_config.php 2008-05-30 09:09:21.000000000 +1000 @@ -0,0 +1,15 @@ +