protected function setNavigation(Member $member) { if ($member->getId() !== $this->getUser()->getMemberId()) { sfConfig::set('sf_nav_type', 'friend'); sfConfig::set('sf_nav_id', $member->getId()); } }
/** * returns a count of how many posts a member has made * * @param object $member - Member entity * @access public * @return int */ public function getMemberPostCount(Member $member) { if (!$member->isLoaded()) { return 0; } return $this->countWhere("IdWriter = '{$member->getPKValue()}'"); }
private function addMember($id, $name) { $session = $this->getSession($id); // Check for existing member foreach ($session->getMembers() as $candidate) { if ($candidate->getName() == $name) { $member = $candidate; break; } } // Create new member if (!isset($member)) { $member = new Member(); $member->setName($name); $member->setSession($session); $this->save($member); } // Store name in cookie if not done yet if (!isset($_COOKIE['scrum_member_name'])) { setcookie('scrum_member_name', $name); } $result = new stdClass(); $result->sessionId = $id; $result->memberId = $member->getId(); return $result; }
/** * This method is overly complex, because {@link Comment} doesn't have a standard 'Parent' has_one, as it can be * attached to multiple different object types. * * @todo Can we fix this method without losing the flexibility that {@link Comment} provides? * * @see the above CommentUserNotificationSubscriptions() method for documentation * @param Member $member The {@link Member} object to find comments posted by, where `NotifyOfUpdates` = 1 * @return ArrayList The list of {@link ArrayData} objects that can be shown in the template */ public function CommentUserNotificationSubscriptionsFor(Member $member) { if (!$member || !$member->isInDB()) { return null; } // No member (or no ID yet), so nothing to find $allComments = Comment::get()->filter(array('AuthorID' => $member->ID, 'NotifyOfUpdates' => true)); if (!$allComments) { return null; } $allObjects = new ArrayList(); $allAddedComments = new ArrayList(); // @todo O(n^2) :( foreach ($allComments as $comment) { $alreadyAdded = false; foreach ($allAddedComments as $obj) { if ($comment->BaseClass == $obj->BaseClass && $comment->ParentID == $obj->ParentID) { $alreadyAdded = true; break; } } if (!$alreadyAdded) { $baseClass = $comment->BaseClass; $baseObject = $baseClass::get()->byID($comment->ParentID); if ($baseObject) { // @todo This could return the actual DataObject that we're expecting (e.g. the SiteTree object), // but we can't add the 'CommentUserNotificationUnsubscribeLink' easily to it $allObjects->push(new ArrayData(array('CommentUserNotificationUnsubscribeLink' => Controller::join_links('CommentingController', 'unsubscribenotification', $comment->ID), 'Title' => $baseObject->Title))); $allAddedComments->push($comment); // Keep track of what we've already added } } } return $allObjects; }
function execute() { $return = new stdClass(); $params = Request::_REQUEST(); Config::set("HideDebugger", true); if (isset($params['id'])) { if ($params['id'] == Config::get("Member")->getID()) { $return->error = "ID matches logged in ID and cannot delete!"; echo json_encode($return); return; } $user = new Member($params["id"]); if (isset($user) && $user->isValid()) { $user->delete(); $return->id = $params['id']; $return->deleted = true; echo json_encode($return); return; } else { $return->error = "ID is invalid!"; echo json_encode($return); return; } } else { $return->error = "Missing ID!"; echo json_encode($return); return; } }
function make_result_table($user_ids, $signer, $ma_url) { print "<h3>Results</h3>"; if (count($user_ids) == 0) { print "<p>No results found. (warning: no partial matches!)</p>"; } else { print "<table><tr><th>Name</th><th>Username</th><th>Email</th><th>URN</th><th>UUID</th><th>Actions</th></tr>"; $requester_details = lookup_member_details($ma_url, $signer, $user_ids); foreach ($user_ids as $user_id) { $user_details = $requester_details[$user_id]; $username = $user_details[MA_ATTRIBUTE_NAME::USERNAME]; $member = new Member($user_id); $member->init_from_record($user_details); $name = $member->prettyName(); $email = $user_details[MA_ATTRIBUTE_NAME::EMAIL_ADDRESS]; $urn = $user_details[MA_ATTRIBUTE_NAME::URN]; $mail_to = "<a href='mailto:{$email}'>{$email}</a>"; print "<tr><td>{$name}</td><td>{$username}</td><td>{$mail_to}</td><td>{$urn}</td><td>{$user_id}</td>"; print "<td><button onclick='expand_info(this);'>More info</button>"; print "<button class='hideinfo' onclick='hide_info(this);' style='display:none;'>Close</button></td></tr>"; $user_profile_info = get_user_profile_info($user_details, $name, $user_id); $user_project_info = get_user_project_info($user_id, $name, $signer); $user_slice_info = get_user_slice_info($user_id, $name, $signer); print "<tr style='display:none'>"; print "<td colspan='3' style='vertical-align:top'>{$user_profile_info}</td>"; print "<td style='vertical-align: top;'>{$user_project_info}</td>"; print "<td style='vertical-align: top;'>{$user_slice_info}</td>"; print "<td style='vertical-align: top;'><button onclick='disable_user(\"{$name}\", \"{$urn}\");'>Disable user</button></tr>"; } print "</table>"; } }
function dispLoggedIn($arrLoginInfo) { global $MAIN_ROOT, $mysqli; $memberObj = new Member($mysqli); /* $arrLoginInfo['memberID'] = $memberID; $arrLoginInfo['memberUsername'] = $memberUsername; $arrLoginInfo['memberRank'] = $memberRank; $arrLoginInfo['pmCID'] = $pmCID; $arrLoginInfo['pmCount'] = $dispPMCount; */ $memberInfo = $arrLoginInfo['memberInfo']; $memberObj->select($memberInfo['member_id']); $dispLoggedinBox = "\n\t\t<div class='loggedInSection'>\n\t\t\t<b>Account Name:</b><br>\n\t\t\t<p>" . $memberObj->getMemberLink() . "</p>\n\t\t\t<div class='dottedLine' style='margin: 5px 0px'></div>\n\t\t\t<b>Rank:</b>\n\t\t\t<p>" . $arrLoginInfo['memberRank'] . "</p>\n\t\t\t<div class='dottedLine' style='margin: 5px 0px'></div>\n\t\t\t<b>Member Options:</b><br>\n\t\t\t<ul class='loggedInMenuList'>\n\t\t\t\t<li><a href='" . $MAIN_ROOT . "members'>My Account</a></li>\n\t\t\t\t<li><a href='" . $MAIN_ROOT . "members/console.php?cID=" . $arrLoginInfo['pmCID'] . "'>PM Inbox " . $arrLoginInfo['pmCountDisp'] . "</a></li>\n\t\t\t\t<li><a href='" . $MAIN_ROOT . "members/signout.php'>Sign Out</a></li>\n\t\t\t</ul>\n\t\t</div>\n\t"; /* <div class='loggedInIMG'></div> <div class='menuLinks' style='padding-left: 8px'> <b>Account Name:</b><br> <a href='".$MAIN_ROOT."profile.php?mID=".$arrLoginInfo['memberID']."'>".$arrLoginInfo['memberUsername']."</a> <hr style='width: 135px; margin: 6px 1px; padding: 0px; border: dotted whitesmoke 1px'> <b>Rank:</b><br> ".$arrLoginInfo['memberRank']." <hr style='width: 135px; margin: 6px 1px; padding: 0px; border: dotted whitesmoke 1px'> <b>Member Options:</b><br> <b>·</b> <a href='".$MAIN_ROOT."members'>My Account</a><br> <b>·</b> <a href='".$MAIN_ROOT."members/console.php?cID=".$arrLoginInfo['pmCID']."'>PM Inbox ".$arrLoginInfo['pmCountDisp']."</a><br> <b>·</b> <a href='".$MAIN_ROOT."members/signout.php'>Sign Out</a><br> </div> "; */ return $dispLoggedinBox; }
public function createPre() { $member = new Member(); $member->setIsActive(false); $member->save(); return $member; }
function processForm() { $requiredFields = array("username", "first_name", "last_name", "email"); $missingFields = array(); $errorMessages = array(); $member = new Member(array("username" => isset($_POST["username"]) ? preg_replace("/[^ \\'\\-a-zA-Z0-9]/", "", $_POST["username"]) : "", "first_name" => isset($_POST["first_name"]) ? preg_replace("/[^ \\'\\-a-zA-Z0-9]/", "", $_POST["first_name"]) : "", "last_name" => isset($_POST["last_name"]) ? preg_replace("/[^ \\'\\-a-zA-Z0-9]/", "", $_POST["last_name"]) : "", "email" => isset($_POST["email"]) ? preg_replace("/[^ \\@\\.\\-\\_a-zA-Z0-9]/", "", $_POST["email"]) : "", "update_timestamp" => date("Y-m-d H:i:s"), "create_timestamp" => date("Y-m-d H:i:s"))); foreach ($requiredFields as $requiredField) { if (!$member->getValue($requiredField)) { $missingFields[] = $requiredField; } } if ($missingFields) { $errorMessages[] = '<p class="error">There were some missing fields in the form you submitted. Please complete the fields highlighted below and click Send Details to resend the form.</p>'; } if (Member::getByEmailAddress($member->getValue("email"))) { $errorMessages[] = '<p class="error">A member with that email address already exists in the database. Please choose another email address, or contact the webmaster to retrieve your password.</p>'; } if ($errorMessages) { var_dump($member); var_dump($requiredFields); var_dump($missingFields); displayForm($errorMessages, $missingFields, $member); } else { $member->insert(); displayThanks(); } }
public function view() { $dao = DAO::getDAO('MemberDAO'); if (isset($this->params[0]) && trim($this->params[0]) == 'remove') { // ex: requesting: /member/delete/2 $id = trim(sanitizeString($this->params[1])); $dao->removeById($id); } else { if (isset($this->params[0]) && trim($this->params[0]) == 'add') { $randNum = mt_rand(0, 99999); $newMember = new Member(array('firstName' => 'First', 'lastName' => 'LastName', 'username' => "test{$randNum}", 'email' => "test{$randNum}@example.com", 'createTime' => dbDateTime())); // #TODO: implement UserDao.create($newUser) instead. if ($dao->countAll() > 30) { // Demo mode: clean up if too many members $dao->execute("DELETE FROM members"); $dao->execute("vacuum"); } $dao->insertInto("firstName, lastName, username, email, createTime", $newMember->getFields()); } } $members = $dao->getAll(); $v = $this->smarty; $v->assign('title', 'Member List'); $v->assign('inc_content', v('members.html')); $v->assign('members', $users); $v->assign('totalMembers', $dao->countAll()); $this->display($v, v('index.html')); }
/** * If the REMOTE_USER is set and is in the Member table, log that member in. If * not, and Config::inst()->get('AuthRemoteUserExtension', 'auto_create_user') is set, add that * Member to the configured group, and log the new user in. Otherwise, do nothing. */ public function onAfterInit() { if (isset($_SERVER['REMOTE_USER'])) { $unique_identifier = $_SERVER['REMOTE_USER']; } elseif (isset($_SERVER['REDIRECT_REMOTE_USER'])) { $unique_identifier = $_SERVER['REDIRECT_REMOTE_USER']; } if (isset($unique_identifier)) { $unique_identifier_field = Member::config()->unique_identifier_field; $member = Member::get()->filter($unique_identifier_field, $unique_identifier)->first(); if ($member) { $member->logIn(); $this->owner->redirectBack(); } elseif (Config::inst()->get('AuthRemoteUserExtension', 'auto_create_user') && strlen(Config::inst()->get('AuthRemoteUserExtension', 'auto_user_group'))) { $group = Group::get()->filter('Title', Config::inst()->get('AuthRemoteUserExtension', 'auto_user_group'))->first(); if ($group) { $member = new Member(); $member->{$unique_identifier_field} = $unique_identifier; $member->write(); $member->Groups()->add($group); $member->logIn(); } } } }
/** * Test that a member can be authenticated via their temp id */ public function testAuthenticateByTempID() { $member = new Member(); $member->Email = '*****@*****.**'; $member->PasswordEncryption = "sha1"; $member->Password = "******"; $member->write(); // Make form $controller = new Security(); $form = new Form($controller, 'Form', new FieldList(), new FieldList()); // If the user has never logged in, then the tempid should be empty $tempID = $member->TempIDHash; $this->assertEmpty($tempID); // If the user logs in then they have a temp id $member->logIn(true); $tempID = $member->TempIDHash; $this->assertNotEmpty($tempID); // Test correct login $result = MemberAuthenticator::authenticate(array('tempid' => $tempID, 'Password' => 'mypassword'), $form); $this->assertNotEmpty($result); $this->assertEquals($result->ID, $member->ID); $this->assertEmpty($form->Message()); // Test incorrect login $form->clearMessage(); $result = MemberAuthenticator::authenticate(array('tempid' => $tempID, 'Password' => 'notmypassword'), $form); $this->assertEmpty($result); $this->assertEquals('The provided details don't seem to be correct. Please try again.', $form->Message()); $this->assertEquals('bad', $form->MessageType()); }
function processForm($values) { $values["password"] = $values["password1"]; $values["joinDate"] = date("Y-m-d"); $member = new Member($values); $member->insert(); }
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; }
/** * Performs the login, but will also create and sync the Member record on-the-fly, if not found. * * @param array $data * @param Form $form * @return bool|Member|void * @throws SS_HTTPResponse_Exception */ public static function authenticate($data, Form $form = null) { $service = Injector::inst()->get('LDAPService'); $result = $service->authenticate($data['Username'], $data['Password']); $success = $result['success'] === true; if (!$success) { if ($form) { $form->sessionMessage($result['message'], 'bad'); } return; } $data = $service->getUserByUsername($result['identity']); if (!$data) { if ($form) { $form->sessionMessage(_t('LDAPAuthenticator.PROBLEMFINDINGDATA', 'There was a problem retrieving your user data'), 'bad'); } return; } // LDAPMemberExtension::memberLoggedIn() will update any other AD attributes mapped to Member fields $member = Member::get()->filter('GUID', $data['objectguid'])->limit(1)->first(); if (!($member && $member->exists())) { $member = new Member(); $member->GUID = $data['objectguid']; $member->write(); } Session::clear('BackURL'); return $member; }
public function testSet() { $this->object->type = 3; $this->object->section = 0; $this->object->list = array(1, 2, 3, 4); $this->assertEquals('3 0 1 2 3 4', $this->object->set()); }
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'); }
protected function getMP() { $mp_url = new \URL($this->mp_url); $mp_data = array(); global $THEUSER; if ($THEUSER->has_postcode()) { // User is logged in and has a postcode, or not logged in with a cookied postcode. // (We don't allow the user to search for a postcode if they // already have one set in their prefs.) // this is for people who have e.g. an English postcode looking at the // Scottish homepage try { $constituencies = postcode_to_constituencies($THEUSER->postcode()); if (isset($constituencies[$this->cons_type])) { $constituency = $constituencies[$this->cons_type]; $MEMBER = new Member(array('constituency' => $constituency, 'house' => $this->mp_house)); } } catch (MemberException $e) { return $mp_data; } if (isset($MEMBER) && $MEMBER->valid) { $mp_data['name'] = $MEMBER->full_name(); $left_house = $MEMBER->left_house(); $mp_data['former'] = ''; if ($left_house[$this->mp_house]['date'] != '9999-12-31') { $mp_data['former'] = 'former'; } $mp_data['postcode'] = $THEUSER->postcode(); $mp_data['mp_url'] = $mp_url->generate(); $mp_data['change_url'] = $this->getPostCodeChangeURL(); } } return $mp_data; }
/** * Create member account from data array. * Data must contain unique identifier. * * @throws ValidationException * @param $data - map of member data * @return Member|boolean - new member (not saved to db), or false if there is an error. */ public function create($data) { $result = new ValidationResult(); if (!Checkout::member_creation_enabled()) { $result->error(_t("Checkout.MEMBERSHIPSNOTALLOWED", "Creating new memberships is not allowed")); throw new ValidationException($result); } $idfield = Config::inst()->get('Member', 'unique_identifier_field'); if (!isset($data[$idfield]) || empty($data[$idfield])) { $result->error(sprintf(_t("Checkout.IDFIELDNOTFOUND", "Required field not found: %s"), $idfield)); throw new ValidationException($result); } if (!isset($data['Password']) || empty($data['Password'])) { $result->error(_t("Checkout.PASSWORDREQUIRED", "A password is required")); throw new ValidationException($result); } $idval = $data[$idfield]; if (ShopMember::get_by_identifier($idval)) { $result->error(sprintf(_t("Checkout.MEMBEREXISTS", "A member already exists with the %s %s"), _t("Member." . $idfield, $idfield), $idval)); throw new ValidationException($result); } $member = new Member(Convert::raw2sql($data)); $validation = $member->validate(); if (!$validation->valid()) { //TODO need to handle i18n here? $result->error($validation->message()); } if (!$result->valid()) { throw new ValidationException($result); } return $member; }
public function accessModelMember_listMembers() { include_once "models/member.php"; $member = new Member(); $resultat = $member->list_member(); return $resultat; }
public function run() { $civilStatus = $_POST; $registrationDate = date('Y-m-d'); $datePayement = $civilStatus['date']; $id = $this->ramdomID(); $checkMember = $this->CheckMember($civilStatus['nom'], $civilStatus['prenom'], $civilStatus['date_de_naissance']); if(!$checkMember){ $this->message("Message","Cette personne est déjà inscrite","error"); return false; } $member = new Member($civilStatus); $member->setLibraryMemberData($id,$registrationDate,$datePayement); $sql = $this->database->addMember($member); if(!$sql){ $this->message("Message","DATABASE ERROR: ERREUR LORS DE L'INSCRIPTION","error"); return false; } $this->message("Message","Inscription validé","success"); return true; }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $user = new User(); $member = new Member(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['User'], $_POST['Member'])) { $user->attributes = $_POST['User']; $user->repeat_password = $_POST['User']['repeat_password']; $member->attributes = $_POST['Member']; $member->type_account = $_POST['Member']['type_account']; $user->scenario = 'register'; $member->scenario = 'register'; $user->level = 3; $valid = $user->validate(); $valid = $member->validate() && $valid; if ($valid) { $email = explode("@", $user->username); $member->name = $email[0]; $member->email = $user->username; $member->date_register = new CDbExpression('NOW()'); $member->code = strtoupper(substr(md5(uniqid(rand(), true)), 0, 5)); $getToken = rand(0, 99999); $getTime = date("H:i:s"); $user->token = md5($getToken . $getTime); $user->save(); $member->save(); MemberController::SendMail($member->email, $member->name, $member->code, $user->token); echo CJSON::encode(array('reg' => 'success', 'redirect' => $this->createUrl(array('land/userme')), 'email' => $member->email)); } else { echo CJSON::encode(array('reg' => 'failed', 'email' => str_replace('Username', 'Email', CHtml::error($user, 'username')), 'username' => str_replace('Name', 'Username', CHtml::error($member, 'name')), 'password' => CHtml::error($user, 'password'), 'repeat_password' => CHtml::error($user, 'repeat_password'), 'all' => Chtml::errorSummary(array($user, $member)))); } } }
public function run() { try { // 共通設定取得 $base_dir = dirname(__FILE__) . '/../'; $config = new Config($base_dir); $debug = $config->get_param('debug'); // レポート用オブジェクト $report = new Report($config); // メンバー一覧のオブジェクト $member = new Member($config); // 担当者マスターの差分を取得する。 $member->get_diff(); $this->mail_body .= $member->print_diff(); // プロジェクト一覧のオブジェクト $project = new Project($config); // プロジェクトマスターの差分を取得する。 $project->get_diff(); $this->mail_body .= $project->print_diff(); // 担当プロジェクトのオブジェクト $relation = new Relation($config); // 担当プロジェクトの差分を取得する。 $relation->set_member($member); $relation->set_project($project); $relation->get_diff(); $this->mail_body .= $relation->print_diff(); // BackLogIDが入力されているにもかかわらず担当者名が未入力のデータを検出する。 $this->mail_body .= $relation->validate(); // 複数コンテンツ障害の配信先 // 全社向け $multi_alert = new MultiAlert($config); $multi_alert->set_mode('all'); $multi_alert->set_project($project); $multi_alert->set_member($member); $multi_alert->get_diff(); $this->mail_body .= $multi_alert->print_diff(); // コンテンツ事業部向け $multi_alert = new MultiAlert($config); $multi_alert->set_mode('contents'); $multi_alert->set_project($project); $multi_alert->set_member($member); $multi_alert->get_diff(); $this->mail_body .= $multi_alert->print_diff(); // レポート $report->out($this->mail_body); // 古いファイルを削除 Util::remove_old_file($config->get_param('data_dir'), $config->get_param('keep_file_days')); } catch (Exception $e) { $member->remove(); $project->remove(); $relation->remove(); $multi_alert->remove(); if ($debug) { print $e->getMessage() . PHP_EOL; } else { $report->out($e->getMessage()); } } }
/** * @param Member $member * @return void */ public function ensureSpeakerProfile(Member $member) { $speaker = $member->getSpeakerProfile(); if (!$speaker) { $speaker = PresentationSpeaker::create(array('MemberID' => Member::currentUserID(), 'FirstName' => Member::currentUser()->FirstName, 'LastName' => Member::currentUser()->Surname)); $speaker->write(); } }
private function createUser() { // create user $u = new Member(); $u->write(); $s = new \Ntb\SocialIdentity(['UserID' => 'foo_user', 'AuthService' => 'facebook', 'MemberID' => $u->ID]); $s->write(); }
function validateUsername() { global $formObj, $mysqli; $checkMemberObj = new Member($mysqli); if ($checkMemberObj->select($_POST['newusername'])) { $formObj->errors[] = "There is already a member with that username."; } }
public function testShouldRejectExistingIfNotOwnedByMember() { $this->setExpectedException('ValidationException'); $this->member->logIn(); $this->address1->MemberID = 0; $this->address1->write(); $this->assertTrue($this->config->validateData(array('BillingAddressBookCheckoutComponent_BillingAddressID' => $this->address1->ID))); }
public function save(Member $member) { if ($member->getUser_id() !== null) { $this->update($member); } else { $this->insert($member); } }
/** * Replaces variables inside an email template according to {@link TEMPLATE_NOTE}. * * @param string $string * @param Member $member * @return string */ public static function get_parsed_string($string, $member, $page) { $variables = array('$SiteName' => SiteConfig::current_site_config()->Title, '$LoginLink' => Director::absoluteURL(singleton('Security')->Link('login')), '$ConfirmLink' => Director::absoluteURL(Controller::join_links($page->Link('confirm'), $member->ID, "?key={$member->ValidationKey}")), '$LostPasswordLink' => Director::absoluteURL(singleton('Security')->Link('lostpassword')), '$Member.Created' => $member->obj('Created')->Nice()); foreach (array('Name', 'FirstName', 'Surname', 'Email') as $field) { $variables["\$Member.{$field}"] = $member->{$field}; } return str_replace(array_keys($variables), array_values($variables), $string); }
static function createDefaultUserPermissions(Contact $user, Member $member, $remove_previous = true) { $role_id = $user->getUserType(); $permission_group_id = $user->getPermissionGroupId(); $member_id = $member->getId(); try { if ($remove_previous) { ContactMemberPermissions::delete("permission_group_id = '$permission_group_id' AND member_id = $member_id"); } $shtab_permissions = array(); $new_permissions = array(); $role_permissions = self::findAll(array('conditions' => 'role_id = '.$role_id)); foreach ($role_permissions as $role_perm) { if ($member->canContainObject($role_perm->getObjectTypeId())) { $cmp = new ContactMemberPermission(); $cmp->setPermissionGroupId($permission_group_id); $cmp->setMemberId($member_id); $cmp->setObjectTypeId($role_perm->getObjectTypeId()); $cmp->setCanDelete($role_perm->getCanDelete()); $cmp->setCanWrite($role_perm->getCanWrite()); $cmp->save(); $new_permissions[] = $cmp; $perm = new stdClass(); $perm->m = $member_id; $perm->r = 1; $perm->w = $role_perm->getCanWrite(); $perm->d = $role_perm->getCanDelete(); $perm->o = $role_perm->getObjectTypeId(); $shtab_permissions[] = $perm; } } if (count($shtab_permissions)) { $cdp = ContactDimensionPermissions::instance()->findOne(array('conditions' => "permission_group_id = '$permission_group_id' AND dimension_id = ".$member->getDimensionId())); if (!$cdp instanceof ContactDimensionPermission) { $cdp = new ContactDimensionPermission(); $cdp->setPermissionGroupId($permission_group_id); $cdp->setContactDimensionId($member->getDimensionId()); $cdp->setPermissionType('check'); $cdp->save(); } else { if ($cdp->getPermissionType() == 'deny all') { $cdp->setPermissionType('check'); $cdp->save(); } } $stCtrl = new SharingTableController(); $stCtrl->afterPermissionChanged($permission_group_id, $shtab_permissions); } return $new_permissions; } catch (Exception $e) { throw $e; } }