public function manageSubscriptions($vars, $enable) { $temp = new Member(); $member = $temp->findByUsername($vars['username']); $memberId = $member->id; // update subscription (keep old assignments through negating if disabling) // members_tags_subscribed // members_threads_subscribed if ($enable) { $newSubscriberId = $memberId; $oldSubscriberId = -1 * $memberId; } else { $newSubscriberId = -1 * $memberId; $oldSubscriberId = $memberId; } $query = "\r\n UPDATE\r\n members_tags_subscribed\r\n SET\r\n IdSubscriber = " . $newSubscriberId . "\r\n WHERE\r\n IdSubscriber = " . $oldSubscriberId; $this->dao->query($query); $query = "\r\n UPDATE\r\n members_threads_subscribed\r\n SET\r\n IdSubscriber = " . $newSubscriberId . "\r\n WHERE\r\n IdSubscriber = " . $oldSubscriberId; $this->dao->query($query); $query = "\r\n UPDATE\r\n membersgroups\r\n SET\r\n IdMember = " . $newSubscriberId . "\r\n WHERE\r\n IdMember = " . $oldSubscriberId . "\r\n AND IacceptMassMailFromThisGroup = 'Yes'\r\n "; $this->dao->query($query); }
/** * confirmProcess: check the given key and username */ public function confirmSignup($username, $key) { // The TB WAY: $userId = APP_User::userId($username); if (!$userId) { return $error = 'NoSuchMember'; } $keyDB = APP_User::getSetting($userId, 'regkey'); if (!$keyDB) { return $error = 'NoStoredKey'; } if ($keyDB->value != $key) { return $error = 'WrongKey'; } $memberEntity = new Member(); $member = $memberEntity->findByUsername($username); $query = ' SELECT members.Status AS Status FROM members WHERE members.id = \'' . $member->id . '\' '; $s = $this->dao->query($query); if ($s->numRows() != 1) { return $error = 'NoMember'; } $Status = $s->fetch(PDB::FETCH_OBJ)->Status; if ($Status != 'MailToConfirm') { return $error = 'Status' . $Status; } APP_User::activate($userId); $query = "\r\nUPDATE members\r\nSET Status = 'Active'\r\nWHERE id=" . $member->id; // The email is confirmed > make the status Active $s = $this->dao->query($query); if (!$s) { // TODO: always integrate this check? throw new PException('Could not determine if email is in use!'); } $View = new SignupView($this); define('DOMAIN_MESSAGE_ID', 'bewelcome.org'); // TODO: config $View->sendActivationMail($member); return false; // no error }
public function composeMessage() { $username = $this->route_vars['username']; $request = $this->request_vars[2]; $memberEntity = new Member(); $member = $memberEntity->findByUsername($username); if ($member) { switch ($request) { case 'local': $this->model->localGreetingSent($member); break; case 'global': $this->model->globalGreetingSent($member); break; } $this->redirectAbsolute('/messages/compose/' . $username); } else { $this->redirectAbsolute('/members/' . $username); } }
public function remove() { $this->checkRights('Flags'); $flagId = $this->route_vars['id']; $username = $this->route_vars['username']; // Check if flag and user exist and if flag is assigned to user at all; redirect if not $flag = new Flag($flagId); if (!$flag) { $this->redirectAbsolute($this->router->url('admin_flags_overview')); } $temp = new Member(); $member = $temp->findByUsername($username); if (!$member) { $this->redirectAbsolute($this->router->url('admin_flags_overview')); } $assigned = $flag->getFlagForMember($member); if (!$assigned) { $this->redirectAbsolute($this->router->url('admin_flags_overview')); } $page = new AdminFlagsRemovePage(); $flags = $this->model->getFlags(true); $page->flags = $flags; $redirectTo = ''; if (isset($_SERVER['HTTP_REFERER'])) { if (strpos($_SERVER['HTTP_REFERER'], "/list/members") !== false) { $redirectTo = 'members'; } if (strpos($_SERVER['HTTP_REFERER'], "/list/member/") !== false) { $redirectTo = 'member'; } if (strpos($_SERVER['HTTP_REFERER'], "/list/Flags") !== false) { $redirectTo = 'Flags'; } if (strpos($_SERVER['HTTP_REFERER'], "/list/flag/") !== false) { $redirectTo = 'flag'; } } $vars = array('username' => $username, 'flag' => $flagId, 'level' => $assigned->Level, 'scope' => $assigned->Scope, 'comment' => $assigned->Comment, 'redirect' => $redirectTo); $page->vars = $vars; return $page; }
public function remove() { $this->checkRights('Rights'); $rightId = $this->route_vars['id']; $username = $this->route_vars['username']; // Check if right and user exist and if right is assigned to user at all; redirect if not $right = new Right($rightId); if (!$right) { $this->redirectAbsolute($this->router->url('admin_rights_overview')); } $temp = new Member(); $member = $temp->findByUsername($username); if (!$member) { $this->redirectAbsolute($this->router->url('admin_rights_overview')); } $assigned = $right->getRightForMember($member); if (!$assigned) { $this->redirectAbsolute($this->router->url('admin_rights_overview')); } $page = new AdminRightsRemovePage(); $rights = $this->model->getRights(true); $page->rights = $rights; $redirectTo = ''; if (isset($_SERVER['HTTP_REFERER'])) { if (strpos($_SERVER['HTTP_REFERER'], "/list/members") !== false) { $redirectTo = 'members'; } if (strpos($_SERVER['HTTP_REFERER'], "/list/member/") !== false) { $redirectTo = 'member'; } if (strpos($_SERVER['HTTP_REFERER'], "/list/rights") !== false) { $redirectTo = 'rights'; } if (strpos($_SERVER['HTTP_REFERER'], "/list/right/") !== false) { $redirectTo = 'right'; } } $vars = array('username' => $username, 'right' => $rightId, 'level' => $assigned->Level, 'scope' => $assigned->Scope, 'comment' => $assigned->Comment, 'redirect' => $redirectTo); $page->vars = $vars; return $page; }
/** * Removes a right from a member * Keeps the history by setting the level to 0 and updating the comment * with a note when the removal happened and by whom * * @param $vars * @return bool */ public function remove($vars) { $temp = new Member(); $member = $temp->findByUsername($vars['username']); $loggedInMember = $this->getLoggedInMember(); $comment = $vars['comment'] . "\n\nRemoved by " . $loggedInMember->Username . " on " . date('Y-m-d'); $query = "\n UPDATE\n rightsvolunteers\n SET\n Level = '0',\n Scope = '" . $this->dao->escape($vars['scope']) . "',\n Comment = '" . $this->dao->escape($comment) . "',\n Updated = NOW()\n WHERE\n IdMember = " . $member->id . "\n AND IdRight = " . $this->dao->escape($vars['rightid']) . "\n "; $this->dao->query($query); return true; }
/** * Removes a flag from a member * Keeps the history by setting the level to 0 and updating the comment * with a note when the removal happened and by whom * * @param $vars * @return bool */ public function remove($vars) { $temp = new Member(); $member = $temp->findByUsername($vars['username']); $loggedInMember = $this->getLoggedInMember(); $comment = $vars['comment'] . "\n\nRemoved by " . $loggedInMember->Username . " on " . date('Y-m-d'); $query = "\n UPDATE\n flagsmembers fm\n SET\n fm.Level = '0',\n fm.Scope = '" . $this->dao->escape($vars['scope']) . "',\n fm.Comment = '" . $this->dao->escape($comment) . "',\n fm.Updated = NOW()\n WHERE\n fm.IdMember = " . $member->id . "\n AND fm.IdFlag = " . $this->dao->escape($vars['flagid']) . "\n "; $this->dao->query($query); return true; }