[svn r14726] improve export / import of users + add functions about status in main_api.lib.php

skala
Eric Marguin 17 years ago
parent 64fdb34ffe
commit 4e43154cf4
  1. 20
      main/admin/user_import.php
  2. 15
      main/inc/lib/course.lib.php
  3. 46
      main/inc/lib/main_api.lib.php

@ -1,6 +1,6 @@
<?php <?php
// $Id: user_import.php 13774 2007-11-26 08:23:42Z elixir_julian $ // $Id: user_import.php 14726 2008-04-02 15:34:30Z elixir_inter $
/* /*
============================================================================== ==============================================================================
Dokeos - elearning and course management software Dokeos - elearning and course management software
@ -79,7 +79,7 @@ function validate_data($users)
} }
} }
//3. check status //3. check status
if (isset ($user['Status']) && ($user['Status'] != 'user' && $user['Status'] != 'teacher' && $user['Status'] != COURSEMANAGER && $user['Status'] != STUDENT)) if (isset ($user['Status']) && !api_status_exists($user['Status']))
{ {
$user['error'] = get_lang('WrongStatus'); $user['error'] = get_lang('WrongStatus');
$errors[] = $user; $errors[] = $user;
@ -155,17 +155,13 @@ function save_data($users)
{ {
$user = complete_missing_data($user); $user = complete_missing_data($user);
if($user['Status'] == 'user'){ $user['Status'] = api_status_key($user['Status']);
$user['Status'] = STUDENT;
}
elseif($user['Status'] == 'teacher'){
$user['Status'] = COURSEMANAGER;
}
$user_id = UserManager :: create_user($user['FirstName'], $user['LastName'], $user['Status'], $user['Email'], $user['UserName'], $user['Password'], $user['OfficialCode'], '', $user['PhoneNumber'], '', $user['AuthSource']); $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) foreach ($user['Courses'] as $index => $course)
{ {
CourseManager :: subscribe_user($user_id, $course,$user['Status']); if(CourseManager :: course_exists($course))
CourseManager :: subscribe_user($user_id, $course,$user['Status']);
} }
if (strlen($user['ClassName']) > 0) if (strlen($user['ClassName']) > 0)
{ {
@ -357,8 +353,8 @@ $form->display();
<blockquote> <blockquote>
<pre> <pre>
<b>LastName</b>;<b>FirstName</b>;UserName;Password;AuthSource;<b>Email</b>;OfficialCode;PhoneNumber;Status;Courses;ClassName <b>LastName</b>;<b>FirstName</b>;<b>Email</b>;UserName;Password;AuthSource;OfficialCode;PhoneNumber;Status;Courses;ClassName
<b>xxx</b>;<b>xxx</b>;xxx;xxx;<?php echo implode('/',$defined_auth_sources); ?>;<b>xxx</b>;xxx;xxx;user/teacher;xxx1|xxx2|xxx3;xxx <b>xxx</b>;<b>xxx</b>;<b>xxx</b>;xxx;xxx;<?php echo implode('/',$defined_auth_sources); ?>;xxx;xxx;user/teacher/drh;xxx1|xxx2|xxx3;xxx
</pre> </pre>
</blockquote> </blockquote>
@ -377,7 +373,7 @@ $form->display();
<b>&lt;Email&gt;xxx&lt;/Email&gt;</b> <b>&lt;Email&gt;xxx&lt;/Email&gt;</b>
&lt;OfficialCode&gt;xxx&lt;/OfficialCode&gt; &lt;OfficialCode&gt;xxx&lt;/OfficialCode&gt;
&lt;PhoneNumber&gt;xxx&lt;/PhoneNumber&gt; &lt;PhoneNumber&gt;xxx&lt;/PhoneNumber&gt;
&lt;Status&gt;user/teacher&lt;/Status&gt; &lt;Status&gt;user/teacher/drh&lt;/Status&gt;
&lt;Courses&gt;xxx1|xxx2|xxx3&lt;/Courses&gt; &lt;Courses&gt;xxx1|xxx2|xxx3&lt;/Courses&gt;
&lt;ClassName&gt;class 1&lt;/ClassName&gt; &lt;ClassName&gt;class 1&lt;/ClassName&gt;
&lt;/Contact&gt; &lt;/Contact&gt;

@ -1670,7 +1670,20 @@ class CourseManager
CourseManager::select_and_sort_categories($select_element, $cat['code'], $category_selected_code, $new_padding); CourseManager::select_and_sort_categories($select_element, $cat['code'], $category_selected_code, $new_padding);
} }
} }
} }
/**
* check if course exists
* @param string course_code
* @return true if exists, false else
*/
function course_exists($course_code)
{
$sql = 'SELECT 1 FROM '.Database :: get_main_table(TABLE_MAIN_COURSE).' WHERE code="'.Database::escape_string($course_code).'"';
$rs = api_sql_query($sql,__FILE__,__LINE__);
return mysql_num_rows($rs);
}
} //end class CourseManager } //end class CourseManager
?> ?>

@ -48,9 +48,18 @@
define('STUDENT', 5); define('STUDENT', 5);
/** global status of a user: course manager */ /** global status of a user: course manager */
define('COURSEMANAGER', 1); define('COURSEMANAGER', 1);
/** global status of a user: session admin */
define('ADMINCRFP', 3); define('ADMINCRFP', 3);
/** global status of a user: human ressource manager */
define('DRH', 4); define('DRH', 4);
// table of status
$_status_list[STUDENT] = 'user';
$_status_list[COURSEMANAGER] = 'teacher';
$_status_list[ADMINCRFP] = 'admincrfp';
$_status_list[DRH] = 'drh';
//COURSE VISIBILITY CONSTANTS //COURSE VISIBILITY CONSTANTS
/** only visible for course admin */ /** only visible for course admin */
define('COURSE_VISIBILITY_CLOSED', 0); define('COURSE_VISIBILITY_CLOSED', 0);
@ -2174,4 +2183,41 @@ function api_get_version()
return ''; return '';
} }
} }
/**
* Check if status given in parameter exists in the platform
* @param mixed the status (can be either int either string)
* @return true if the status exists, else returns false
*/
function api_status_exists($status_asked)
{
global $_status_list;
if(in_array($status_asked, $_status_list))
{
return true;
}
else
{
return isset($_status_list[$status_asked]);
}
}
/**
* Check if status given in parameter exists in the platform
* @param mixed the status (can be either int either string)
* @return true if the status exists, else returns false
*/
function api_status_key($status)
{
global $_status_list;
if(isset($_status_list[$status]))
{
return $status;
}
else
{
return array_search($status,$_status_list);
}
}
?> ?>
Loading…
Cancel
Save