public function getDupes(ICommunityMember $member) { list($res, $count) = $this->member_repository->getAllByName($member->getFirstName(), $member->getLastName()); $unset = array(); for ($i = 0; $i < count($res); $i++) { if ($res[$i]->getIdentifier() == $member->getIdentifier()) { array_push($unset, $i); continue; } //check merge request $merge_request = $this->merge_request_repository->findByDupeAccount($res[$i]->getEmail()); if (!is_null($merge_request)) { array_push($unset, $i); } // check delete request $delete_request = $this->delete_request_repository->findByDupeAccount($res[$i]->getEmail()); if (!is_null($delete_request)) { array_push($unset, $i); } // check not my account action $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('PrimaryAccountID', $member->getIdentifier())); $query->addAndCondition(QueryCriteria::equal('ForeignAccountID', $res[$i]->getIdentifier())); $action = $this->not_my_account_repository->getBy($query); if (!is_null($action)) { array_push($unset, $i); } } for ($j = 0; $j < count($unset); $j++) { $index = $unset[$j]; unset($res[$index]); } return $res; }
function process() { set_time_limit(0); $csv_file = isset($_GET['csv_file']) ? trim($_GET['csv_file']) : null; if (is_null($csv_file)) { echo 'ERROR - csv_file param missing!'; exit; } $ds = new CvsDataSourceReader(","); $cur_path = Director::baseFolder(); $ds->Open($cur_path . "/assets/" . $csv_file); $headers = $ds->getFieldsInfo(); try { $exams = 0; while (($row = $ds->getNextRow()) !== FALSE) { $code = trim($row[$headers["exam_code"]]); if ($code != 'COA-EVENT') { continue; } $email = trim($row[$headers['open_stack_id']]); $exam_ext_id = trim($row[$headers['candidate_exam_id']]); $status = trim($row[$headers['exam_status']]); $pass_date = trim($row[$headers['pass_fail_date_c']]); $cert_nbr = trim($row[$headers['certification_number']]); $modified_date = trim($row[$headers['candidate_exam_date_modified']]); $exam_expiration_date = trim($row[$headers['exam_expiration_date']]); $cert_exam_expiration_date = trim($row[$headers['certificate_expiration_date']]); $cert_status = trim($row[$headers['certification_status']]); $member = $this->member_repository->findByEmail($email); if (is_null($member)) { continue; } $exam = $member->getExamByExternalId($exam_ext_id); if (is_null($exam)) { //create exam $exam = CertifiedOpenStackAdministratorExam::create(); $exam->OwnerID = $member->ID; $exam->ExternalID = $exam_ext_id; } $exam->setState($status, $modified_date, $exam_expiration_date, $pass_date, $code, $cert_nbr, $cert_exam_expiration_date, $cert_status); $exam->write(); $exams++; } } catch (Exception $e) { $status = 0; } echo sprintf("created %s exams", $exams); }
/** * @param $term * @param bool $obscure_email * @return array */ public function getSpeakerByTerm($term, $obscure_email = true) { $data = $this->speaker_repository->searchByTermActive($term); $res = array(); foreach ($data as $row) { $entry = array(); $speaker_id = intval($row['speaker_id']); $member_id = intval($row['member_id']); $entry['name'] = sprintf("%s %s", $row['firstname'], $row['surname']); if (empty($entry['name'])) { continue; } $entry['title'] = ''; $entry['company'] = ''; $entry['speaker_id'] = $speaker_id; $entry['member_id'] = $member_id; if ($member_id > 0) { $member = $this->member_repository->getById($member_id); $entry['pic'] = $member->ProfilePhotoUrl(); $company = $member->getCurrentCompany(); if (!empty($company)) { $entry['company'] = $company; } } if ($speaker_id > 0) { $speaker = $this->speaker_repository->getById($speaker_id); $entry['pic'] = $speaker->ProfilePhoto(); if (!empty($speaker->Title)) { $entry['title'] = $speaker->Title; } } if ($obscure_email) { $entry['email'] = preg_replace('/(?<=.).(?=.*.@)/u', '*', $row['email']); } array_push($res, $entry); } return $res; }
function index() { try { $member = Member::currentUser(); if ($member) { // user is already logged in return $this->redirect(OpenStackIdCommon::getRedirectBackUrl()); } $consumer = Injector::inst()->get('MyOpenIDConsumer'); $query = Auth_OpenID::getQuery(); $message = Auth_OpenID_Message::fromPostArgs($query); $nonce = $message->getArg(Auth_OpenID_OPENID2_NS, 'response_nonce'); list($timestamp, $salt) = Auth_OpenID_splitNonce($nonce); $claimed_id = $message->getArg(Auth_OpenID_OPENID2_NS, 'claimed_id'); error_log(sprintf('OpenStackIdAuthenticator : id %s - salt %s - timestamp %s', $claimed_id, $salt, $timestamp)); // Complete the authentication process using the server's response. $response = $consumer->complete(OpenStackIdCommon::getReturnTo()); if ($response->status == Auth_OpenID_CANCEL) { error_log('OpenStackIdAuthenticator : Auth_OpenID_CANCEL'); SS_Log::log('OpenStackIdAuthenticator : Auth_OpenID_CANCEL', SS_Log::WARN); throw new Exception('The verification was cancelled. Please try again.'); } else { if ($response->status == Auth_OpenID_FAILURE) { error_log('OpenStackIdAuthenticator : Auth_OpenID_FAILURE'); SS_Log::log('OpenStackIdAuthenticator : Auth_OpenID_FAILURE', SS_Log::WARN); throw new Exception("The OpenID authentication failed."); } else { if ($response->status == Auth_OpenID_SUCCESS) { error_log('OpenStackIdAuthenticator : Auth_OpenID_SUCCESS'); $openid = $response->getDisplayIdentifier(); $openid = OpenStackIdCommon::escape($openid); if ($response->endpoint->canonicalID) { $openid = escape($response->endpoint->canonicalID); } //get user info from openid response $member = null; list($email, $full_name) = $this->getUserProfileInfo($response); if (!is_null($email)) { //try to get user by email $member = $this->member_repository->findByEmail($email); } if (!$member) { // or by openid $member = Member::get()->filter('IdentityURL', $openid)->first(); } if ($member) { $result = $member->canLogIn(); if ($result->valid()) { $member->setIdentityUrl($openid); $member->write(); $member->LogIn(true); return $this->redirect(OpenStackIdCommon::getRedirectBackUrl()); } throw new Exception("Inactive User!"); } throw new Exception("The OpenID authentication failed: can not find user " . $openid); } } } } catch (Exception $ex) { Session::set("Security.Message.message", $ex->getMessage()); Session::set("Security.Message.type", "bad"); SS_Log::log($ex, SS_Log::WARN); return $this->redirect("Security/badlogin"); } }