. */ @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 "
" . _("Home") . " > " . _(getModuleName($_GET["q"])) . " >
" . _('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) { ?>


" enctype="multipart/form-data">
Mode *
*
*
*

* "> ">

    1. -
    2. * -
    3. * -
    4. * -
    5. * -
    6. -
    7. * -
    8. * -
    9. -
    10. -
    11. - (yyyy-mm-dd)
    12. * -
    13. -
    14. -
    15. -
    16. -
    17. -
    18. -
    19. -
    20. -
    21. -
    22. -
    23. -
    24. -
    25. -
    26. -
    27. -
    28. -
    29. -
    30. -
    31. -
    32. -
    33. -
    34. -
    35. -
    36. -
    37. -
    38. -
    39. -
    40. -
    41. -
    42. - 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) { } } } } } } ?>