2 /************************************************************************/
\r
4 /************************************************************************/
\r
5 /* Copyright (c) 2002-2010 */
\r
6 /* Inclusive Design Institute */
\r
7 /* http://atutor.ca */
\r
9 /* This program is free software. You can redistribute it and/or */
\r
10 /* modify it under the terms of the GNU General Public License */
\r
11 /* as published by the Free Software Foundation. */
\r
12 /************************************************************************/
\r
15 function checkUserInfo($record) {
\r
16 global $db, $addslashes;
\r
19 if (empty($record['remove'])) {
\r
20 $record['remove'] = FALSE;
\r
23 //error flags for this record
\r
24 $record['err_email'] = FALSE;
\r
25 $record['err_uname'] = FALSE;
\r
26 $record['exists'] = FALSE;
\r
28 $record['email'] = trim($record['email']);
\r
31 if ($record['email'] == '') {
\r
32 $record['err_email'] = _AT('import_err_email_missing');
\r
33 } else if (!preg_match("/^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,6}$/i", $record['email'])) {
\r
34 $record['err_email'] = _AT('import_err_email_invalid');
\r
35 } else if (isset($email_list[$record['email']])) {
\r
36 $record['err_email'] = _AT('import_err_email_exists');
\r
38 $record['email'] = $addslashes($record['email']);
\r
40 $sql="SELECT * FROM ".TABLE_PREFIX."members WHERE email LIKE '$record[email]'";
\r
41 $result = mysql_query($sql,$db);
\r
42 if (mysql_num_rows($result) != 0) {
\r
43 $row = mysql_fetch_assoc($result);
\r
44 $record['exists'] = _AT('import_err_email_exists');
\r
45 $record['fname'] = $row['first_name'];
\r
46 $record['lname'] = $row['last_name'];
\r
47 $record['email'] = $row['email'];
\r
48 $record['uname'] = $row['login'];
\r
49 $record['status'] = $row['status'];
\r
51 // it's good, add it to the list
\r
52 $email_list[$record['email']] = true;
\r
56 /* username check */
\r
57 if (empty($record['uname'])) {
\r
58 $record['uname'] = stripslashes (strtolower (substr ($record['fname'], 0, 1).$_POST['sep_choice'].$record['lname']));
\r
61 $record['uname'] = preg_replace("{[^a-zA-Z0-9._-]}","", trim($record['uname']));
\r
63 if (!(preg_match("/^[a-zA-Z0-9._-]([a-zA-Z0-9._-])*$/i", $record['uname']))) {
\r
64 $record['err_uname'] = _AT('import_err_username_invalid');
\r
67 if (isset($record['status']) && $record['status'] == AT_STATUS_DISABLED) {
\r
68 $record['err_disabled'] = true;
\r
70 $record['err_disabled'] = false;
\r
73 $record['uname'] = $addslashes($record['uname']);
\r
74 $record['fname'] = $addslashes($record['fname']);
\r
75 $record['lname'] = $addslashes($record['lname']);
\r
77 $sql = "SELECT member_id FROM ".TABLE_PREFIX."members WHERE login='$record[uname]'";
\r
78 $result = mysql_query($sql,$db);
\r
79 if ((mysql_num_rows($result) != 0) && !$record['exists']) {
\r
80 $record['err_uname'] = _AT('import_err_username_exists');
\r
82 $result = mysql_query("SELECT * FROM ".TABLE_PREFIX."admins WHERE login='$record[uname]'",$db);
\r
83 if (mysql_num_rows($result) != 0) {
\r
84 $record['err_uname'] = _AT('import_err_username_exists');
\r
88 $sql = "SELECT member_id FROM ".TABLE_PREFIX."members WHERE first_name='$record[fname]' AND last_name='$record[lname]' LIMIT 1";
\r
89 $result = mysql_query($sql,$db);
\r
90 if ((mysql_num_rows($result) != 0) && !$record['exists']) {
\r
91 $record['err_uname'] = _AT('import_err_full_name_exists');
\r
94 /* removed record? */
\r
95 if ($record['remove']) {
\r
97 $record['err_email'] = '';
\r
98 $record['err_uname'] = '';
\r
99 $record['err_disabled'] = '';
\r
102 $record['fname'] = htmlspecialchars(stripslashes(trim($record['fname'])));
\r
103 $record['lname'] = htmlspecialchars(stripslashes(trim($record['lname'])));
\r
104 $record['email'] = htmlspecialchars(stripslashes(trim($record['email'])));
\r
105 $record['uname'] = htmlspecialchars(stripslashes(trim($record['uname'])));
\r
110 function add_users($user_list, $enroll, $course) {
\r
114 global $addslashes;
\r
116 require_once(AT_INCLUDE_PATH.'classes/phpmailer/atutormailer.class.php');
\r
118 if (defined('AT_EMAIL_CONFIRMATION') && AT_EMAIL_CONFIRMATION) {
\r
119 $status = AT_STATUS_UNCONFIRMED;
\r
121 $status = AT_STATUS_STUDENT;
\r
125 foreach ($user_list as $student) {
\r
126 if (!$student['remove']) {
\r
127 $student['uname'] = $addslashes($student['uname']);
\r
128 $student['email'] = $addslashes($student['email']);
\r
129 $student['fname'] = $addslashes($student['fname']);
\r
130 $student['lname'] = $addslashes($student['lname']);
\r
132 if (!$student['exists']) {
\r
133 $sql = "INSERT INTO ".TABLE_PREFIX."members
\r
147 ('$student[uname]',
\r
148 '". sha1($student[uname]). "',
\r
154 '$_config[pref_defaults]',
\r
156 '$_config[default_language]',
\r
157 $_config[pref_inbox_notify],
\r
160 $result = mysql_query($sql, $db);
\r
161 if (mysql_affected_rows($db) == 1) {
\r
162 $m_id = mysql_insert_id($db);
\r
164 $student['exists'] = _AT('import_err_email_exists');
\r
166 $sql = "INSERT INTO ".TABLE_PREFIX."course_enrollment (member_id, course_id, approved, last_cid) VALUES ($m_id, $course, '$enroll', 0)";
\r
168 if ($result = mysql_query($sql,$db)) {
\r
169 $enrolled_list .= '<li>' . $student['uname'] . '</li>';
\r
171 if (defined('AT_EMAIL_CONFIRMATION') && AT_EMAIL_CONFIRMATION) {
\r
173 $sql = "SELECT email, creation_date FROM ".TABLE_PREFIX."members WHERE member_id=$m_id";
\r
174 $result = mysql_query($sql, $db);
\r
175 $row = mysql_fetch_assoc($result);
\r
176 $code = substr(md5($row['email'] . $row['creation_date'] . $m_id), 0, 10);
\r
178 // send email here.
\r
179 $confirmation_link = AT_BASE_HREF . 'confirm.php?id='.$m_id.SEP.'m='.$code;
\r
181 $subject = $_config['site_name'].': '._AT('email_confirmation_subject');
\r
182 $body = _AT(array('new_account_enroll_confirm', $_SESSION['course_title'], $confirmation_link))."\n\n";
\r
184 $subject = $_config['site_name'].': '._AT('account_information');
\r
185 $body = _AT(array('new_account_enroll',AT_BASE_HREF, $_SESSION['course_title']))."\n\n";
\r
188 //$body .= SITE_NAME.': '._AT('account_information')."\n";
\r
189 $body .= _AT('web_site') .' : '.AT_BASE_HREF."\n";
\r
190 $body .= _AT('login_name') .' : '.$student['uname'] . "\n";
\r
191 $body .= _AT('password') .' : '.$student['uname'] . "\n";
\r
193 $mail = new ATutorMailer;
\r
194 $mail->From = $_config['contact_email'];
\r
195 $mail->AddAddress($student['email']);
\r
196 $mail->Subject = $subject;
\r
197 $mail->Body = $body;
\r
202 $already_enrolled .= '<li>' . $student['uname'] . '</li>';
\r
205 //$msg->addError('LIST_IMPORT_FAILED');
\r
207 } else if (! $student['err_disabled']) {
\r
208 $sql = "SELECT member_id FROM ".TABLE_PREFIX."members WHERE email='$student[email]'";
\r
209 $result = mysql_query($sql, $db);
\r
210 if ($row = mysql_fetch_assoc($result)) {
\r
212 $m_id = $row['member_id'];
\r
214 $sql = "INSERT INTO ".TABLE_PREFIX."course_enrollment (member_id, course_id, approved, last_cid, role) VALUES ($m_id, $course, '$enroll', 0, '$role')";
\r
216 if($result = mysql_query($sql,$db)) {
\r
217 $enrolled_list .= '<li>' . $student['uname'] . '</li>';
\r
219 $sql = "REPLACE INTO ".TABLE_PREFIX."course_enrollment (member_id, course_id, approved, last_cid, role) VALUES ($m_id, $course, '$enroll', 0, '$role')";
\r
220 $result = mysql_query($sql,$db);
\r
221 $enrolled_list .= '<li>' . $student['uname'] . '</li>';
\r
223 $subject = $_config['site_name'].': '._AT('email_confirmation_subject');
\r
224 $body = _AT(array('enrol_message_approved',$_SESSION['course_title'],AT_BASE_HREF))."\n\n";
\r
225 $body .= _AT('web_site') .' : '.AT_BASE_HREF."\n";
\r
226 $body .= _AT('login_name') .' : '.$student['uname'] . "\n";
\r
227 $mail = new ATutorMailer;
\r
228 $mail->From = $_config['contact_email'];
\r
229 $mail->AddAddress($student['email']);
\r
230 $mail->Subject = $subject;
\r
231 $mail->Body = $body;
\r
242 } else if ($student['err_disabled']) {
\r
243 $not_enrolled_list .= '<li>' . $student['uname'] . '</li>';
\r
247 if ($already_enrolled) {
\r
248 $feedback = array('ALREADY_ENROLLED', $already_enrolled);
\r
249 $msg->addFeedback($feedback);
\r
251 if ($enrolled_list) {
\r
252 $feedback = array('ENROLLED', $enrolled_list);
\r
253 $msg->addFeedback($feedback);
\r
255 if ($not_enrolled_list) {
\r
256 $feedback = array('NOT_ENROLLED', $not_enrolled_list);
\r
257 $msg->addFeedback($feedback);
\r