public function testUser() { $this->startCodeCoverage(); $user = new User(); $user->Id = 'non_numeric'; if (!($user->SetPassword('blah') === false)) { $this->fail("User::SetPassword didn't return false for non-numeric user id"); return 1; } if (!($user->IsAdmin() === false)) { $this->fail("User::IsAdmin didn't return false for non-numeric user id"); return 1; } $user->Id = ''; $user->Email = ''; if (!($user->GetName() === false)) { $this->fail("User::GetName didn't return false when given no user id"); return 1; } if (!($user->IsAdmin() === false)) { $this->fail("User::Exists didn't return false for no user id and no email"); return 1; } $user->Email = 'simpletest@localhost'; if ($user->Exists() === false) { $this->fail('User::Exists returned false even though user exists'); return 1; } $id = $user->GetIdFromEmail('simpletest@localhost'); if ($id === false) { $this->fail('User::GetIdFromEmail returned false for a valid user'); return 1; } $user->Id = $id; $user->Admin = '1'; $user->FirstName = 'administrator'; $user->Institution = 'Kitware Inc.'; if ($user->Exists() != true) { $this->fail('User::Exists failed given a valid user id'); return 1; } $user->Password = md5('simpletest'); // Coverage for update save $user->Save(); // Coverage for SetPassword $user->SetPassword(md5('simpletest')); $this->stopCodeCoverage(); return 0; }
function testUser() { $this->startCodeCoverage(); $user = new User(); $user->Id = "non_numeric"; if (!($user->SetPassword("blah") === false)) { $this->fail("User::SetPassword didn't return false for non-numeric user id"); return 1; } if (!($user->IsAdmin() === false)) { $this->fail("User::IsAdmin didn't return false for non-numeric user id"); return 1; } $user->Id = ""; $user->Email = ""; if (!($user->GetName() === false)) { $this->fail("User::GetName didn't return false when given no user id"); return 1; } if (!($user->IsAdmin() === false)) { $this->fail("User::Exists didn't return false for no user id and no email"); return 1; } $user->Email = "simpletest@localhost"; if ($user->Exists() === false) { $this->fail("User::Exists returned false even though user exists"); return 1; } $id = $user->GetIdFromEmail("simpletest@localhost"); if ($id === false) { $this->fail("User::GetIdFromEmail returned false for a valid user"); return 1; } $user->Id = $id; $user->Admin = "1"; $user->FirstName = "administrator"; $user->Institution = "Kitware Inc."; if ($user->Exists() != true) { $this->fail("User::Exists failed given a valid user id"); return 1; } $user->Password = md5("simpletest"); // Coverage for update save $user->Save(); // Coverage for SetPassword $user->SetPassword(md5("simpletest")); $this->stopCodeCoverage(); return 0; }
$postuserid = pdo_real_escape_numeric($postuserid); } if (isset($_POST['adduser'])) { // arrive from register form $email = $_POST['email']; $passwd = $_POST['passwd']; $passwd2 = $_POST['passwd2']; if (!($passwd == $passwd2)) { $xml .= add_XML_value('error', 'Passwords do not match!'); } else { $fname = $_POST['fname']; $lname = $_POST['lname']; $institution = $_POST['institution']; if ($email && $passwd && $passwd2 && $fname && $lname && $institution) { $User = new User(); if ($User->GetIdFromEmail($email)) { $xml .= add_XML_value('error', 'Email already registered!'); } else { $passwdencryted = md5($passwd); $User->Email = $email; $User->Password = $passwdencryted; $User->FirstName = $fname; $User->LastName = $lname; $User->Institution = $institution; if ($User->Save()) { $xml .= add_XML_value('warning', 'User ' . $email . ' added successfully with password:'******'error', 'Cannot add user'); } } } else {
/** endElement function */ public function endElement($parser, $name) { parent::endElement($parser, $name); global $CDASH_DELETE_OLD_SUBPROJECTS; if (!$this->ProjectNameMatches) { return; } if ($name == 'PROJECT') { foreach ($this->SubProjects as $subproject) { if ($CDASH_DELETE_OLD_SUBPROJECTS) { // Remove dependencies that do not exist anymore, // but only for those relationships where both sides // are present in $this->SubProjects. // $dependencyids = $subproject->GetDependencies(); $removeids = array_diff($dependencyids, $this->Dependencies[$subproject->GetId()]); foreach ($removeids as $removeid) { if (array_key_exists($removeid, $this->SubProjects)) { $subproject->RemoveDependency($removeid); } else { $dep = pdo_get_field_value("SELECT name FROM subproject WHERE id='{$removeid}'", 'name', "{$removeid}"); add_log("Not removing dependency {$dep}({$removeid}) from " . $subproject->GetName() . 'because it is not a SubProject element in this Project.xml file', 'ProjectHandler:endElement', LOG_WARNING, $this->projectid); } } } // Add dependencies that were queued up as we processed the DEPENDENCY // elements: // foreach ($this->Dependencies[$subproject->GetId()] as $addid) { if (array_key_exists($addid, $this->SubProjects)) { $subproject->AddDependency($addid); } else { add_log('impossible condition: should NEVER see this: unknown DEPENDENCY clause should prevent this case', 'ProjectHandler:endElement', LOG_WARNING, $this->projectid); } } } if ($CDASH_DELETE_OLD_SUBPROJECTS) { // Delete old subprojects that weren't included in this file. $previousSubProjectIds = $this->Project->GetSubProjects(); foreach ($previousSubProjectIds as $previousId) { $found = false; foreach ($this->SubProjects as $subproject) { if ($subproject->GetId() == $previousId) { $found = true; break; } } if (!$found) { $subProjectToRemove = new SubProject(); $subProjectToRemove->SetId($previousId); $subProjectToRemove->Delete(); add_log("Deleted " . $subProjectToRemove->GetName() . " because it was not mentioned in Project.xml", 'ProjectHandler:endElement', LOG_WARNING, $this->projectid); } } } } elseif ($name == 'SUBPROJECT') { // Insert the SubProject. $this->SubProject->Save(); // Insert the label. $Label = new Label(); $Label->Text = $this->SubProject->GetName(); $Label->Insert(); $this->SubProjects[$this->SubProject->GetId()] = $this->SubProject; // Handle dependencies here too. $this->Dependencies[$this->SubProject->GetId()] = array(); foreach ($this->CurrentDependencies as $dependencyid) { $added = false; if ($dependencyid !== false && is_numeric($dependencyid)) { if (array_key_exists($dependencyid, $this->SubProjects)) { $this->Dependencies[$this->SubProject->GetId()][] = $dependencyid; $added = true; } } if (!$added) { add_log('Project.xml DEPENDENCY of ' . $this->SubProject->GetName() . ' not mentioned earlier in file.', 'ProjectHandler:endElement', LOG_WARNING, $this->projectid); } } // Check if the user is in the database. $User = new User(); $posat = strpos($this->Email, '@'); if ($posat !== false) { $User->FirstName = substr($this->Email, 0, $posat); $User->LastName = substr($this->Email, $posat + 1); } else { $User->FirstName = $this->Email; $User->LastName = $this->Email; } $User->Email = $this->Email; $User->Password = md5($this->Email); $User->Admin = 0; $userid = $User->GetIdFromEmail($this->Email); if (!$userid) { $User->Save(); $userid = $User->Id; } // Insert into the UserProject $UserProject = new UserProject(); $UserProject->EmailType = 3; // any build $UserProject->EmailCategory = 54; // everything except warnings $UserProject->UserId = $userid; $UserProject->ProjectId = $this->projectid; $UserProject->Save(); // Insert the labels for this user $LabelEmail = new LabelEmail(); $LabelEmail->UserId = $userid; $LabelEmail->ProjectId = $this->projectid; $Label = new Label(); $Label->SetText($this->SubProject->GetName()); $labelid = $Label->GetIdFromText(); if (!empty($labelid)) { $LabelEmail->LabelId = $labelid; $LabelEmail->Insert(); } } }
/** startElement function */ public function startElement($parser, $name, $attributes) { parent::startElement($parser, $name, $attributes); // Check that the project name matches if ($name == 'PROJECT') { if (get_project_id($attributes['NAME']) != $this->projectid) { add_log("Wrong project name: " . $attributes['NAME'], "ProjectHandler::startElement", LOG_ERR, $this->projectid); $this->ProjectNameMatches = false; } } if (!$this->ProjectNameMatches) { return; } if ($name == 'PROJECT') { $this->SubProjects = array(); $this->Dependencies = array(); } else { if ($name == 'SUBPROJECT') { $this->SubProject = new SubProject(); $this->SubProject->SetProjectId($this->projectid); $this->SubProject->SetName($attributes['NAME']); if (array_key_exists("GROUP", $attributes)) { $this->SubProject->SetGroup($attributes['GROUP']); } $this->SubProject->Save(); // Insert the label $Label = new Label(); $Label->Text = $this->SubProject->GetName(); $Label->Insert(); $this->SubProjects[$this->SubProject->GetId()] = $this->SubProject; $this->Dependencies[$this->SubProject->GetId()] = array(); } else { if ($name == 'DEPENDENCY') { // A DEPENDENCY is expected to be: // // - another subproject that already exists (from a previous element in // this submission) // $dependentProject = new SubProject(); $dependentProject->SetName($attributes['NAME']); $dependentProject->SetProjectId($this->projectid); // The subproject's Id is automatically loaded once its name & projectid // are set. $dependencyid = $dependentProject->GetId(); $added = false; if ($dependencyid !== false && is_numeric($dependencyid)) { if (array_key_exists($dependencyid, $this->SubProjects)) { $this->Dependencies[$this->SubProject->GetId()][] = $dependencyid; $added = true; } } if (!$added) { add_log("Project.xml DEPENDENCY of " . $this->SubProject->GetName() . " not mentioned earlier in file: " . $attributes['NAME'], "ProjectHandler:startElement", LOG_WARNING, $this->projectid); } } else { if ($name == 'EMAIL') { $email = $attributes['ADDRESS']; // Check if the user is in the database $User = new User(); $posat = strpos($email, '@'); if ($posat !== false) { $User->FirstName = substr($email, 0, $posat); $User->LastName = substr($email, $posat + 1); } else { $User->FirstName = $email; $User->LastName = $email; } $User->Email = $email; $User->Password = md5($email); $User->Admin = 0; $userid = $User->GetIdFromEmail($email); if (!$userid) { $User->Save(); $userid = $User->Id; } // Insert into the UserProject $UserProject = new UserProject(); $UserProject->EmailType = 3; // any build $UserProject->EmailCategory = 54; // everything except warnings $UserProject->UserId = $userid; $UserProject->ProjectId = $this->projectid; $UserProject->Save(); // Insert the labels for this user $LabelEmail = new LabelEmail(); $LabelEmail->UserId = $userid; $LabelEmail->ProjectId = $this->projectid; $Label = new Label(); $Label->SetText($this->SubProject->GetName()); $labelid = $Label->GetIdFromText(); if (!empty($labelid)) { $LabelEmail->LabelId = $labelid; $LabelEmail->Insert(); } } } } } }