예제 #1
0
 public function doApprove()
 {
     $exist = Member::get()->filter(array('Email' => $this->Email))->first();
     if ($exist) {
         return false;
     }
     $member = new Member();
     $data = $this->toMap();
     unset($data['ID']);
     unset($data['ClassName']);
     unset($data['UnapprovedMember']);
     $member->update($data);
     $member->write();
     if ($this->MemberType === 'Organization') {
         $member->addToGroupByCode('organization');
         $organization = new Organization();
         $organization->AccountID = $member->ID;
         $organization->company_name = $this->OrganizationName;
         $organizationID = $organization->write();
         $member->OrganizationID = $organizationID;
         $member->write();
     } else {
         $member->addToGroupByCode('personal');
     }
     $this->setField('Approved', true);
     $this->write();
     return true;
 }
 public function finish($data, $form)
 {
     parent::finish($data, $form);
     $steps = DataObject::get('MultiFormStep', "SessionID = {$this->session->ID}");
     if ($steps) {
         foreach ($steps as $step) {
             if ($step->class == 'Page2PersonalDetailsFormStep') {
                 $member = new Member();
                 $data = $step->loadData();
                 if ($data) {
                     $member->update($data);
                     $member->write();
                 }
             }
             if ($step->class == 'Page2OrganisationDetailsFormStep') {
                 $organisation = new Organisation();
                 $data = $step->loadData();
                 if ($data) {
                     $organisation->update($data);
                     if ($member && $member->ID) {
                         $organisation->MemberID = $member->ID;
                     }
                     $organisation->write();
                 }
             }
             // Debug::show($step->loadData()); // Shows the step data (unserialized by loadData)
         }
     }
     $controller = $this->getController();
     $controller->redirect($controller->Link() . 'finished');
 }
 function doSave($data, $form)
 {
     if (isset($data['Password']) && is_array($data['Password'])) {
         $data['Password'] = $data['Password']['_Password'];
     }
     // We need to ensure that the unique field is never overwritten
     $uniqueField = Member::get_unique_identifier_field();
     if (isset($data[$uniqueField])) {
         $SQL_unique = Convert::raw2sql($data[$uniqueField]);
         $existingUniqueMember = Member::get()->filter(array($uniqueField => $SQL_unique))->first();
         if ($existingUniqueMember && $existingUniqueMember->exists()) {
             if (Member::currentUserID() != $existingUniqueMember->ID) {
                 die("current member does not match enrolled member.");
                 return false;
             }
         }
     }
     $member = Member::currentUser();
     if (!$member) {
         $member = new Member();
     }
     $member->update($data);
     $member->write();
     $arrayExtraFields = array();
     if (isset($data["SelectedOption"])) {
         $arrayExtraFields["SelectedOption"] = $data["SelectedOption"];
     }
     if (isset($data["BookingCode"])) {
         $arrayExtraFields["BookingCode"] = $data["BookingCode"];
     }
     $this->controller->addAttendee($member, $arrayExtraFields);
     $this->redirect($this->getController()->Link("thankyou"));
     return;
 }
예제 #4
0
 public function setStatusCallback(StdClass $args, ReadOnlyObject $action, ReadWriteObject $mem_redirect, ReadWriteObject $mem_resend)
 {
     $vars = $this->args_vars->post;
     $member = new Member($vars['member-id']);
     $member->Status = $vars['new-status'];
     $member->update();
     return true;
 }
 public function testCMSAccess()
 {
     $members = Member::get()->byIDs($this->allFixtureIDs('Member'));
     foreach ($members as $member) {
         $this->assertTrue(Permission::checkMember($member, 'CMS_ACCESS'));
     }
     $member = new Member();
     $member->update(array('FirstName' => 'No CMS', 'Surname' => 'Access', 'Email' => '*****@*****.**'));
     $member->write();
     $this->assertFalse(Permission::checkMember($member, 'CMS_ACCESS'));
 }
 /**
  * Create permissions, groups and member records if they don't exist.
  */
 public function requireDefaultRecords()
 {
     parent::requireDefaultRecords();
     $groups = array();
     // create or update groups, cache id by title
     foreach (self::$groups as $title => $description) {
         if (!($group = DataObject::get_one('Group', " Title = '{$title}'"))) {
             $group = new Group(array('Title' => $title));
         }
         // update description if exists, otherwise set
         $group->Description = $description;
         $group->write();
         $groups[$title] = $group->ID;
     }
     // create or update permissions and assign to associated group
     foreach (self::$permissions as $code => $groupTitle) {
         if (!($perm = DataObject::get_one('Permission', " Code = '{$code}' "))) {
             $perm = new Permission(array('Code' => $code));
         }
         $perm->GroupID = $groups[$groupTitle];
         $perm->write();
     }
     // if config option is true create or update members, then add Member to group
     if ($this->config()->get('create_members_and_assign_to_groups') === true) {
         foreach (self::$members as $memberInfo) {
             $email = $memberInfo['Email'];
             if (!($member = DataObject::get_one('Member', " Email = '{$email}' "))) {
                 $member = new Member();
             }
             // set or update data
             $member->update($memberInfo);
             $member->write();
             foreach (self::$member_groups[$email] as $groupTitle) {
                 // if not in the group already add it
                 $groupID = $groups[$groupTitle];
                 if (!$member->Groups()->filter('ID', $groupID)->first()) {
                     $member->Groups()->add($groupID);
                 }
                 $member->write();
             }
         }
     }
 }
 /**
  * Create a new member with given data for a new member,
  * or merge the data into the logged in member.
  * 
  * IMPORTANT: Before creating a new Member record, we first
  * check that the request email address doesn't already exist.
  * 
  * @param array $data Form request data to update the member with
  * @return boolean|object Member object or boolean FALSE
  */
 public static function createOrMerge($data)
 {
     // Because we are using a ConfirmedPasswordField, the password will
     // be an array of two fields
     if (isset($data['Password']) && is_array($data['Password'])) {
         $data['Password'] = $data['Password']['_Password'];
     }
     // We need to ensure that the unique field is never overwritten
     $uniqueField = Member::get_unique_identifier_field();
     if (isset($data[$uniqueField])) {
         $SQL_unique = Convert::raw2xml($data[$uniqueField]);
         $existingUniqueMember = DataObject::get_one('Member', "{$uniqueField} = '{$SQL_unique}'");
         if ($existingUniqueMember && $existingUniqueMember->exists()) {
             if (Member::currentUserID() != $existingUniqueMember->ID) {
                 return false;
             }
         }
     }
     if (!($member = Member::currentUser())) {
         $member = new Member();
     }
     $member->update($data);
     return $member;
 }
예제 #8
0
    if ($_POST['id'] == 0) {
        // new ---> add
        if ($member->addJobProfile($data) === false) {
            echo 'ko';
            exit;
        }
    } else {
        // existing ---> update
        if ($member->saveJobProfile($_POST['id'], $data) === false) {
            echo 'ko';
            exit;
        }
    }
    $data = array();
    $data['updated_on'] = date('Y-m-d');
    $member->update($data);
    echo 'ok';
    exit;
}
if ($_POST['action'] == 'get_job_profiles') {
    $criteria = array('columns' => "member_job_profiles.id, member_job_profiles.position_title, \n                      member_job_profiles.position_superior_title, \n                      member_job_profiles.employer, industries.industry AS specialization, \n                      employer_industries.industry AS employer_specialization, \n                      DATE_FORMAT(member_job_profiles.work_from, '%b, %Y') AS formatted_work_from, \n                      DATE_FORMAT(member_job_profiles.work_to, '%b, %Y') AS formatted_work_to", 'joins' => "member_job_profiles ON member_job_profiles.member = members.email_addr, \n                    industries ON industries.id = member_job_profiles.specialization, \n                    industries AS employer_industries ON employer_industries.id = member_job_profiles.employer_specialization", 'match' => "members.email_addr = '" . $_POST['id'] . "'", 'having' => "member_job_profiles.id IS NOT NULL", 'order' => "work_from DESC");
    $member = new Member();
    $result = $member->find($criteria);
    if (is_null($result) || empty($result) || count($result) <= 0) {
        echo '0';
        exit;
    }
    if ($result === false) {
        echo 'ko';
        exit;
    }
예제 #9
0
if ((!isset($_COOKIE['btUsername']) || !isset($_COOKIE['btPassword'])) && isset($_SESSION['btRememberMe']) && $_SESSION['btRememberMe'] == 1 && isset($_SESSION['btUsername']) && isset($_SESSION['btPassword'])) {
    $cookieExpTime = time() + 60 * 60 * 24 * 3;
    setcookie("btUsername", $_SESSION['btUsername'], $cookieExpTime, $MAIN_ROOT);
    setcookie("btPassword", $_SESSION['btPassword'], $cookieExpTime, $MAIN_ROOT);
}
$menuXML = new SimpleXMLElement(BASE_DIRECTORY . "themes/" . $THEME . "/themeinfo.xml", NULL, true);
if (isset($_SESSION['btUsername']) && isset($_SESSION['btPassword'])) {
    $memberObj = new Member($mysqli);
    if ($memberObj->select($_SESSION['btUsername'])) {
        if ($memberObj->authorizeLogin($_SESSION['btPassword'])) {
            define("LOGGED_IN", true);
            $memberInfo = $memberObj->get_info();
            $memberUsername = $memberInfo['username'];
            $memberID = $memberInfo['member_id'];
            if ($memberInfo['loggedin'] == 0) {
                $memberObj->update(array("loggedin"), array(1));
            }
            $actualPageNameLoc = strrpos($PAGE_NAME, " - ");
            $actualPageName = substr($PAGE_NAME, 0, $actualPageNameLoc);
            if ($PAGE_NAME == "") {
                $actualPageName = "Home Page";
            }
            $lastSeenLink = "<a href='" . $dispHTTP . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] . "'>" . $actualPageName . "</a>";
            $arrUpdateColLastSeen = array("lastseen", "lastseenlink");
            $arrUpdateValLastSeen = array(time(), $lastSeenLink);
            if (time() - $memberInfo['lastlogin'] > 3600) {
                $arrUpdateColLastSeen[] = "lastlogin";
                $arrUpdateValLastSeen[] = time();
            }
            $memberObj->update($arrUpdateColLastSeen, $arrUpdateValLastSeen);
            $rankObj = new Rank($mysqli);
예제 #10
0
<?php

/*
 * Bluethrust Clan Scripts v4
 * Copyright 2014
 *
 * Author: Bluethrust Web Development
 * E-mail: support@bluethrust.com
 * Website: http://www.bluethrust.com
 *
 * License: http://www.bluethrust.com/license.php
 *
 */
$prevFolder = "../";
include "../_setup.php";
$memberObj = new Member($mysqli);
if ($memberObj->select($_SESSION['btUsername']) && $memberObj->authorizeLogin($_SESSION['btPassword'])) {
    $memberObj->update(array("loggedin"), array(0));
}
if (isset($_COOKIE['btUsername']) || isset($_COOKIE['btPassword'])) {
    setcookie("btUsername", "", time() - 3600, $MAIN_ROOT);
    setcookie("btPassword", "", time() - 3600, $MAIN_ROOT);
}
$_SESSION['btPassword'] = "";
$_SESSION['btUsername'] = "";
$_SESSION['btRememberMe'] = "";
echo "\n<script type='text/javascript'>\nwindow.location = '" . $MAIN_ROOT . "';\n</script>\n";
예제 #11
0
 }
 // 3. make the member privileged
 // 3.1 check whether is the member active?
 //     if not, reset the password to the email and set flag to send email, and make member active.
 // 3.2 make the recommender field to use the $branch
 $send_password_reset_email = false;
 $member_data = array();
 $member_data['recommender'] = $branch;
 $member_data['added_by'] = $employee->id();
 $member = new Member($_POST['member']);
 if (!$member->is_active()) {
     $member_data['password'] = md5($member->id());
     $member_data['active'] = 'Y';
     $send_password_reset_email = true;
 }
 if ($member->update($member_data, true) === false) {
     echo '-2';
     // failed to activate member
     exit;
 }
 // 4. make this $branch as default friend
 // 4.1 if such a relationship does not exist, add and pre-approve it.
 $contact_adding_error = false;
 $query = "SELECT approved FROM member_referees \n              WHERE member = '" . $member->id() . "' AND \n              referee = '" . $branch . "'";
 $result = $mysqli->query($query);
 if (is_null($result[0]['approved'])) {
     // add
     $query = "INSERT INTO member_referees SET \n                  `member` = '" . $member->id() . "', \n                  `referee` = '" . $branch . "', \n                  `referred_on` = NOW(), \n                  `approved` = 'Y'; \n                  INSERT INTO member_referees SET \n                  `referee` = '" . $member->id() . "', \n                  `member` = '" . $branch . "', \n                  `referred_on` = NOW(), \n                  `approved` = 'Y'";
 } else {
     if ($result[0]['approved'] == 'N') {
         // update
예제 #12
0
 $data = array();
 $data['firstname'] = $_POST['firstname'];
 $data['lastname'] = $_POST['lastname'];
 $data['phone_num'] = $_POST['phone_num'];
 $data['address'] = $_POST['address'];
 $data['state'] = $_POST['state'];
 $data['zip'] = $_POST['zip'];
 $data['country'] = $_POST['country'];
 $data['citizenship'] = $_POST['citizenship'];
 $data['hrm_gender'] = $_POST['hrm_gender'];
 $data['hrm_ethnicity'] = $_POST['hrm_ethnicity'];
 $data['hrm_birthdate'] = $_POST['hrm_birthdate'];
 $member = NULL;
 if ($mode == 'update') {
     $member = new Member($_POST['id']);
     if (!$member->update($data)) {
         echo 'ko';
         exit;
     }
 } else {
     $member = new Member($_POST['email_addr']);
     $new_password = generate_random_string_of(6);
     $hash = md5($new_password);
     $data['password'] = $hash;
     $data['forget_password_question'] = '1';
     $data['forget_password_answer'] = 'system picked';
     $data['added_by'] = $employee->getId();
     $data['joined_on'] = $today;
     $data['active'] = 'Y';
     $data['invites_available'] = '10';
     if ($member->create($data) === false) {
예제 #13
0
// to avoid conflicts with existing usernames
$date = dechex(time());

$ngroup = new_ngroup("Test ballots group", 500, 25);

// create main member
$login = new Member;
$login->invite = Login::generate_token(24);
$login->eligible = true;
$login->verified = true;
$login->create();
$login->username = "******".$date."login";
$login->password = $password;
$login->mail = ERROR_MAIL;
$login->update(['username', 'password', 'eligible', 'mail'], 'activated=now()');


// go through all cases
$case = 0;
do {
	$stopcase = 0;
	do {
		$case++;
		$stopcase++;
	} while ( ! $return = create_case($case, $stopcase) );
} while ( $return !== "end" );


/**
 * create one test case
use Agil\View\View;
use Agil\Session\Session;
$request = View::route($_POST);
if ($request['METHOD'] == 'POST' && !empty($request['name']) && !empty($request['username']) && !empty($request['email'])) {
    $logado = Session::get('logado');
    $name = $request['name'];
    $username = $request['username'];
    $email = $request['email'];
    try {
        $sql = array('id_member' => $logado['id_member'], 'status' => '1');
        $login = new Login();
        $login->fields = array('username' => $username);
        $login->update($sql);
        $member = new Member();
        $member->fields = array('name' => $name, 'email' => $email);
        $member->update($sql);
        $fields = array('name' => $name, 'email' => $email, 'username' => $username);
        foreach ($logado as $key => $value) {
            if (array_key_exists($key, $logado) && array_key_exists($key, $fields)) {
                $logado[$key] = $fields[$key];
            }
        }
        Session::update('logado', $logado);
        ?>
		<script>
			window.parent.boss.ajax.load('/app/user/form_profile/', '#app_conteiner');
		</script>
		<?php 
    } catch (Exception $e) {
        echo $e;
    }
예제 #15
0
}
// Disable members who fail to be promoted for auto-disable ranks
$arrRanks = array();
$result = $mysqli->query("SELECT rank_id FROM " . $dbprefix . "ranks WHERE autodisable != '0'");
while ($row = $result->fetch_assoc()) {
    $arrRanks[] = $row['rank_id'];
}
$sqlRanks = "('" . implode("','", $arrRanks) . "')";
$result = $mysqli->query("SELECT * FROM " . $dbprefix . "members WHERE rank_id IN " . $sqlRanks . " AND onia = '0'");
while ($row = $result->fetch_assoc()) {
    $member->select($row['member_id']);
    $memberListInfo = $member->get_info();
    $rankObj->select($row['rank_id']);
    $memRankListInfo = $rankObj->get_info();
    if (floor(time() / 86400) - floor($memberListInfo['datejoined'] / 86400) >= $memRankListInfo['autodisable']) {
        $member->update(array("disabled", "disableddate"), array(1, $time));
        $member->logAction("Disabled for failure to be promoted before " . $memRankListInfo['autodisable'] . " days.");
    }
}
$rankCatObj = new RankCategory($mysqli);
$gameObj = new Game($mysqli);
$breadcrumbObj->setTitle("Members");
$breadcrumbObj->addCrumb("Home", $MAIN_ROOT);
$breadcrumbObj->addCrumb("Members");
include $prevFolder . "include/breadcrumb.php";
?>
<div id='tiltPhoneImg' style='display: none'><img src='<?php 
echo $MAIN_ROOT;
?>
images/tiltphone.png'><p align='center'>need more space<br>tilt your phone!</p></div>
<table class='formTable' id='membersPageTable'>
예제 #16
0
 if ($_POST['action'] == "postmessage" && trim($_POST['message']) != "" && $checkRequestID) {
     $iaRequestMessageObj = new Basic($mysqli, "iarequest_messages", "iamessage_id");
     $arrColumns = array("iarequest_id", "member_id", "messagedate", "message");
     $arrValues = array($iaRequestObj->get_info("iarequest_id"), $memberInfo['member_id'], time(), $_POST['message']);
     $iaRequestMessageObj->addNew($arrColumns, $arrValues);
     echo dispIAMessages($iaRequestObj->get_info("iarequest_id"));
     $requestIACID = $consoleObj->findConsoleIDByName("Inactive Request");
     $member->select($iaRequestObj->get_info("member_id"));
     $member->postNotification("A new message was posted on your inactive request!<br><br><a href='" . $MAIN_ROOT . "members/console.php?cID=" . $requestIACID . "'>View Messages</a>");
     exit;
 } elseif (($_POST['action'] == "approve" || $_POST['action'] == "deny") && $checkRequestID) {
     $requestStatus = $_POST['action'] == "approve" ? 1 : 2;
     $iaRequestObj->update(array("reviewer_id", "reviewdate", "requeststatus"), array($memberInfo['member_id'], time(), $requestStatus));
     if ($requestStatus == 1) {
         $member->select($iaRequestObj->get_info("member_id"));
         $member->update(array("onia", "inactivedate"), array(1, time()));
         $member->postNotification("Your inactive request was approved!");
     } else {
         $member->select($iaRequestObj->get_info("member_id"));
         $member->update(array("onia", "inactivedate"), array(0, 0));
         $member->postNotification("Your inactive request was denied!");
     }
     $member->select($memberInfo['member_id']);
 } elseif ($_POST['action'] == "delete" && $checkRequestID) {
     $member->select($iaRequestObj->get_info("member_id"));
     $dispIAMemberName = $member->getMemberLink();
     $iaRequestObj->delete();
     $member->postNotification("Your inactive request was deleted!");
     $member->select($memberInfo['member_id']);
     $member->logAction("Deleted " . $dispIAMemberName . "'s IA Request.");
 }
 /**
  * Finds a member based on this identity. Searches existing records before
  * creating a new Member object.
  * Note that this method does not write anything, merely sets everything up.
  * @param array $usrSettings A map of settings because there are so many.
  * @return Member
  */
 public function findOrCreateMember($usrSettings = array())
 {
     $defaults = array('linkOnMatch' => true, 'overwriteExistingFields' => false, 'overwriteEmail' => false);
     $settings = array_merge($defaults, $usrSettings);
     if ($this->isInDB()) {
         $member = $this->Member();
         if ($member->exists()) {
             return $member;
         }
     }
     $record = $this->getMemberRecordFromAuth();
     if (empty($record['Email'])) {
         $member = new Member();
     } else {
         $member = Member::get()->filter('Email', $record['Email'])->first();
         if (!$member) {
             $member = new Member();
         }
     }
     if ($settings['linkOnMatch'] && $member->isInDB()) {
         $this->MemberID = $member->ID;
     }
     // If this is a new member, give it everything we have.
     if (!$member->isInDB()) {
         $member->update($record);
     } else {
         $overwrite = $settings['overwriteExistingFields'];
         $overwriteEmail = $settings['overwriteEmail'];
         $fieldsToWrite = array();
         // If overwrite is true, take everything (subtract Email later)
         if ($overwrite === true) {
             $fieldsToWrite = $record;
         } else {
             if (is_array($overwrite)) {
                 $fieldsToWrite = array_intersect_key($record, ArrayLib::valuekey($overwrite));
             }
         }
         // If false then fieldsToWrite remains empty, let's coast it out.
         // Subtract email if setting is not precisely true:
         if ($overwriteEmail !== true && isset($fieldsToWrite['Email'])) {
             unset($fieldsToWrite['Email']);
         }
         // Boom, we're so done.
         $member->update($fieldsToWrite);
     }
     return $member;
 }
예제 #18
0
        $newMemberInfo = $memberObj->get_info_filtered();
        $memberObj->select($newMemberInfo['recruiter']);
        $oldRecruiterInfo = $memberObj->get_info_filtered();
    }
    // Check Recruiter
    if (!$memberObj->select($_POST['newrecruiter'])) {
        $countErrors++;
        $dispError = "&nbsp;&nbsp;&nbsp;<b>&middot;</b> You selected an invalid Recruiter.<br>";
    } else {
        $newRecruiterInfo = $memberObj->get_info_filtered();
    }
    if ($countErrors == 0) {
        $arrColumns = array("recruiter");
        $arrValues = array($_POST['newrecruiter']);
        $memberObj->select($_POST['member']);
        if ($memberObj->update($arrColumns, $arrValues)) {
            $logMessage = $member->getMemberLink() . " changed " . $newMemberInfo['username'] . "'s recruiter from " . $oldRecruiterInfo['username'] . " to " . $newRecruiterInfo['username'] . ".<br><br><b>Reason:</b><br>" . filterText($_POST['reason']);
            echo "\n\t\t\t\t<div style='display: none' id='successBox'>\n\t\t\t\t\t<p align='center'>\n\t\t\t\t\t\tSuccessfully set " . $memberObj->getMemberLink() . "'s recruiter to <b>" . $newRecruiterInfo['username'] . "</b>!\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t\t<script type='text/javascript'>\n\t\t\t\t\tpopupDialog('Set Member\\'s Recruiter', '" . $MAIN_ROOT . "members', 'successBox');\n\t\t\t\t</script>\n\t\t\t\n\t\t\t";
            $memberObj->postNotification("Your recruiter has been set to " . $newMemberInfo['username'] . "!");
            $member->select($memberInfo['member_id']);
            $member->logAction($logMessage);
        } else {
            $countErrors++;
            $dispError .= "&nbsp;&nbsp;&nbsp;<b>&middot;</b> Unable to save information to the database.  Please contact the website administrator.<br>";
        }
    }
    if ($countErrors > 0) {
        $_POST = filterArray($_POST);
        $_POST['submit'] = false;
    }
}
예제 #19
0
         $_SESSION['yel']['member']['hash'] = "";
         $response['errors'] = array('error' => 'create_error');
         echo $xml_dom->get_xml_from_array($response);
         exit;
     }
 } else {
     // reverse check by looking for linkedin_id from id.
     // if it is empty, then update.
     // if it is not a match with the supplied linkedin_id, then error out
     $stored_linkedin_id = $member->getLinkedInId();
     if ($stored_linkedin_id !== false && is_null($stored_linkedin_id)) {
         // update
         $data = array();
         $data['linkedin_id'] = $linkedin_id;
         $member->setAdmin(true);
         if ($member->update($data) === false) {
             $_SESSION['yel']['member']['hash'] = "";
             $response['errors'] = array('error' => 'update_error');
             echo $xml_dom->get_xml_from_array($response);
             exit;
         }
     } else {
         // matched?
         if ($stored_linkedin_id != $linkedin_id) {
             $_SESSION['yel']['member']['hash'] = "";
             $response['errors'] = array('error' => 'hacking_detected');
             echo $xml_dom->get_xml_from_array($response);
             exit;
         }
     }
 }
 public static function ecommerce_create_or_merge($data)
 {
     // Because we are using a ConfirmedPasswordField, the password will
     // be an array of two fields
     if (isset($data['Password']) && is_array($data['Password'])) {
         $data['Password'] = $data['Password']['_Password'];
     }
     // We need to ensure that the unique field is never overwritten
     $uniqueField = Member::get_unique_identifier_field();
     if (isset($data[$uniqueField])) {
         $SQL_unique = Convert::raw2xml($data[$uniqueField]);
         // TODO review - should $uniqueField be quoted by Member::get_unique_identifier_field() already? (this would be sapphire bug)
         $existingUniqueMember = DataObject::get_one('Member', "\"{$uniqueField}\" = '{$SQL_unique}'");
         if ($existingUniqueMember && $existingUniqueMember->exists()) {
             if (Member::currentUserID() != $existingUniqueMember->ID) {
                 return false;
             }
         }
     }
     if (!($member = Member::currentUser())) {
         $member = new Member();
     }
     $member->update($data);
     return $member;
 }
예제 #21
0
            if ($twitterInfo['allowlogin'] == 1) {
                // LOGGED IN!
                // Update Twitter Stats
                $twitterObj->oauthToken = $twitterObj->get_info("oauth_token");
                $twitterObj->oauthTokenSecret = $twitterObj->get_info("oauth_tokensecret");
                $twitterObj->reloadCacheInfo();
                $memberObj = new Member($mysqli);
                $memberObj->select($twitterInfo['member_id']);
                $memberInfo = $memberObj->get_info();
                $_SESSION['btUsername'] = $memberInfo['username'];
                $_SESSION['btPassword'] = $memberInfo['password'];
                $_SESSION['btRememberMe'] = $_POST['rememberme'];
                $newLastLogin = time();
                $newTimesLoggedIn = $memberInfo['timesloggedin'] + 1;
                $newIP = $_SERVER['REMOTE_ADDR'];
                $memberObj->update(array("lastlogin", "timesloggedin", "ipaddress", "loggedin"), array($newLastLogin, $newTimesLoggedIn, $newIP, 1));
                $memberObj->autoPromote();
                echo "\n\t\t\t\t\t<script type='text/javascript'>\n\t\t\t\t\t\twindow.location = '" . $MAIN_ROOT . "index.php';\n\t\t\t\t\t</script>\n\t\t\t\t";
                exit;
            } else {
                $dispError = "You may not use twitter to log in to this account.  To change this setting, log in to your account regularly and change your Twitter Connect settings.<br><br>";
            }
        } else {
            $dispError = "There is no user associated with this Twitter account.  You must connect your Twitter account while logged in before using this feature.";
        }
    } else {
        $dispError = "Unable to connect to Twitter!  Please <a href='" . $MAIN_ROOT . "plugins/twitter/login.php'>Try Again</a>.";
    }
} else {
    $dispError = "You entered an incorrect username/password combination!";
}
예제 #22
0
        $rankObj->select($tempMemInfo['rank_id']);
        $tempRankInfo = $rankObj->get_info();
        if ($powerRankInfo['ordernum'] < $tempRankInfo['ordernum']) {
            $countErrors++;
            $dispError .= "&nbsp;&nbsp;&nbsp;<b>&middot;</b> You may not change the selected member's recruit date.<br>";
        }
    }
    $recruitDate = $_POST['newrecruitdate'] / 1000;
    if ($recruitDate > time()) {
        $countErrors++;
        $dispError .= "&nbsp;&nbsp;&nbsp;<b>&middot;</b> You selected an invalid date.<br>";
    }
    if ($countErrors == 0) {
        $arrColumn = array("datejoined");
        $arrValue = array($recruitDate);
        if ($memberObj->update($arrColumn, $arrValue)) {
            echo "\n\t\t\t\t<div style='display: none' id='successBox'>\n\t\t\t\t\t<p align='center'>\n\t\t\t\t\t\tSuccessfully changed " . $memberObj->getMemberLink() . "'s recruit date!\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t\n\t\t\t\t<script type='text/javascript'>\n\t\t\t\t\tpopupDialog('Set Member\\'s Recruit Date', '" . $MAIN_ROOT . "members', 'successBox');\n\t\t\t\t</script>\n\t\t\t\n\t\t\t";
            $logMessage = "Changed " . $tempMemInfo['username'] . "'s recruit date to " . date("D M j, Y g:i a", $recruitDate) . ".";
            $member->logAction($logMessage);
        } else {
            $countErrors++;
            $dispError .= "&nbsp;&nbsp;&nbsp;<b>&middot;</b> Unable to save information to the database.  Please contact the website administrator.<br>";
        }
    }
    if ($countErrors > 0) {
        $_POST['submit'] = false;
    }
}
if (!$_POST['submit']) {
    $result = $mysqli->query("SELECT " . $dbprefix . "members.member_id FROM " . $dbprefix . "members, " . $dbprefix . "ranks WHERE " . $dbprefix . "ranks.rank_id = " . $dbprefix . "members.rank_id AND " . $dbprefix . "ranks.ordernum <= '" . $powerRankInfo['ordernum'] . "' AND " . $dbprefix . "members.rank_id != '1' AND " . $dbprefix . "members.disabled = '0' ORDER BY " . $dbprefix . "ranks.ordernum DESC, " . $dbprefix . "members.username");
    while ($row = $result->fetch_assoc()) {
예제 #23
0
파일: member.php 프로젝트: pamalite/yel
    }
}
if (!$member->isLoggedIn($hash)) {
    echo "failed";
    exit;
}
?>
</p><p style="font-weight: bold;">Update my details... </p><p><?php 
echo "Before...<br><br>";
echo "<pre>";
print_r($member->get());
echo "</pre><br><br>";
$data = array();
$data['password'] = md5('new_password');
$new_member = array();
if ($member->update($data)) {
    $new_member = $member->get();
    echo "<pre>";
    print_r($new_member);
    echo "</pre>";
    $hash = sha1($uid . $new_member[0]['password'] . $seed);
} else {
    echo "failed";
    exit;
}
?>
</p><p style="font-weight: bold;">Still logged in after a password change?</p><p><?php 
if (!$member->isLoggedIn($hash)) {
    echo "failed";
    exit;
} else {
예제 #24
0
    foreach ($lines as $line) {
        $message .= $line;
    }
    $message = str_replace('%temporary_password%', $new_password, $message);
    $subject = "Member Password Reset";
    $headers = 'From: YellowElevator.com <*****@*****.**>' . "\n";
    mail($_POST['id'], $subject, $message, $headers);
    echo 'ok';
    exit;
}
if ($_POST['action'] == 'activate') {
    $member = new Member($_POST['id']);
    $data = array();
    $data['password'] = md5($member->id());
    $data['active'] = 'Y';
    if (!$member->update($data, true)) {
        echo "ko";
        exit;
    }
    $lines = file(dirname(__FILE__) . '/../private/mail/member_reactivated_admin.txt');
    $message = '';
    foreach ($lines as $line) {
        $message .= $line;
    }
    $subject = "Membership Re-activated";
    $headers = 'From: YellowElevator.com <*****@*****.**>' . "\n";
    mail($_POST['id'], $subject, $message, $headers);
    // $handle = fopen('/tmp/email_to_'. $_POST['id']. '.txt', 'w');
    // fwrite($handle, 'Subject: '. $subject. "\n\n");
    // fwrite($handle, $message);
    // fclose($handle);
    header('Location: ' . $ROOT . 'login/?returnURL=' . $_SERVER['REQUEST_URI']);
}
if (intval($_SESSION["user"]["meetup_id"]) === intval($_GET["meetup_id"])) {
    $GeodevDB = new GeodevDB(array("meetup_id" => $_GET["meetup_id"]));
    if (!empty($_POST)) {
        $user = new Member(array("meetup_id" => $_SESSION["user"]["meetup_id"]));
        $errorMessage = "";
        if ($_FILES["photo"]["name"]) {
            $path = uploadFile($_SESSION["user"]["meetup_id"]);
            if ($path["status"] === "error") {
                $errorMessage .= $path["response"];
            } else {
                $user->photo_url = $path["response"];
            }
        }
        $user->update($_POST);
        if ($user->save() && $errorMessage !== "") {
            $smarty->assign('MESSAGE', "El perfil ha sido actualizado con éxito");
        } else {
            $smarty->assign('MESSAGE', $errorMessage);
        }
        $userprofile = $user->getUserProfile();
        $_SESSION['user'] = $userprofile;
    } else {
        $userprofile = $GeodevDB->getUser(array("type" => "userprofile"));
    }
    $smarty->assign('PROFILE', $userprofile);
    $smarty->assign('OTHERSKILLS', $GeodevDB->getSkills(array("type" => "other")));
    $smarty->assign('GEOSKILLS', $GeodevDB->getSkills(array("type" => "geo")));
    $smarty->assign('SKILLSGIS', $GeodevDB->getUserSkills(array("type" => "gis")));
    $smarty->assign('SKILLS', $GeodevDB->getUserSkills(array("type" => "other")));