To solve this we created a PHP script to implement Bulk Import in Redmine database.
/* ----------------- PHP script ------------------- */
//Postgres Variables
$pg_sqldb_host = "pghost";
$pg_sqldb_user = "pguser";
$pg_sqldb_pass = "pgpass";
$pg_sqldb_name = "redmine";
// LDAP variables
$ldaphost = "ldap.server.com"; // your ldap servers
$ldapport = 389; // your ldap server's port number
// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport) or die("Could not connect to $ldaphost");
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
$login = ldap_bind( $ldapconn, "ldapuser", "ldappass" );
$attributes = array("uid", "displayname", "mail");
$filter = "(uid=*)";
$result = ldap_search($ldapconn, $search_base, $filter, $attributes) or die("error in query") ;
$data = ldap_get_entries($ldapconn, $result);
$redmine_link = pg_connect("host=$pg_sqldb_host port=5432 dbname=$pg_sqldb_name user=$pg_sqldb_user password=$pg_sqldb_pass") or die("Could not connect to Redmine: " . pg_last_error());
$query = "select MAX(id)+1 from users";
$result = pg_query($redmine_link, $query);
$nextid = pg_fetch_result($result, 0, 0);
for ($i=0; $i<=$data["count"];$i++) {
$query = "select id from users where login='" . $data[$i]["uid"][0] . "'";
$result = pg_query($redmine_link, $query);
$rows = pg_num_rows($result);
if($rows == 0 )
{
$name = split(" " , $data[$i]["displayname"][0]);
$query = "INSERT INTO users (id, login, firstname, lastname, mail, mail_notification, admin, status, language, auth_source_id, created_on, type)
VALUES($nextid,'" . $data[$i]["uid"][0] . "','" . $name[0] . "','" . $name[1] . "','" . $data[$i]["mail"][0] . "',false,false,1,'en',$auth_source_id,CURRENT_TIMESTAMP,'User')";
$result = pg_query($redmine_link, $query);
$rows = pg_affected_rows($result);
//user doesn't exists add user
echo ("User " . $data[$i]["uid"][0] . " added successfully
");
$nextid++;
}
else
{
echo ("User " . $data[$i]["uid"][0] . " already exists
");
}
}
ldap_unbind($login);
ldap_close($ldapconn);
print("Users imported successfully
");
?>
/* ----------------- end of script ------------------- */
You may add script in schedule to run every 24 hours.
Linux : add php script in crontab.
0 0 * * * * root /user/bin/php /path/phpscript >> /var/log/logfile
Windows: add php script in windows scheduler.
Comments are most welcome.
2 comments:
Thank you a lot for sharing this with all of us you really recognise what you are speaking approximately! Bookmarked. Please also visit my site =). We will have a hyperlink trade agreement between us craigslist colorado springs
Baccarat | FEBCasino
Baccarat is a traditional European-style casino 메리트 카지노 game where players 바카라 사이트 pick a the dealer 제왕 카지노 plays a hand of cards against the dealer who has chosen a number of
Post a Comment