Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 /**
  * 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'));
 }