[Evolvis-commits] r46: works with ldap_user.class now and reenabled the pending status

rklein at evolvis.org rklein at evolvis.org
Mon Nov 10 12:22:33 CET 2008


Author: rklein
Date: 2008-11-10 11:22:33 +0000 (Mon, 10 Nov 2008)
New Revision: 46

Modified:
   trunk/gforge_base/login_management/ldap/ldap2sql.php
Log:
works with ldap_user.class now and reenabled the pending status

Modified: trunk/gforge_base/login_management/ldap/ldap2sql.php
===================================================================
--- trunk/gforge_base/login_management/ldap/ldap2sql.php	2008-10-24 10:29:00 UTC (rev 45)
+++ trunk/gforge_base/login_management/ldap/ldap2sql.php	2008-11-10 11:22:33 UTC (rev 46)
@@ -12,10 +12,13 @@
 //global vars and functions for database connection and authentication
 //we use methods from User.class only sparsely as they depend mainly on web I/O
 require ('/etc/gforge/local.inc');
+if(!isset($internal)) //wenn diese seite nicht von zB dem registerscript aufgerufen wurde.
+{
 require ('/usr/share/gforge/common/include/database.php');
 require ('/usr/share/gforge/common/include/account.php');
 require ('/usr/share/gforge/common/include/Error.class');   //needed by User.class
 require ('/usr/share/gforge/common/include/User.class');    //for $u->delete()
+}
 
 error_log ("ldap2sql notice: Starting....... ",0);
 
@@ -28,9 +31,10 @@
 
 //argument defaults
 $ldaphost = "localhost";
-$dn = "dc=my, dc=domain, dc=de";
-$ldapuser="SF_robot";
-$ldappw="mypassword";
+$dn = "dc=evolvis-trial, dc=tarent, dc=de";
+//$ldapuser="SF_robot";
+$ldapuser="admin";
+$ldappw="changeit";
 $deactivate = false;
 
 
@@ -164,13 +168,18 @@
 	//    echo "\nPASSWORD: ".$pw."\n PASSWORD(md5): ".md5($pw)."\n PASSWORD(genunix): ".account_genunixpw($pw)."\n";
 
         //See User.class: create() function. See users-table for defaults, e.g. status='A'
+
+#added 2008-11-10 rklein
+#makes pending status possible for all non-tarent-users
+$status_sql=(isset($info[$i]["uid"][2]) && $info[$i]["uid"][2]=='0')?'P':'A'; 
         $sql_insert = "INSERT into users ".
-                        "(user_name, user_pw, unix_pw, firstname, lastname, realname, ".
+                        "(user_name, user_pw, unix_pw, status, firstname, lastname, realname, ".
                         "shell, unix_uid, unix_gid, email, ". 
                         "add_date, theme_id) ".
                         "VALUES ('".$uname."', '".
                                     md5($pw)."', '".
                                     account_genunixpw($pw)."', '".
+                                    $status_sql."', '".
                                     $info[$i]["givenname"][0]."', '".
                                     $info[$i]["sn"][0]."', '".
                                     $info[$i]["cn"][0]."', '".
@@ -198,6 +207,9 @@
     else {
         //------------ UPDATE record (only if different) -------------        
         $record = db_fetch_array($res_sel);
+	
+	echo "\n".$uname;
+
         //compare passwords - normal users: clear, admin user: crypt
         $pw_eq = true;
         if (strpos($pw,"{crypt}") === 0 && $record['sys_state']!="N"){
@@ -215,7 +227,7 @@
             $record['shell']        == $info[$i]["loginshell"][0] &&
             $record['unix_uid']     == $info[$i]["uidnumber"][0] &&                
             $record['unix_gid']     == $info[$i]["gidnumber"][0] &&
-            $pw_eq &&
+            //$pw_eq &&
             $record['status']       == 'A' && //if user is in LDAP, it has to be "active" in DB 
             $record['email']        == $info[$i]["mail"][0]) { 
                 error_log ("ldap2sql notice: Checking user ".$uname.": No difference - record unchanged.");
@@ -241,7 +253,7 @@
                 "WHERE user_name='" . $uname."' ";
             
             error_log ("ldap2sql notice: ".$sql_update,0); 
-            
+            /*
             //begin transaction
             db_begin();
             $res_up = db_query($sql_update);
@@ -255,6 +267,7 @@
             }           
 
             db_free_result($res_up);
+	    */
         }//end update
     }//end else
 }//end for loop through LDAP records




More information about the evolvis-commits mailing list