requireAdmin();
/** Affiche les informations sur le fichier envoyé par le client
*/
function PrintUploadedFileInfo($form_name_file)
{
echo "Nom du fichier envoyé:".$_FILES[$form_name_file]['name']."
";
echo "Taille: ".$_FILES[$form_name_file]['size']." octets"."
";
echo "Mime type: ".$_FILES[$form_name_file]['type']."
";
echo "Nom du fichier temporaire sur le serveur: ".$_FILES[$form_name_file]['tmp_name']."
";
echo "Erreurs au cours du transfert: ".$_FILES[$form_name_file]['error']."
";
}
$style = new Style();
echo $style->GetHeader(HOTSPOT_NETWORK_NAME.' Import NoCat passwd file');
echo "
Line $row: $data
\n";
if(preg_match("/^(.*):(.*)$/", $data, $matches))
{
//echo "
". print_r($matches)."\n"; $nocat_username = $matches[1]; $nocat_password_hash=$matches[2]; $matches = null; if(preg_match( "/^(.*)@.*$/", $nocat_username, $matches)) { $email = $nocat_username; $original_username = $matches[1]; } else { echo "
NoCat username isn't an email
"; $email = ''; $original_username = $nocat_username; } echo "Generating temporary user from: $original_username; Checking internal duplicates (duplicate usernames in the imported file)
\n"; $username_modified_because_of=null; $username=$original_username; if(isset($import_user[$username])) { $index=1; while(isset($import_user[$username])) { $username_modified_because_of=$username; echo "Can't use $username because it was already generated from the imported file
\n"; $username=$original_username."_$index"; $index++; } echo "Final username is now $username
\n"; } else { echo "Final username is still $username
\n"; } $import_user[$username]['email']=$email; $import_user[$username]['passwd_hash']=convert_nocat_password_hash($nocat_password_hash); $import_user[$username]['original_username']=$original_username; $import_user[$username]['username_modified_because_of']=$username_modified_because_of; $import_user[$username]['is_rejected']=null; $import_user[$username]['reject_reason']=null; } else { echo "Line skipped
\n"; } $row++; } echo "Total of ". ($row-1) ." lines read and ".count($import_user)." candidate users generated.
\n";
foreach($import_user as $username => $user)
{
//echo "
$username
\n"; //echo "". print_r($user)."\n"; $import_user[$username]['is_rejected']=false; if(!empty($user['email'])) { $email_str = $db->EscapeString($user['email']); $db->ExecSqlUniqueRes("SELECT email FROM users WHERE email='$email_str'", $user_info_email, false); if($user_info_email!=null) { $import_user[$username]['is_rejected']=true; $import_user[$username]['reject_reason'] .= "
"._('Sorry, a user account is already associated to the email address: ')."$user[email]
\n"; } } else if(empty($_REQUEST['accept_empty_email'])) { $import_user[$username]['is_rejected']=true; $import_user[$username]['reject_reason'] .= ""._('Sorry, the user must have a email adress.')."
\n";null; } else { $username_str = $db->EscapeString($username); $db->ExecSqlUniqueRes("SELECT user_id FROM users WHERE user_id='$username_str'", $user_info_username, false); if($user_info_username!=null) { $import_user[$username]['is_rejected']=true; $import_user[$username]['reject_reason'] .= ""._('Sorry, a user account already exists with the username: ')."$username
\n"; } } if(!empty($_REQUEST['import_confirm']) && $_REQUEST['import_confirm']=='true' && $import_user[$username]['is_rejected']==false) { $status = ACCOUNT_STATUS_ALLOWED; $token = gentoken(); $reg_date = iso8601_date(time()); $password_hash = $db->EscapeString($user['passwd_hash']); $username = $db->EscapeString($username); $email = $db->EscapeString($user['email']); $sql = "INSERT INTO users (user_id,email,pass,account_status,validation_token,reg_date) VALUES ('$username','$email','$password_hash','{$status}','{$token}','{$reg_date}')"; $update_successful = $db->ExecSqlUpdate($sql); if ($update_successful) { //send_validation_email($email); $showform=false; } else { $import_user[$username]['is_rejected']=true; $import_user[$username]['reject_reason'] .= ""._('SQL error on: ')."$sql
\n"; } } } echo "| $username | $user[reject_reason] | \n"; echo "
| $count_reject rejected users | |
|---|---|
| Username | Reason for rejection |
| $username | $user[original_username] | $user[username_modified_because_of] | \n"; echo "
| $count_mangled users were imported with modified usernames | ||
|---|---|---|
| Username | Original username | Changed because of user |