[svn r12309] Fixed import of users clashing on generated usernames. See details http://projects.dokeos.com/?do=details&id=1495

skala
Yannick Warnier 19 years ago
parent 8939602953
commit dccefa2a8c
  1. 61
      main/admin/user_import.php

@ -1,6 +1,6 @@
<?php
// $Id: user_import.php 12014 2007-04-13 09:57:59Z pcool $
// $Id: user_import.php 12309 2007-05-04 19:39:12Z yannoo $
/*
==============================================================================
Dokeos - elearning and course management software
@ -109,43 +109,40 @@ function validate_data($users)
* Add missing user-information (which isn't required, like password, username
* etc)
*/
function complete_missing_data($users)
function complete_missing_data($user)
{
foreach ($users as $index => $user)
//1. Create a username if necessary
if (!isset ($user['UserName']) || strlen($user['UserName']) == 0)
{
//1. Create a username if necessary
if (!isset ($user['UserName']) || strlen($user['UserName']) == 0)
$username = strtolower(ereg_replace('[^a-zA-Z]', '', substr($user['FirstName'], 0, 3).' '.substr($user['LastName'], 0, 4)));
if (!UserManager :: is_username_available($username))
{
$username = strtolower(ereg_replace('[^a-zA-Z]', '', substr($user['FirstName'], 0, 3).' '.substr($user['LastName'], 0, 4)));
if (!UserManager :: is_username_available($username))
$i = 0;
$temp_username = $username.$i;
while (!UserManager :: is_username_available($temp_username))
{
$i = 0;
$temp_username = $username.$i;
while (!UserManager :: is_username_available($temp_username))
{
$temp_username = $username.++$i;
}
$username = $temp_username;
$temp_username = $username.++$i;
}
$users[$index]['UserName'] = $username;
}
//2. generate a password if necessary
if (!isset ($user['Password']) || strlen($user['Password']) == 0)
{
$users[$index]['Password'] = api_generate_password();
}
//3. set status if not allready set
if (!isset ($user['Status']) || strlen($user['Status']) == 0)
{
$users[$index]['Status'] = 'user';
}
//4. set authsource if not allready set
if (!isset ($user['AuthSource']) || strlen($user['AuthSource']) == 0)
{
$users[$index]['AuthSource'] = PLATFORM_AUTH_SOURCE;
$username = $temp_username;
}
$user['UserName'] = $username;
}
return $users;
//2. generate a password if necessary
if (!isset ($user['Password']) || strlen($user['Password']) == 0)
{
$user['Password'] = api_generate_password();
}
//3. set status if not allready set
if (!isset ($user['Status']) || strlen($user['Status']) == 0)
{
$user['Status'] = 'user';
}
//4. set authsource if not allready set
if (!isset ($user['AuthSource']) || strlen($user['AuthSource']) == 0)
{
$user['AuthSource'] = PLATFORM_AUTH_SOURCE;
}
return $user;
}
/**
* Save the imported data
@ -156,6 +153,7 @@ function save_data($users)
$sendMail = $_POST['sendMail'] ? 1 : 0;
foreach ($users as $index => $user)
{
$user = complete_missing_data($user);
$user_id = UserManager :: create_user($user['FirstName'], $user['LastName'], $user['Status'], $user['Email'], $user['UserName'], $user['Password'], $user['OfficialCode'], $user['PhoneNumber'], '', $user['AuthSource']);
foreach ($user['Courses'] as $index => $course)
{
@ -314,7 +312,6 @@ if ($_POST['formSent'] AND $_FILES['import_file']['size'] !== 0)
$errors = validate_data($users);
if (count($errors) == 0)
{
$users = complete_missing_data($users);
save_data($users);
header('Location: user_list.php?action=show_message&message='.urlencode(get_lang('FileImported')));
exit ();

Loading…
Cancel
Save