.
*/
@session_start() ;
if (isActionAccessible($guid, $connection2, "/modules/User Admin/import_users.php")==FALSE) {
//Acess denied
print "
" ;
print _("You do not have access to this action.") ;
print "
" ;
}
else {
//Proceed!
print "" ;
print "
" . _('Import Users') . "
" ;
print "
" ;
$step=NULL ;
if (isset($_GET["step"])) {
$step=$_GET["step"] ;
}
if ($step=="") {
$step=1 ;
}
else if (($step!=1) AND ($step!=2)) {
$step=1 ;
}
//STEP 1, SELECT TERM
if ($step==1) {
?>
- -
- * -
- * -
- * -
- * -
- -
- * -
- * -
- -
- -
- - (yyyy-mm-dd)
- * -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- - yyyy-mm-dd
" ;
print _("Prepare Database Tables") ;
print "" ;
//Lock tables
$lockFail=false ;
try {
$sql="LOCK TABLES gibbonPerson WRITE, gibbonHouse WRITE" ;
$result=$connection2->query($sql);
}
catch(PDOException $e) {
$lockFail=true ;
$proceed=false ;
}
if ($lockFail==true) {
print "" ;
print _("The database could not be locked for use.") ;
print "
" ;
}
else if ($lockFail==false) {
print "" ;
print _("The database was successfully locked.") ;
print "
" ;
}
if ($lockFail==FALSE) {
//READ IN DATA
if ($proceed==true) {
print "" ;
print _("File Import") ;
print "
" ;
$importFail=false ;
$csvFile=$_FILES['file']['tmp_name'] ;
$handle=fopen($csvFile, "r");
$users=array() ;
$userCount=0 ;
$userSuccessCount=0 ;
while (($data=fgetcsv($handle, 100000, stripslashes($_POST["fieldDelimiter"]), stripslashes($_POST["stringEnclosure"]))) !==FALSE) {
if ($data[1]!="" AND $data[2]!="" AND $data[3]!="" AND $data[4]!="" AND $data[6]!="" AND $data[7]!="" AND $data[11]!="") {
$users[$userSuccessCount]["title"]="" ; if (isset($data[0])) { $users[$userSuccessCount]["title"]=$data[0] ; }
$users[$userSuccessCount]["surname"]="" ; if (isset($data[1])) { $users[$userSuccessCount]["surname"]=$data[1] ; }
$users[$userSuccessCount]["firstName"]="" ; if (isset($data[2])) { $users[$userSuccessCount]["firstName"]=$data[2] ; }
$users[$userSuccessCount]["preferredName"]="" ; if (isset($data[3])) { $users[$userSuccessCount]["preferredName"]=$data[3] ; }
$users[$userSuccessCount]["officialName"]="" ; if (isset($data[4])) { $users[$userSuccessCount]["officialName"]=$data[4] ; }
$users[$userSuccessCount]["nameInCharacters"]="" ; if (isset($data[5])) { $users[$userSuccessCount]["nameInCharacters"]=$data[5] ; }
$users[$userSuccessCount]["gender"]="" ; if (isset($data[6])) { $users[$userSuccessCount]["gender"]=$data[6] ; }
$users[$userSuccessCount]["username"]="" ; if (isset($data[7])) { $users[$userSuccessCount]["username"]=$data[7] ; }
$users[$userSuccessCount]["password"]="" ; if (isset($data[8])) { $users[$userSuccessCount]["password"]=$data[8] ; }
$users[$userSuccessCount]["house"]="" ; if (isset($data[9])) { $users[$userSuccessCount]["house"]=$data[9] ; }
$users[$userSuccessCount]["dob"]="" ; if (isset($data[10])) { $users[$userSuccessCount]["dob"]=$data[10] ; }
$users[$userSuccessCount]["role"]="" ; if (isset($data[11])) { $users[$userSuccessCount]["role"]=$data[11] ; }
$users[$userSuccessCount]["email"]="" ; if (isset($data[12])) { $users[$userSuccessCount]["email"]=$data[12] ; }
$users[$userSuccessCount]["image_240"]="" ; if (isset($data[13])) { $users[$userSuccessCount]["image_240"]=$data[13] ; }
$users[$userSuccessCount]["address1"]="" ; if (isset($data[14])) { $users[$userSuccessCount]["address1"]=$data[14] ; }
$users[$userSuccessCount]["address1District"]="" ; if (isset($data[15])) { $users[$userSuccessCount]["address1District"]=$data[15] ; }
$users[$userSuccessCount]["address1Country"]="" ; if (isset($data[16])) { $users[$userSuccessCount]["address1Country"]=$data[16] ; }
$users[$userSuccessCount]["address2"]="" ; if (isset($data[17])) { $users[$userSuccessCount]["address2"]=$data[17] ; }
$users[$userSuccessCount]["address2District"]="" ; if (isset($data[18])) { $users[$userSuccessCount]["address2District"]=$data[18] ; }
$users[$userSuccessCount]["address2Country"]="" ; if (isset($data[19])) { $users[$userSuccessCount]["address2Country"]=$data[19] ; }
$users[$userSuccessCount]["phone1Type"]="" ; if (isset($data[20])) { $users[$userSuccessCount]["phone1Type"]=$data[20] ; }
$users[$userSuccessCount]["phone1CountryCode"]="" ; if (isset($data[21])) { $users[$userSuccessCount]["phone1CountryCode"]=$data[21] ; }
$users[$userSuccessCount]["phone1"]="" ; if (isset($data[22])) { $users[$userSuccessCount]["phone1"]=preg_replace('/[^0-9+]/', '', $data[22]) ; }
$users[$userSuccessCount]["phone2Type"]="" ; if (isset($data[23])) { $users[$userSuccessCount]["phone2Type"]=$data[23] ; }
$users[$userSuccessCount]["phone2CountryCode"]="" ; if (isset($data[24])) { $users[$userSuccessCount]["phone2CountryCode"]=$data[24] ; }
$users[$userSuccessCount]["phone2"]="" ; if (isset($data[25])) { $users[$userSuccessCount]["phone2"]=preg_replace('/[^0-9+]/', '', $data[25]) ; }
$users[$userSuccessCount]["phone3Type"]="" ; if (isset($data[26])) { $users[$userSuccessCount]["phone3Type"]=$data[26] ; }
$users[$userSuccessCount]["phone3CountryCode"]="" ; if (isset($data[27])) { $users[$userSuccessCount]["phone3CountryCode"]=$data[27] ; }
$users[$userSuccessCount]["phone3"]="" ; if (isset($data[28])) { $users[$userSuccessCount]["phone3"]=preg_replace('/[^0-9+]/', '', $data[28]) ; }
$users[$userSuccessCount]["phone4Type"]="" ; if (isset($data[29])) { $users[$userSuccessCount]["phone4Type"]=$data[29] ; }
$users[$userSuccessCount]["phone4CountryCode"]="" ; if (isset($data[30])) { $users[$userSuccessCount]["phone4CountryCode"]=$data[30] ; }
$users[$userSuccessCount]["phone4"]="" ; if (isset($data[31])) { $users[$userSuccessCount]["phone4"]=preg_replace('/[^0-9+]/', '', $data[31]) ; }
$users[$userSuccessCount]["website"]="" ; if (isset($data[32])) { $users[$userSuccessCount]["website"]=$data[32] ; }
$users[$userSuccessCount]["languageFirst"]="" ; if (isset($data[33])) { $users[$userSuccessCount]["languageFirst"]=$data[33] ; }
$users[$userSuccessCount]["languageSecond"]="" ; if (isset($data[34])) { $users[$userSuccessCount]["languageSecond"]=$data[34] ; }
$users[$userSuccessCount]["profession"]="" ; if (isset($data[35])) { $users[$userSuccessCount]["profession"]=$data[35] ; }
$users[$userSuccessCount]["employer"]="" ; if (isset($data[36])) { $users[$userSuccessCount]["employer"]=$data[36] ; }
$users[$userSuccessCount]["jobTitle"]="" ; if (isset($data[37])) { $users[$userSuccessCount]["jobTitle"]=$data[37] ; }
$users[$userSuccessCount]["emergency1Name"]="" ; if (isset($data[38])) { $users[$userSuccessCount]["emergency1Name"]=$data[38] ; }
$users[$userSuccessCount]["emergency1Number1"]="" ; if (isset($data[39])) { $users[$userSuccessCount]["emergency1Number1"]=$data[39] ; }
$users[$userSuccessCount]["emergency1Number2"]="" ; if (isset($data[40])) { $users[$userSuccessCount]["emergency1Number2"]=$data[40] ; }
$users[$userSuccessCount]["emergency1Relationship"]="" ; if (isset($data[41])) { $users[$userSuccessCount]["emergency1Relationship"]=$data[41] ; }
$users[$userSuccessCount]["emergency2Name"]="" ; if (isset($data[42])) { $users[$userSuccessCount]["emergency2Name"]=$data[42] ; }
$users[$userSuccessCount]["emergency2Number1"]="" ; if (isset($data[43])) { $users[$userSuccessCount]["emergency2Number1"]=$data[43] ; }
$users[$userSuccessCount]["emergency2Number2"]="" ; if (isset($data[44])) { $users[$userSuccessCount]["emergency2Number2"]=$data[44] ; }
$users[$userSuccessCount]["emergency2Relationship"]="" ; if (isset($data[45])) { $users[$userSuccessCount]["emergency2Relationship"]=$data[45] ; }
$users[$userSuccessCount]["dateStart"]="" ; if (isset($data[46])) { $users[$userSuccessCount]["dateStart"]=$data[46] ; }
$userSuccessCount++ ;
}
else {
print "" ;
print sprintf(_('User with username %1$s had some information malformations.'), $data[7]) ;
print "
" ;
}
$userCount++ ;
}
fclose($handle);
if ($userSuccessCount==0) {
print "" ;
print _("No useful users were detected in the import file (perhaps they did not meet minimum requirements), so the import will be aborted.") ;
print "
" ;
$proceed=false ;
}
else if ($userSuccessCount<$userCount) {
print "" ;
print _("Some users could not be successfully read or used, so the import will be aborted.") ;
print "
" ;
$proceed=false ;
}
else if ($userSuccessCount==$userCount) {
print "" ;
print _("All users could be read and used, so the import will proceed.") ;
print "
" ;
}
else {
print "" ;
print _("An unknown error occured, so the import will be aborted.") ;
print "
" ;
$proceed=false ;
}
}
if ($proceed==TRUE) {
//SET USERS NOT IN IMPORT TO LEFT
print "" ;
print _("Set To Left") ;
print "
" ;
$setLeftFail=FALSE ;
$usernameWhere="(" ;
foreach ($users AS $user) {
$usernameWhere.="'" . $user["username"] . "'," ;
}
$usernameWhere=substr($usernameWhere,0,-1) ;
$usernameWhere.=")" ;
try {
$data=array();
$sql="UPDATE gibbonPerson SET status='Left' WHERE username NOT IN $usernameWhere AND username <> '" . $_SESSION[$guid]["username"] . "'" ;
$result=$connection2->prepare($sql);
$result->execute($data);
}
catch(PDOException $e) {
$setLeftFail=TRUE ;
}
if ($setLeftFail==TRUE) {
print "" ;
print _("An error was encountered in setting users not in the import to Left") ;
print "
" ;
}
else {
print "" ;
print _("All users not in the import (except you) have been set to left.") ;
print "
" ;
}
//CHECK USERS IN IMPORT FOR EXISTENCE, IF NOT EXIST, ADD THEM, IF THEY ARE UPDATE THEM
print "" ;
print _("Update & Insert") ;
print "
" ;
foreach ($users AS $user) {
$userProceed=TRUE ;
try {
$data=array("username"=>$user["username"]);
$sql="SELECT * FROM gibbonPerson WHERE username=:username" ;
$result=$connection2->prepare($sql);
$result->execute($data);
}
catch(PDOException $e) {
$userProceed=FALSE ;
}
if ($userProceed==FALSE) {
print "" ;
print _("There was an error locating user:") . " " . $user["username"] . "." ;
print "
" ;
}
else {
if ($result->rowCount()==1) {
$row=$result->fetch() ;
//UPDATE USER
$updateUserFail=FALSE ;
$role="" ;
$roleAll=$row["gibbonRoleIDAll"] ;
if ($user["role"]=="Student") {
$role="003" ;
}
if ($user["role"]=="Teacher") {
$role="002" ;
}
if ($user["role"]=="Support Staff") {
$role="006" ;
}
if ($user["role"]=="Parent") {
$role="004" ;
}
if (strpos($role, $row["gibbonRoleIDAll"])===0) {
$roleAll=$row["gibbonRoleIDAll"]. "," . $role ;
}
try {
$data=array("title"=>$user["title"], "surname"=>$user["surname"], "firstName"=>$user["firstName"], "preferredName"=>$user["preferredName"], "officialName"=>$user["officialName"], "gender"=>$user["gender"], "house"=>$user["house"], "dob"=>$user["dob"], "gibbonRoleIDPrimary"=>$role, "gibbonRoleIDAll"=>$roleAll, "email"=>$user["email"], "image_240"=>$user["image_240"], "address1"=>$user["address1"], "address1District"=>$user["address1District"], "address1Country"=>$user["address1Country"], "address2"=>$user["address2"], "address2District"=>$user["address2District"], "address2Country"=>$user["address2Country"], "phone1Type"=>$user["phone1Type"], "phone1CountryCode"=>$user["phone1CountryCode"], "phone1"=>$user["phone1"], "phone2Type"=>$user["phone2Type"], "phone2CountryCode"=>$user["phone2CountryCode"], "phone2"=>$user["phone2"], "phone3Type"=>$user["phone3Type"], "phone3CountryCode"=>$user["phone3CountryCode"], "phone3"=>$user["phone3"], "phone4Type"=>$user["phone4Type"], "phone4CountryCode"=>$user["phone4CountryCode"], "phone4"=>$user["phone4"], "website"=>$user["website"], "languageFirst"=>$user["languageFirst"], "languageSecond"=>$user["languageSecond"], "profession"=>$user["profession"], "employer"=>$user["employer"], "jobTitle"=>$user["jobTitle"], "emergency1Name"=>$user["emergency1Name"], "emergency1Number1"=>$user["emergency1Number1"], "emergency1Number2"=>$user["emergency1Number2"], "emergency1Relationship"=>$user["emergency1Relationship"], "emergency2Name"=>$user["emergency2Name"], "emergency2Number1"=>$user["emergency2Number1"], "emergency2Number2"=>$user["emergency2Number2"], "emergency2Relationship"=>$user["emergency2Relationship"], "dateStart"=>$user["dateStart"], "nameInCharacters"=>$user["nameInCharacters"], "username"=>$user["username"]);
$sql="UPDATE gibbonPerson SET title=:title, surname=:surname, firstName=:firstName, preferredName=:preferredName, officialName=:officialName, gender=:gender, gibbonHouseID=(SELECT gibbonHouseID FROM gibbonHouse WHERE nameShort=:house), dob=:dob, gibbonRoleIDPrimary=:gibbonRoleIDPrimary, gibbonRoleIDAll=:gibbonRoleIDAll, status='Full', email=:email, image_240=:image_240, address1=:address1, address1District=:address1District, address1Country=:address1Country, address2=:address2, address2District=:address2District, address2Country=:address2Country, phone1Type=:phone1Type, phone1CountryCode=:phone1CountryCode, phone1=:phone1, phone2Type=:phone2Type, phone2CountryCode=:phone2CountryCode, phone2=:phone2, phone3Type=:phone3Type, phone3CountryCode=:phone3CountryCode, phone3=:phone3, phone4Type=:phone4Type, phone4CountryCode=:phone4CountryCode, phone4=:phone4, website=:website, languageFirst=:languageFirst, languageSecond=:languageSecond, profession=:profession, employer=:employer, jobTitle=:jobTitle, emergency1Name=:emergency1Name, emergency1Number1=:emergency1Number1, emergency1Number2=:emergency1Number2, emergency1Relationship=:emergency1Relationship, emergency2Name=:emergency2Name, emergency2Number1=:emergency2Number1, emergency2Number2=:emergency2Number2, emergency2Relationship=:emergency2Relationship, dateStart=:dateStart, dateEnd=NULL, nameInCharacters=:nameInCharacters WHERE username=:username" ;
$result=$connection2->prepare($sql);
$result->execute($data);
}
catch(PDOException $e) {
print $e->getMessage() ;
$updateUserFail=TRUE ;
}
//Spit out results
if ($updateUserFail==TRUE) {
print "" ;
print _("There was an error updating user:") . " " . $user["username"] . "." ;
print "
" ;
}
else {
print "" ;
print sprintf(_('User %1$s was successfully updated.'), $user["username"]) ;
print "
" ;
}
}
else if ($result->rowCount()==0) {
//ADD USER
$addUserFail=FALSE ;
$salt=getSalt() ;
if ($user["password"]!="") {
$password=$user["password"];
}
else if ($_POST["defaultPassword"]!="") {
$password=$_POST["defaultPassword"];
}
else {
$password=randomPassword(8);
}
$passwordStrong=hash("sha256", $salt.$password) ;
$role="" ;
if ($user["role"]=="Student") {
$role="003" ;
}
if ($user["role"]=="Teacher") {
$role="002" ;
}
if ($user["role"]=="Support Staff") {
$role="006" ;
}
if ($user["role"]=="Parent") {
$role="004" ;
}
$roleAll=$role ;
if ($role=="") {
print "" ;
print _("There was an error with the role of user:") . " " . $user["username"] . "." ;
print "
" ;
}
else {
try {
$data=array("title"=>$user["title"], "surname"=>$user["surname"], "firstName"=>$user["firstName"], "preferredName"=>$user["preferredName"], "officialName"=>$user["officialName"], "gender"=>$user["gender"], "house"=>$user["house"], "dob"=>$user["dob"], "username"=>$user["username"], "passwordStrongSalt"=>$salt, "passwordStrong"=>$passwordStrong, "gibbonRoleIDPrimary"=>$role, "gibbonRoleIDAll"=>$roleAll, "email"=>$user["email"], "image_240"=>$user["image_240"], "address1"=>$user["address1"], "address1District"=>$user["address1District"], "address1Country"=>$user["address1Country"], "address2"=>$user["address2"], "address2District"=>$user["address2District"], "address2Country"=>$user["address2Country"], "phone1Type"=>$user["phone1Type"], "phone1CountryCode"=>$user["phone1CountryCode"], "phone1"=>$user["phone1"], "phone2Type"=>$user["phone2Type"], "phone2CountryCode"=>$user["phone2CountryCode"], "phone2"=>$user["phone2"], "phone3Type"=>$user["phone3Type"], "phone3CountryCode"=>$user["phone3CountryCode"], "phone3"=>$user["phone3"], "phone4Type"=>$user["phone4Type"], "phone4CountryCode"=>$user["phone4CountryCode"], "phone4"=>$user["phone4"], "website"=>$user["website"], "languageFirst"=>$user["languageFirst"], "languageSecond"=>$user["languageSecond"], "profession"=>$user["profession"], "employer"=>$user["employer"], "jobTitle"=>$user["jobTitle"], "emergency1Name"=>$user["emergency1Name"], "emergency1Number1"=>$user["emergency1Number1"], "emergency1Number2"=>$user["emergency1Number2"], "emergency1Relationship"=>$user["emergency1Relationship"], "emergency2Name"=>$user["emergency2Name"], "emergency2Number1"=>$user["emergency2Number1"], "emergency2Number2"=>$user["emergency2Number2"], "emergency2Relationship"=>$user["emergency2Relationship"], "dateStart"=>$user["dateStart"], "nameInCharacters"=>$user["nameInCharacters"]);
$sql="INSERT INTO gibbonPerson SET title=:title, surname=:surname, firstName=:firstName, preferredName=:preferredName, officialName=:officialName, gender=:gender, gibbonHouseID=(SELECT gibbonHouseID FROM gibbonHouse WHERE nameShort=:house), dob=:dob, status='Full', username=:username, passwordStrongSalt=:passwordStrongSalt, passwordStrong=:passwordStrong, gibbonRoleIDPrimary=:gibbonRoleIDPrimary, gibbonRoleIDAll=:gibbonRoleIDAll, passwordForceReset='Y', email=:email, image_240=:image_240, address1=:address1, address1District=:address1District, address1Country=:address1Country, address2=:address2, address2District=:address2District, address2Country=:address2Country, phone1Type=:phone1Type, phone1CountryCode=:phone1CountryCode, phone1=:phone1, phone2Type=:phone2Type, phone2CountryCode=:phone2CountryCode, phone2=:phone2, phone3Type=:phone3Type, phone3CountryCode=:phone3CountryCode, phone3=:phone3, phone4Type=:phone4Type, phone4CountryCode=:phone4CountryCode, phone4=:phone4, website=:website, languageFirst=:languageFirst, languageSecond=:languageSecond, profession=:profession, employer=:employer, jobTitle=:jobTitle, emergency1Name=:emergency1Name, emergency1Number1=:emergency1Number1, emergency1Number2=:emergency1Number2, emergency1Relationship=:emergency1Relationship, emergency2Name=:emergency2Name, emergency2Number1=:emergency2Number1, emergency2Number2=:emergency2Number2, emergency2Relationship=:emergency2Relationship, dateStart=:dateStart, dateEnd=NULL, nameInCharacters=:nameInCharacters" ;
$result=$connection2->prepare($sql);
$result->execute($data);
}
catch(PDOException $e) {
$addUserFail=TRUE ;
print $e->getMessage() ;
}
//Spit out results
if ($addUserFail==TRUE) {
print "" ;
print _("There was an error creating user:") . " " . $user["username"] . "." ;
print "
" ;
}
else {
print "" ;
print sprintf(_('User %1$s was successfully created with password %2$s.'), $user["username"], $password) ;
print "
" ;
}
}
}
else {
print "" ;
print _("There was an error locating user:") . " " . $user["username"] . "." ;
print "
" ;
}
}
}
}
//UNLOCK TABLES
try {
$sql="UNLOCK TABLES" ;
$result=$connection2->query($sql);
}
catch(PDOException $e) { }
}
}
else if ($mode=="import") { //IMPORT
//PREPARE TABLES
print "" ;
print _("Prepare Database Tables") ;
print "
" ;
//Lock tables
$lockFail=false ;
try {
$sql="LOCK TABLES gibbonPerson WRITE, gibbonHouse WRITE" ;
$result=$connection2->query($sql);
}
catch(PDOException $e) {
$lockFail=true ;
$proceed=false ;
}
if ($lockFail==true) {
print "" ;
print _("The database could not be locked for use.") ;
print "
" ;
}
else if ($lockFail==false) {
print "" ;
print _("The database was successfully locked.") ;
print "
" ;
}
if ($lockFail==FALSE) {
//READ IN DATA
if ($proceed==true) {
print "" ;
print _("File Import") ;
print "
" ;
$importFail=false ;
$csvFile=$_FILES['file']['tmp_name'] ;
$handle=fopen($csvFile, "r");
$users=array() ;
$userCount=0 ;
$userSuccessCount=0 ;
while (($data=fgetcsv($handle, 100000, stripslashes($_POST["fieldDelimiter"]), stripslashes($_POST["stringEnclosure"]))) !==FALSE) {
if ($data[1]!="" AND $data[2]!="" AND $data[4]!="" AND $data[5]!="" AND $data[6]!="" ) {
$users[$userSuccessCount]["title"]="" ; if (isset($data[0])) { $users[$userSuccessCount]["title"]=$data[0] ; }
$users[$userSuccessCount]["surname"]="" ; if (isset($data[1])) { $users[$userSuccessCount]["surname"]=$data[1] ; }
$users[$userSuccessCount]["firstName"]="" ; if (isset($data[2])) { $users[$userSuccessCount]["firstName"]=$data[2] ; }
$users[$userSuccessCount]["preferredName"]="" ; if (isset($data[3])) { $users[$userSuccessCount]["preferredName"]=$data[3] ; }
$users[$userSuccessCount]["officialName"]="" ; if (isset($data[4])) { $users[$userSuccessCount]["officialName"]=$data[4] ; }
$users[$userSuccessCount]["gender"]="" ; if (isset($data[5])) { $users[$userSuccessCount]["gender"]=$data[5] ; }
$users[$userSuccessCount]["username"]="" ; if (isset($data[6])) { $users[$userSuccessCount]["username"]=$data[6] ; }
$users[$userSuccessCount]["house"]="" ; if (isset($data[7])) { $users[$userSuccessCount]["house"]=$data[7] ; }
$users[$userSuccessCount]["dob"]="" ; if (isset($data[8])) { $users[$userSuccessCount]["dob"]=$data[8] ; }
$users[$userSuccessCount]["role"]="" ; if (isset($data[9])) { $users[$userSuccessCount]["role"]=$data[9] ; }
$users[$userSuccessCount]["email"]="" ; if (isset($data[10])) { $users[$userSuccessCount]["email"]=$data[10] ; }
$users[$userSuccessCount]["image_240"]="" ; if (isset($data[12])) { $users[$userSuccessCount]["image_240"]=$data[12] ; }
$users[$userSuccessCount]["address1"]="" ; if (isset($data[13])) { $users[$userSuccessCount]["address1"]=$data[13] ; }
$users[$userSuccessCount]["address1District"]="" ; if (isset($data[14])) { $users[$userSuccessCount]["address1District"]=$data[14] ; }
$users[$userSuccessCount]["address1Country"]="" ; if (isset($data[15])) { $users[$userSuccessCount]["address1Country"]=$data[15] ; }
$users[$userSuccessCount]["address2"]="" ; if (isset($data[16])) { $users[$userSuccessCount]["address2"]=$data[16] ; }
$users[$userSuccessCount]["address2District"]="" ; if (isset($data[17])) { $users[$userSuccessCount]["address2District"]=$data[17] ; }
$users[$userSuccessCount]["address2Country"]="" ; if (isset($data[18])) { $users[$userSuccessCount]["address2Country"]=$data[18] ; }
$users[$userSuccessCount]["phone1Type"]="" ; if (isset($data[19])) { $users[$userSuccessCount]["phone1Type"]=$data[19] ; }
$users[$userSuccessCount]["phone1CountryCode"]="" ; if (isset($data[20])) { $users[$userSuccessCount]["phone1CountryCode"]=$data[20] ; }
$users[$userSuccessCount]["phone1"]="" ; if (isset($data[21])) { $users[$userSuccessCount]["phone1"]=preg_replace('/[^0-9+]/', '', $data[21]) ; }
$users[$userSuccessCount]["phone2Type"]="" ; if (isset($data[22])) { $users[$userSuccessCount]["phone2Type"]=$data[22] ; }
$users[$userSuccessCount]["phone2CountryCode"]="" ; if (isset($data[23])) { $users[$userSuccessCount]["phone2CountryCode"]=$data[23] ; }
$users[$userSuccessCount]["phone2"]="" ; if (isset($data[24])) { $users[$userSuccessCount]["phone2"]=preg_replace('/[^0-9+]/', '', $data[24]) ; }
$users[$userSuccessCount]["phone3Type"]="" ; if (isset($data[25])) { $users[$userSuccessCount]["phone3Type"]=$data[25] ; }
$users[$userSuccessCount]["phone3CountryCode"]="" ; if (isset($data[26])) { $users[$userSuccessCount]["phone3CountryCode"]=$data[26] ; }
$users[$userSuccessCount]["phone3"]="" ; if (isset($data[27])) { $users[$userSuccessCount]["phone3"]=preg_replace('/[^0-9+]/', '', $data[27]) ; }
$users[$userSuccessCount]["phone4Type"]="" ; if (isset($data[28])) { $users[$userSuccessCount]["phone4Type"]=$data[28] ; }
$users[$userSuccessCount]["phone4CountryCode"]="" ; if (isset($data[29])) { $users[$userSuccessCount]["phone4CountryCode"]=$data[29] ; }
$users[$userSuccessCount]["phone4"]="" ; if (isset($data[30])) { $users[$userSuccessCount]["phone4"]=preg_replace('/[^0-9+]/', '', $data[30]) ; }
$users[$userSuccessCount]["website"]="" ; if (isset($data[31])) { $users[$userSuccessCount]["website"]=$data[31] ; }
$users[$userSuccessCount]["languageFirst"]="" ; if (isset($data[32])) { $users[$userSuccessCount]["languageFirst"]=$data[32] ; }
$users[$userSuccessCount]["languageSecond"]="" ; if (isset($data[33])) { $users[$userSuccessCount]["languageSecond"]=$data[33] ; }
$users[$userSuccessCount]["profession"]="" ; if (isset($data[34])) { $users[$userSuccessCount]["profession"]=$data[34] ; }
$users[$userSuccessCount]["employer"]="" ; if (isset($data[35])) { $users[$userSuccessCount]["employer"]=$data[35] ; }
$users[$userSuccessCount]["jobTitle"]="" ; if (isset($data[36])) { $users[$userSuccessCount]["jobTitle"]=$data[36] ; }
$users[$userSuccessCount]["emergency1Name"]="" ; if (isset($data[37])) { $users[$userSuccessCount]["emergency1Name"]=$data[37] ; }
$users[$userSuccessCount]["emergency1Number1"]="" ; if (isset($data[38])) { $users[$userSuccessCount]["emergency1Number1"]=$data[38] ; }
$users[$userSuccessCount]["emergency1Number2"]="" ; if (isset($data[39])) { $users[$userSuccessCount]["emergency1Number2"]=$data[39] ; }
$users[$userSuccessCount]["emergency1Relationship"]="" ; if (isset($data[40])) { $users[$userSuccessCount]["emergency1Relationship"]=$data[40] ; }
$users[$userSuccessCount]["emergency2Name"]="" ; if (isset($data[41])) { $users[$userSuccessCount]["emergency2Name"]=$data[41] ; }
$users[$userSuccessCount]["emergency2Number1"]="" ; if (isset($data[42])) { $users[$userSuccessCount]["emergency2Number1"]=$data[42] ; }
$users[$userSuccessCount]["emergency2Number2"]="" ; if (isset($data[43])) { $users[$userSuccessCount]["emergency2Number2"]=$data[43] ; }
$users[$userSuccessCount]["emergency2Relationship"]="" ; if (isset($data[44])) { $users[$userSuccessCount]["emergency2Relationship"]=$data[44] ; }
$users[$userSuccessCount]["dateStart"]="" ; if (isset($data[45])) { $users[$userSuccessCount]["dateStart"]=$data[45] ; }
$users[$userSuccessCount]["nameInCharacters"]="" ; if (isset($data[46])) { $users[$userSuccessCount]["nameInCharacters"]=$data[46] ; }
$userSuccessCount++ ;
}
else {
print "" ;
print sprintf(_('User with username %1$s had some information malformations.'), $data[7]) ;
print "
" ;
}
$userCount++ ;
}
fclose($handle);
if ($userSuccessCount==0) {
print "" ;
print _("No useful users were detected in the import file (perhaps they did not meet minimum requirements), so the import will be aborted.") ;
print "
" ;
$proceed=false ;
}
else if ($userSuccessCount<$userCount) {
print "" ;
print _("Some users could not be successfully read or used, so the import will be aborted.") ;
print "
" ;
$proceed=false ;
}
else if ($userSuccessCount==$userCount) {
print "" ;
print _("All users could be read and used, so the import will proceed.") ;
print "
" ;
}
else {
print "" ;
print _("An unknown error occured, so the import will be aborted.") ;
print "
" ;
$proceed=false ;
}
}
if ($proceed==TRUE) {
//CHECK USERS IN IMPORT FOR EXISTENCE, IF NOT EXIST, ADD THEM, IF THEY ARE UPDATE THEM
print "" ;
print _("Check & Insert") ;
print "
" ;
foreach ($users AS $user) {
$userProceed=TRUE ;
try {
$data=array("username"=>$user["username"]);
$sql="SELECT * FROM gibbonPerson WHERE username=:username" ;
$result=$connection2->prepare($sql);
$result->execute($data);
}
catch(PDOException $e) {
$userProceed=FALSE ;
}
if ($userProceed==FALSE) {
print "" ;
print _("There was an error locating user:") . " " . $user["username"] . "." ;
print "
" ;
}
else {
if ($result->rowCount()==1) {
$row=$result->fetch() ;
//USER ALREADY EXISTS
print "" ;
print _("There was an error inserting user:") . " " . $user["username"] . "." ;
print "
" ;
}
else if ($result->rowCount()==0) {
//ADD USER
$addUserFail=FALSE ;
$salt=getSalt() ;
if ($_POST["defaultPassword"]!="") {
$password=$_POST["defaultPassword"];
$passwordStrong=hash("sha256", $salt.$password) ;
}
else {
$password=randomPassword(8);
$passwordStrong=hash("sha256", $salt.$password) ;
}
$role="" ;
if ($user["role"]=="Student") {
$role="003" ;
}
if ($user["role"]=="Teacher") {
$role="002" ;
}
if ($user["role"]=="Support Staff") {
$role="006" ;
}
if ($user["role"]=="Parent") {
$role="004" ;
}
$roleAll=$role ;
if ($role=="") {
print "" ;
print _("There was an error with the role of user:") . " " . $user["username"] . "." ;
print "
" ;
}
else {
try {
$data=array("title"=>$user["title"], "surname"=>$user["surname"], "firstName"=>$user["firstName"], "preferredName"=>$user["preferredName"], "officialName"=>$user["officialName"], "gender"=>$user["gender"], "house"=>$user["house"], "dob"=>$user["dob"], "username"=>$user["username"], "passwordStrongSalt"=>$salt, "passwordStrong"=>$passwordStrong, "gibbonRoleIDPrimary"=>$role, "gibbonRoleIDAll"=>$roleAll, "email"=>$user["email"], "image_240"=>$user["image_240"], "address1"=>$user["address1"], "address1District"=>$user["address1District"], "address1Country"=>$user["address1Country"], "address2"=>$user["address2"], "address2District"=>$user["address2District"], "address2Country"=>$user["address2Country"], "phone1Type"=>$user["phone1Type"], "phone1CountryCode"=>$user["phone1CountryCode"], "phone1"=>$user["phone1"], "phone2Type"=>$user["phone2Type"], "phone2CountryCode"=>$user["phone2CountryCode"], "phone2"=>$user["phone2"], "phone3Type"=>$user["phone3Type"], "phone3CountryCode"=>$user["phone3CountryCode"], "phone3"=>$user["phone3"], "phone4Type"=>$user["phone4Type"], "phone4CountryCode"=>$user["phone4CountryCode"], "phone4"=>$user["phone4"], "website"=>$user["website"], "languageFirst"=>$user["languageFirst"], "languageSecond"=>$user["languageSecond"], "profession"=>$user["profession"], "employer"=>$user["employer"], "jobTitle"=>$user["jobTitle"], "emergency1Name"=>$user["emergency1Name"], "emergency1Number1"=>$user["emergency1Number1"], "emergency1Number2"=>$user["emergency1Number2"], "emergency1Relationship"=>$user["emergency1Relationship"], "emergency2Name"=>$user["emergency2Name"], "emergency2Number1"=>$user["emergency2Number1"], "emergency2Number2"=>$user["emergency2Number2"], "emergency2Relationship"=>$user["emergency2Relationship"], "dateStart"=>$user["dateStart"], "nameInCharacters"=>$user["nameInCharacters"]);
$sql="INSERT INTO gibbonPerson SET title=:title, surname=:surname, firstName=:firstName, preferredName=:preferredName, officialName=:officialName, gender=:gender, gibbonHouseID=(SELECT gibbonHouseID FROM gibbonHouse WHERE nameShort=:house), dob=:dob, status='Full', username=:username, passwordStrongSalt=:passwordStrongSalt, passwordStrong=:passwordStrong, gibbonRoleIDPrimary=:gibbonRoleIDPrimary, gibbonRoleIDAll=:gibbonRoleIDAll, passwordForceReset='Y', email=:email, image_240=:image_240, address1=:address1, address1District=:address1District, address1Country=:address1Country, address2=:address2, address2District=:address2District, address2Country=:address2Country, phone1Type=:phone1Type, phone1CountryCode=:phone1CountryCode, phone1=:phone1, phone2Type=:phone2Type, phone2CountryCode=:phone2CountryCode, phone2=:phone2, phone3Type=:phone3Type, phone3CountryCode=:phone3CountryCode, phone3=:phone3, phone4Type=:phone4Type, phone4CountryCode=:phone4CountryCode, phone4=:phone4, website=:website, languageFirst=:languageFirst, languageSecond=:languageSecond, profession=:profession, employer=:employer, jobTitle=:jobTitle, emergency1Name=:emergency1Name, emergency1Number1=:emergency1Number1, emergency1Number2=:emergency1Number2, emergency1Relationship=:emergency1Relationship, emergency2Name=:emergency2Name, emergency2Number1=:emergency2Number1, emergency2Number2=:emergency2Number2, emergency2Relationship=:emergency2Relationship, dateStart=:dateStart, dateEnd=NULL, nameInCharacters=:nameInCharacters" ;
$result=$connection2->prepare($sql);
$result->execute($data);
}
catch(PDOException $e) {
$addUserFail=TRUE ;
print $e->getMessage() ;
}
//Spit out results
if ($addUserFail==TRUE) {
print "" ;
print _("There was an error creating user:") . " " . $user["username"] . "." ;
print "
" ;
}
else {
print "" ;
print sprintf(_('User %1$s was successfully created with password %2$s.'), $user["username"], $password) ;
print "
" ;
}
}
}
else {
print "" ;
print _("There was an error locating user:") . " " . $user["username"] . "." ;
print "
" ;
}
}
}
}
//UNLOCK TABLES
try {
$sql="UNLOCK TABLES" ;
$result=$connection2->query($sql);
}
catch(PDOException $e) { }
}
}
}
}
}
?>