diff --git a/schoolstudents.php b/schoolstudents.php
index 7fcf3c72..b95917b9 100644
--- a/schoolstudents.php
+++ b/schoolstudents.php
@@ -33,45 +33,91 @@ if($_SESSION['schoolid'] && $_SESSION['schoolaccesscode'] && $conference['type']
// create a new record with the given first name last name and e-mail address
// return true on success, error message on failure
function process_newRecord($firstName, $lastName, $email){
+ global $conference;
$firstName = trim($firstName);
$lastName = trim($lastName);
- $email = trim($email);
+ $email = strtolower(trim($email));
+ $uid = null;
// make sure we are actually given a first and last name
- if(strlen($firstName) == 0 || strlen($lastName) == 0) return i18n("First and last names are required fields");
+ if(strlen($firstName) == 0 || strlen($lastName) == 0) return "First and last names are required fields";
if($email != null){
$user = user_load_by_email($email);
+
}else{
$user = false;
}
if($user != false){
- // we're modifying an existing user
+ // we're adding an existing user. First find out if they are in the school we have specified
+ return "e-mail address is already in use";
+// $user['firstname'] = $firstName;
+// $user['lastname'] = $lastName;
+
+/*
+ $query = "INSERT INTO users_conferences_link(conferences_id, users_uid) VALUES(";
+ $query .= $conference['id'] . ', ' . $user['uid'];
+ $firstName = $user['firstname'];
+ $lastName = $user['lastname'];
+*/
}else{
// we're creating a new user
- if(strlen($email) == 0){
- // let's create an e-mail address
- }else if(!isEmailAddress($email)){
- // not a valid e-mail address
- return i18n("Invalid e-mail address");
+ if(strlen($email) != 0){
+ if(!isEmailAddress($email)){
+ // not a valid e-mail address
+ return "Invalid e-mail address";
+ }else{
+ // new e-mail address specified. That'll be the username
+ $username = $email;
+ }
}else{
- // we'll use the e-mail address provided
+ // generate a user name
+ $nameBase = substr(strtolower($firstName), 0, 1) . strtolower($lastName);
+ $suffix = '';
+ do{
+ $q = mysql_fetch_array(mysql_query('SELECT COUNT(*) AS tally FROM users WHERE username="' . ($nameBase . $suffix) . '";'));
+ if($q['tally'] > 0){
+ if($suffix == '') $suffix = 1;
+ else $suffix++;
+ }
+ }while($q['tally'] > 0);
+ $username = $nameBase . $suffix;
+
}
+ // now that we have the username we want to use, let's create the user
+ $user = user_create('student', $username);
+ $user['firstname'] = $firstName;
+ $user['lastname'] = $lastName;
+ if($username == $email)
+ $user['email'] = $email;
+ $user['schools_id'] = $_SESSION['schoolid'];
+ user_save($user);
+ $uid = $user['uid'];
}
- $uid = rand() % 100000; // <-- just testing - should be an actual user id
- echo "
";
- echo '×';
- echo " | ";
- echo "$firstName | ";
- echo "$lastName | ";
- echo "$email | ";
- echo " |
";
+ echo user_row($uid, $username, $firstName, $lastName, $email);
return true;
}
-// delete the record for the specified user id. Returns true on succes, false on failure
+function user_row($uid, $username, $firstName, $lastName, $email){
+ $rval = "";
+ $rval .= "$username | ";
+ $rval .= "$firstName | ";
+ $rval .= "$lastName | ";
+ $rval .= "$email | ";
+ $rval .= ' | ';
+ $rval .= "
";
+ return $rval;
+}
+
+// delete the record for the specified user id. Returns true on succes, error message on failure
function delete_record($uid){
- // WRITE ME
+ $user = user_load_by_uid($uid);
+ user_delete($user);
+ $user = user_load_by_uid($uid);
+
+ if($user['deleted'] != 'yes'){
+ return "Failed to delete user";
+ }
return true;
}
@@ -134,12 +180,13 @@ function draw_javascript(){
// draw an editable list of all students for this school in the users_stunt table
function draw_list(){
+ global $conference;
?>
- |
+ =i18n("Username");?> |
=i18n("First Name");?> |
=i18n("Last Name");?> |
=i18n("Email Address");?> |
@@ -155,9 +202,18 @@ function draw_list(){
diff --git a/user.inc.php b/user.inc.php
index b6d4dcd1..5aa296d4 100644
--- a/user.inc.php
+++ b/user.inc.php
@@ -76,9 +76,12 @@ function user_load_fair(&$u)
function user_load_student(&$u)
{
-// $u['student_active'] = ($u['student_active'] == 'yes') ? 'yes' : 'no';
-// $u['student_complete'] = ($u['student_complete'] == 'yes') ? 'yes' : 'no';
- return false;
+ $u['student_active'] = ($u['student_active'] == 'yes') ? 'yes' : 'no';
+ $u['student_complete'] = ($u['student_complete'] == 'yes') ? 'yes' : 'no';
+/* echo "";
+ print_r($u);
+ echo "
";
+*/ return true;
}
function user_load_judge(&$u)
{
@@ -177,7 +180,8 @@ function user_load($user, $uid = false)
LEFT JOIN `users_teacher` ON `users_teacher`.`users_id`=`users`.`id`
LEFT JOIN `users_parent` ON `users_parent`.`users_id`=`users`.`id`
LEFT JOIN `users_mentor` ON `users_mentor`.`users_id`=`users`.`id`
- LEFT JOIN `users_alumni` ON `users_alumni`.`users_id`=`users`.`id`
+ LEFT JOIN `users_alumni` ON `users_alumni`.`users_id`=`users`.`id`
+ LEFT JOIN `users_student` ON `users_student`.`users_id`=`users`.`id`
WHERE ";
if($uid != false) {
$uid = intval($uid);
@@ -381,8 +385,8 @@ function user_save_judge($u)
function user_save_student($u)
{
-// $fields = array('student_active','student_complete');
-// user_save_type_list($u, 'users_student', $fields);
+ $fields = array('schools_id', 'student_active','student_complete');
+ user_save_type_list($u, 'users_student', $fields);
}
function user_save_fair($u)
@@ -419,6 +423,8 @@ function user_save_parent($u)
function user_save(&$u)
{
+ global $conference;
+
/* Add any new types */
$added = array_diff($u['types'], $u['orig']['types']);
foreach($added as $t) {
@@ -451,13 +457,10 @@ function user_save(&$u)
$set .= "$f='$data'";
}
}
-// echo "";
-// print_r($u);
-// echo "
";
+
if($set != "") {
$query = "UPDATE users SET $set WHERE id='{$u['id']}'";
mysql_query($query);
-// echo "query=[$query]";
echo mysql_error();
}
@@ -470,6 +473,17 @@ function user_save(&$u)
call_user_func("user_save_$t", $u);
}
+ if(is_array($conference) && array_key_exists('id', $conference)){
+ // first make sure they're not already linked.
+ $check = mysql_fetch_array(mysql_query("SELECT COUNT(*) as tally FROM users_conferences_link WHERE conferences_id = " . $conference['id'] . " AND users_uid = " . $u['id']));
+ if($check['tally'] == 0){
+ $query = "INSERT INTO users_conferences_link(conferences_id, users_uid) VALUES(";
+ $query .= $conference['id'] . ', ' . $u['id'] . ')';
+ mysql_query($query);
+ }
+
+ }
+
/* Should we do this? */
/* Record all the data in orig that we saved */
unset($u['orig']);
@@ -725,9 +739,9 @@ function user_create($type, $username, $u = NULL)
VALUES ('$type','$username','0000-00-00', NOW(), '{$config['FAIRYEAR']}', 'no')");
echo mysql_error();
$uid = mysql_insert_id();
- if(user_valid_email($username)) {
- mysql_query("UPDATE users SET email='$username' WHERE id='$uid'");
- }
+ if(user_valid_email($username)) {
+ mysql_query("UPDATE users SET email='$username' WHERE id='$uid'");
+ }
mysql_query("UPDATE users SET uid='$uid' WHERE id='$uid'");
echo mysql_error();
user_set_password($uid, NULL);