/** * Checks to see if all fields are valid in the add/edit volunteer form. * * @access public * @return false if any fields are invalid, true otherwise; if errors occur, they * are displayed on the page */ function validateAddForm($getvars) { global $global; require_once $global['approot'] . 'inc/lib_validate.inc'; require_once $global['approot'] . 'mod/vm/lib/vm_validate.inc'; //assume no errors to begin with $validated = true; //validate name field $validated = $validated && shn_vm_not_empty($getvars['full_name'], SHN_ERR_VM_NO_NAME); if ($getvars['prefered_confirm_medium'] != null) { switch ($getvars['prefered_confirm_medium']) { case 'pmob': if (trim($getvars['contact_pmob']) == null) { add_error(SHN_ERR_VM_NO_CONTACT_PMOBILE); $validated = false; } break; case 'curr': if (trim($getvars['contact_curr']) == null) { add_error(SHN_ERR_VM_NO_CONTACT_CPHONE); $validated = false; } break; case 'cmob': if (trim($getvars['contact_cmob']) == null) { add_error(SHN_ERR_VM_NO_CONTACT_MOBILE); $validated = false; } break; case 'emai': if (trim($getvars['contact_emai']) == null) { add_error(SHN_ERR_VM_NO_CONTACT_EMAIL); $validated = false; } break; } } else { add_error(SHN_ERR_VM_NO_CONTACT_PREFERED_MEDIUM); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_home'], 100)) { add_error(SHN_ERR_VM_CONTACT_HOME_TOO_LONG); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_name'], 100)) { add_error(SHN_ERR_VM_CONTACT_NAME_TOO_LONG); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_pmob'], 20)) { add_error(SHN_ERR_VM_CONTACT_PMOB_TOO_LONG); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_curr'], 20)) { add_error(SHN_ERR_VM_CONTACT_CPHONE_TOO_LONG); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_cmob'], 20)) { add_error(SHN_ERR_VM_CONTACT_CMOBILE_TOO_LONG); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_emai'], 20)) { add_error(SHN_ERR_VM_CONTACT_EMAIL_TOO_LONG); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_fax'], 20)) { add_error(SHN_ERR_VM_CONTACT_FAX_TOO_LONG); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_web'], 20)) { add_error(SHN_ERR_VM_CONTACT_WEB_TOO_LONG); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_inst'], 20)) { add_error(SHN_ERR_VM_CONTACT_INST_TOO_LONG); $validated = false; } if (!shn_vm_valid_contact($getvars['contact_emphone'], 20)) { add_error(SHN_ERR_VM_CONTACT_EPHONE_TOO_LONG); $validated = false; } //validate start and end dates if (!shn_vm_valid_date($getvars['start_date']) || !shn_vm_valid_date($getvars['end_date'])) { add_error(SHN_ERR_VM_BAD_DATES); $validated = false; } else { $validated = $validated && shn_vm_compatible_dates($getvars['start_date'], $getvars['end_date'], SHN_ERR_VM_DATES_INCOMPATIBLE); } //validate the date of birth only if it is present if ($getvars['dob'] != '') { if (!shn_vm_valid_date($getvars['dob'])) { add_error(SHN_ERR_VM_INVALID_DOB); $validated = false; } else { $validated = $validated && shn_vm_compatible_dates($getvars['dob'], date('Y-m-d'), SHN_ERR_VM_FUTURE_DOB); } } //validate the start and end hours if present if ($getvars['hrs_avail_start'] != '') { $validated = $validated && shn_vm_valid_time($getvars['hrs_avail_start'], SHN_ERR_VM_BAD_START_TIME); } if ($getvars['hrs_avail_end'] != '') { $validated = $validated && shn_vm_valid_time($getvars['hrs_avail_end'], SHN_ERR_VM_BAD_END_TIME); } //validate if at least one skill has been selected $validated = $validated && shn_vm_skill_selected($getvars, SHN_ERR_VM_NO_SKILLS_SELECTED); //validate the Sahana account information if necessary if ($getvars['reg_account'] == 'true') { $validated = $validated && shn_vm_not_empty($getvars['user_name'], SHN_ERR_VM_BAD_USER_NAME); $validated = $validated && shn_vm_username_not_taken($getvars['user_name'], SHN_ERR_VM_USER_EXISTS); if (shn_vm_not_empty($getvars['pass1'], SHN_ERR_VM_BAD_PASSWORD)) { if (shn_vm_not_empty($getvars['pass2'], SHN_ERR_VM_BAD_PASSWORD)) { $validated = $validated && shn_vm_fields_equal($getvars['pass1'], $getvars['pass2'], SHN_ERR_VM_INCOMPATIBLE_PASSWORDS); //Ensures password is of proper form. $validated = $validated && shn_vm_validate_password($getvars['user_name'], $getvars['pass1']); } else { $validated = false; } } else { $validated = false; } } //Validate email address $validated = $validated && ($getvars['contact_emai'] == null || shn_vm_validate_email($getvars['contact_emai'])); //Validate picture if ($getvars['picture']['tmp_name'] != null) { $validated = $validated && shn_vm_validate_image($getvars['picture']['tmp_name']); } return $validated; }
/** * Tests shn_vm_username_not_taken() */ public function testUsernameNotTaken() { global $global; include_once $global['approot'] . 'inc/lib_security/lib_auth.inc'; // these users should be as asserted based on setUp() $this->assertTrue(shn_vm_username_not_taken('test3')); $this->assertTrue(shn_vm_username_not_taken('test4')); $this->assertFalse(shn_vm_username_not_taken('test1')); $this->assertFalse(shn_vm_username_not_taken('vtest2')); }