Couple of quick fixes:

- the "languages" field needed to be regrouped when applied to a Science Olympics account
 - Modified account/create api to test all errors and return them as a group, rather than exiting on the first error
This commit is contained in:
jacob 2011-01-27 22:55:42 +00:00
parent a5bd01f621
commit 552ce74d96
3 changed files with 24 additions and 10 deletions

View File

@ -133,24 +133,27 @@ function account_load_by_username($username)
function account_create($username,$password=NULL)
{
global $config;
$errMsg = '';
/* Sanity check username */
if(!account_valid_user($username)) {
return i18n("Invalid user name \"%1\"", array($username));
}
/* Make sure the user doesn't exist */
$us = mysql_real_escape_string($username);
$q = mysql_query("SELECT * FROM accounts WHERE username='$us'");
if(mysql_num_rows($q)) {
return i18n("The username %1 is already in use", array($username));
$errMsg .= i18n('Invalid user name "%1"', array($username)) . " ";
}else{
/* Make sure the user doesn't exist */
$us = mysql_real_escape_string($username);
$q = mysql_query("SELECT * FROM accounts WHERE username='$us'");
if(mysql_num_rows($q)) {
$errMsg .= i18n("The username %1 is already in use", array($username)) . " ";
}
}
//if the password is set, make sure its valid, if its null, thats OK, it'll get generated and set by account_set_password
if($password && !account_valid_password($password)) {
return i18n("Invalid password");
$errMsg .= i18n("Invalid password") . " ";
}
if($errMsg != '') return $errMsg;
/* Create the account */
mysql_query("INSERT INTO accounts (`username`,`created`,`deleted`,`superuser`)
VALUES ('$us', NOW(),'no','no')");

View File

@ -98,6 +98,14 @@ email: <input type="text" id="email"></input><br/>
Link username to email? <input type="radio" name="link_username_to_email" value="yes"></input>Yes &nbsp; &nbsp; &nbsp; <input type="radio" name="link_username_to_email" value="no"></input>No<br/>
<button onclick = "submitAccountUpdate(); return false;">Update account information</button>
<br/><br/><strong>Create an account:</strong><br/>
<form method="post" action="api/account/create">
username: <input type="text" name="username"></input><br/>
password: <input type="text" name="password"></input><br/>
email address: <input type="text" name="email"></input><br/>
<input type="submit" value="Create Account"></input>
</form>
<h2>Teacher Specific Commands</h2>
<a href="api/scienceolympics/teams/list">Science Olympic Teams List</a><br />
@ -142,6 +150,8 @@ role id: <input type="text" name="roles_id"></input><br/>
<input type="submit" value="Uninvite User"></input>
</form>
<h2>Event Schedule</h2>
<a href="api/schedule/list">Schedule Listing</a><br/>

View File

@ -342,7 +342,6 @@ function user_get_field_info($noConference = false){
'firstaid' => array('label' => 'First Aid', 'group' => 'Personal Information'),
'cpr' => array('label' => 'CPR', 'group' => 'Personal Information'),
'displayemail' => array('label' => 'Display Email', 'group' => 'Personal Information'),
'languages' => array('label' => 'Spoken Languages', 'group' => 'Judges'),
'sponsors_id' => array('label' => 'Sponsor', 'group' => 'Sponsors'),
'primary' => array('label' => 'Primary Contact', 'group' => 'Sponsors'),
'position' => array('label' => 'Position', 'group' => 'Sponsors'),
@ -380,9 +379,11 @@ function user_get_field_info($noConference = false){
$returnval['expertise_other'] = array('label' => 'Other areas of expertise', 'group' => 'Judges');
$returnval['available_times'] = array('label' => 'Times Available', 'group' => 'Judges');
$returnval['available_events'] = array('label' => 'Event Availability', 'group' => 'Volunteers');
$returnval['languages'] = array('label' => 'Spoken Languages', 'group' => 'Judges');
break;
case 'scienceolympics':
$returnval['available_events'] = array('label' => 'Event Availability', 'group' => 'Judges,Volunteers');
$returnval['languages'] = array('label' => 'Spoken Languages', 'group' => 'Judges,Volunteers');
break;
}
}