From 4e43154cf4d1cd1691639c84f66f94a1db29d8ee Mon Sep 17 00:00:00 2001 From: Eric Marguin Date: Wed, 2 Apr 2008 17:34:30 +0200 Subject: [PATCH] [svn r14726] improve export / import of users + add functions about status in main_api.lib.php --- main/admin/user_import.php | 20 ++++++--------- main/inc/lib/course.lib.php | 15 +++++++++++- main/inc/lib/main_api.lib.php | 46 +++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 13 deletions(-) diff --git a/main/admin/user_import.php b/main/admin/user_import.php index 15803190d6..9f900d59ca 100644 --- a/main/admin/user_import.php +++ b/main/admin/user_import.php @@ -1,6 +1,6 @@ $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) { @@ -357,8 +353,8 @@ $form->display();
-LastName;FirstName;UserName;Password;AuthSource;Email;OfficialCode;PhoneNumber;Status;Courses;ClassName
-xxx;xxx;xxx;xxx;;xxx;xxx;xxx;user/teacher;xxx1|xxx2|xxx3;xxx
+LastName;FirstName;Email;UserName;Password;AuthSource;OfficialCode;PhoneNumber;Status;Courses;ClassName
+xxx;xxx;xxx;xxx;xxx;;xxx;xxx;user/teacher/drh;xxx1|xxx2|xxx3;xxx
 
@@ -377,7 +373,7 @@ $form->display(); <Email>xxx</Email> <OfficialCode>xxx</OfficialCode> <PhoneNumber>xxx</PhoneNumber> - <Status>user/teacher</Status> + <Status>user/teacher/drh</Status> <Courses>xxx1|xxx2|xxx3</Courses> <ClassName>class 1</ClassName> </Contact> diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 1a8a9c9e9e..e7e75e10b5 100644 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -1670,7 +1670,20 @@ class CourseManager 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 ?> \ No newline at end of file diff --git a/main/inc/lib/main_api.lib.php b/main/inc/lib/main_api.lib.php index e93a427d08..ec4bda9212 100644 --- a/main/inc/lib/main_api.lib.php +++ b/main/inc/lib/main_api.lib.php @@ -48,9 +48,18 @@ define('STUDENT', 5); /** global status of a user: course manager */ define('COURSEMANAGER', 1); +/** global status of a user: session admin */ define('ADMINCRFP', 3); +/** global status of a user: human ressource manager */ 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 /** only visible for course admin */ define('COURSE_VISIBILITY_CLOSED', 0); @@ -2174,4 +2183,41 @@ function api_get_version() 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); + } +} ?> \ No newline at end of file