public function build($runData) { $query = $runData->getParameterList()->getParameterValue("query"); // split the query by ' ' $q = explode(' ', $query); // escape regex syntax now for ($i = 0; $i < count($q); $i++) { $q[$i] = preg_quote($q[$i], '/'); } $c = new Criteria(); foreach ($q as $q1) { $c->add("nick_name", $q1, "~*"); } $c->setLimit(101); $users = DB_OzoneUserPeer::instance()->select($c); $runData->contextAdd("users", $users); // also prepare an array of user_id and nickname $runData->ajaxResponseAdd("count", count($users)); if (count($users) == 101) { $runData->ajaxResponseAdd("over100", true); } else { $runData->ajaxResponseAdd("over100", false); } $userIds = array(); $userNames = array(); foreach ($users as $u) { $userIds[] = $u->getUserId(); $userNames[$u->getUserId()] = htmlspecialchars($u->getNickName()); } $runData->ajaxResponseAdd("userIds", $userIds); $runData->ajaxResponseAdd("userNames", $userNames); }
public function getEditedUser() { if ($this->getEditedUserId() == 0) { return null; } return DB_OzoneUserPeer::instance()->selectByPrimaryKey($this->getEditedUserId()); }
public function build($runData) { $pl = $runData->getParameterList(); $userId = $pl->getParameterValue("user_id"); $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); $avatarUri = '/common--images/avatars/' . floor($userId / 1000) . '/' . $userId . '/a48.png'; $runData->contextAdd("user", $user); $runData->contextAdd("avatarUri", $avatarUri); // find the possible role in this site $site = $runData->getTemp("site"); $siteId = $site->getSiteId(); $c = new Criteria(); $c->add("user_id", $userId); $c->add("site_id", $siteId); $mem = DB_MemberPeer::instance()->selectOne($c); if ($mem != null) { $runData->contextAdd("member", $mem); // also check for other roles: admin & moderator if (DB_AdminPeer::instance()->selectOne($c) != null) { $runData->contextAdd("role", "admin"); } elseif (DB_AdminPeer::instance()->selectOne($c) != null) { $runData->contextAdd("role", "moderator"); } } $runData->contextAdd("uu", $runData->getUser()); $runData->contextAdd('karmaLevel', $user->getKarmaLevel()); }
public function build($runData) { $site = $runData->getTemp("site"); $pl = $runData->getParameterList(); $userId = $pl->getParameterValue("userId"); $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); if (!$user) { throw new ProcessException(_("Invalid user.")); } $c = new Criteria(); $c->add("user_id", $userId); $c->add("site_id", $site->getSiteId()); $mem = DB_MemberPeer::instance()->selectOne($c); if (!$mem) { throw new ProcessException(_("The user is not a Member of this Wiki.")); } $link = DB_MembershipLinkPeer::instance()->selectByUserId($site->getSiteId(), $userId); if (!$link) { $runData->contextAdd("noData", true); } else { $chain = array(); $chain[] = array('user' => $user, 'link' => $link); if ($link->getByUserId()) { do { // get "parent" // get link for the user $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($link->getByUserId()); $link = DB_MembershipLinkPeer::instance()->selectByUserId($site->getSiteId(), $user->getUserId()); $chain[] = array('user' => $user, 'link' => $link); } while ($user && $link && $link->getByUserId()); } $runData->contextAdd("chain", array_reverse($chain)); } }
public function build($runData) { // a hack to get unix user name $qs = $_SERVER['QUERY_STRING']; $splited = explode("/", $qs); // WARNING!!! this is a hack! not a proper use of ParameterList object! $userUnixName = $splited[3]; if ($userUnixName == null || $userUnixName == '') { throw new ProcessException(_("No user specified."), "no_user"); } // get user $c = new Criteria(); $c->add("unix_name", $userUnixName); $user = DB_OzoneUserPeer::instance()->selectOne($c); if ($user == null) { throw new ProcessException(_("User does not exist.")); } $runData->contextAdd("user", $user); $runData->contextAdd("userUnixName", $userUnixName); $runData->contextAdd("userId", $user->getUserId()); $this->user = $user; // get the referring page too in case one wants to // flag an abusive user. than we set site_id of the flag // to the site which the user comes from if // this is a wikidot site. $referer = $_SERVER['HTTP_REFERER']; if ($referer) { $referer = parse_url($referer); $referer = $referer['host']; } $runData->contextAdd("referer", $referer); $runData->contextAdd("uu", $runData->getUser()); }
public function deleteBlockEvent($runData) { $pl = $runData->getParameterList(); $site = $runData->getTemp("site"); $userId = $pl->getParameterValue("userId"); $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); if ($user == null) { $runData->ajaxResponseAdd("status", "no_user"); $runData->ajaxResponseAdd("message", _("No such user.")); return; } $c = new Criteria(); $c->add("site_id", $site->getSiteId()); $c->add("user_id", $userId); $block = DB_UserBlockPeer::instance()->selectOne($c); if ($block == null) { $runData->ajaxResponseAdd("status", "no_user"); $runData->ajaxResponseAdd("message", _("No such block.")); return; } // ok, remove $db = Database::connection(); $db->begin(); DB_UserBlockPeer::instance()->delete($c); $db->commit(); }
public function build($runData) { $site = $runData->getTemp("site"); // get $q = "SELECT target_user_id, count(*) AS rank " . "FROM user_abuse_flag " . "WHERE site_id='" . $site->getSiteId() . "' " . "AND site_valid = TRUE GROUP BY target_user_id ORDER BY rank DESC, target_user_id"; $db = Database::connection(); $res = $db->query($q); $all = $res->fetchAll(); $r2 = array(); if ($all) { foreach ($all as &$r) { // get user $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($r['target_user_id']); if ($user) { $r['user'] = $user; // check if member $c = new Criteria(); $c->add("site_id", $site->getSiteId()); $c->add("user_id", $user->getUserId()); $mem = DB_MemberPeer::instance()->selectOne($c); if ($mem) { $r['member'] = $mem; } $r2[] = $r; } } } $runData->contextAdd("reps", $r2); }
public function build($runData) { $pl = $runData->getParameterList(); $targetUserId = $pl->getParameterValue("targetUserId"); if ($targetUserId == null || $targetUserId == '' || !is_numeric($targetUserId)) { throw new ProcessException(_("Error processing the request."), "no_target_user"); } $targetUser = DB_OzoneUserPeer::instance()->selectByPrimaryKey($targetUserId); if ($targetUser == null) { throw new ProcessException(_("Error processing the request."), "no_target_user"); } $site = $runData->getTemp("site"); $user = $runData->getUser(); if ($targetUser->getUserId() === $user->getUserId()) { throw new ProcessException(_("Sorry, event with the extreme level of self-criticism you can not flag yourself as an abusive user ;-)"), "not_yourself"); } // check if flagged already $c = new Criteria(); $c->add("user_id", $user->getUserId()); $c->add("target_user_id", $targetUser->getUserId()); $flag = DB_UserAbuseFlagPeer::instance()->selectOne($c); if ($flag) { $runData->contextAdd("flagged", true); } $runData->contextAdd("user", $targetUser); }
public function flagUserEvent($runData) { $pl = $runData->getParameterList(); $toFlag = $pl->getParameterValue("flag"); $targetUserId = $pl->getParameterValue("targetUserId"); if ($targetUserId == null || $targetUserId == '' || !is_numeric($targetUserId)) { throw new ProcessException(_("Error processing the request."), "no_target_user"); } $targetUser = DB_OzoneUserPeer::instance()->selectByPrimaryKey($targetUserId); if ($targetUser == null) { throw new ProcessException(_("Error processing the request."), "no_target_user"); } $site = $runData->getTemp("site"); $user = $runData->getUser(); $db = Database::connection(); $db->begin(); if ($toFlag) { // flag the user // check if not flagged already $c = new Criteria(); $c->add("user_id", $user->getUserId()); $c->add("target_user_id", $targetUser->getUserId()); $flag = DB_UserAbuseFlagPeer::instance()->selectOne($c); if ($flag == null) { $siteId = $site->getSiteId(); // get the host if any $host = $pl->getParameterValue("host"); if ($host) { if (preg_match("/^([a-zA-Z0-9\\-]+)\\." . GlobalProperties::$URL_DOMAIN_PREG . "\$/", $host, $matches) == 1) { $siteUnixName = $matches[1]; $c = new Criteria(); $c->add("unix_name", $siteUnixName); $siter = DB_SitePeer::instance()->selectOne($c); } else { $c = new Criteria(); $c->add("custom_domain", $host); $siter = DB_SitePeer::instance()->selectOne($c); } if ($siter !== null) { $siteId = $siter->getSiteId(); } } $flag = new DB_UserAbuseFlag(); $flag->setUserId($user->getUserId()); $flag->setSiteId($siteId); $flag->setTargetUserId($targetUser->getUserId()); $flag->save(); EventLogger::instance()->logFlagUser($targetUser); } } else { // unflag $c = new Criteria(); $c->add("user_id", $user->getUserId()); $c->add("target_user_id", $targetUser->getUserId()); DB_UserAbuseFlagPeer::instance()->delete($c); EventLogger::instance()->logUnflagUser($targetUser); } $db->commit(); }
public static function getUserByKey($key) { $user = null; $api_key = self::instance()->selectByPrimaryKey($key); if ($api_key) { $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($api_key->getUserId()); } return $user; }
public function build($runData) { $pl = $runData->getParameterList(); $o = DB_OzoneUserPeer::instance()->selectByPrimaryKey(1); $u = array("nick_name" => $o->getNickName()); $runData->contextAdd("user", $u); if ($key = $pl->getParameterValue("key")) { $runData->contextAdd("key", $key); } }
public function build($runData) { $pl = $runData->getParameterList(); $targetUserId = $pl->getParameterValue("userId"); $targetUser = DB_OzoneUserPeer::instance()->selectByPrimaryKey($targetUserId); if ($targetUser == null) { throw new ProcessException(_("User can not be found."), "no_user"); } // check how many contacts so far... $runData->contextAdd("user", $targetUser); }
public function build($runData) { $pl = $runData->getParameterList(); $userId = $pl->getParameterValue("userId"); $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); $runData->contextAdd("user", $user); $site = $runData->getTemp("site"); if ($site->getUnixName() !== 'www') { $runData->contextAdd("site", $site); } }
public function loginEvent($runData) { $pl = $runData->getParameterList(); $uname = $pl->getParameterValue("name"); $upass = $pl->getParameterValue("password"); $userId = $pl->getParameterValue("welcome"); $keepLogged = $pl->getParameterValue("keepLogged"); $bindIP = $pl->getParameterValue("bindIP"); // decrypt! woooohhooooo!!!!!!!! $seed = $runData->sessionGet("login_seed"); if ($seed == null) { throw new ProcessException(_("You have been inactive quite long while trying to log in and your session data have expired. Please try to click 'log in' once again."), "no_seed"); } $uname = CryptUtils::rsaDecrypt($uname); $upass = CryptUtils::rsaDecrypt($upass); // remove seed if (preg_match('/^' . $seed . '/', $uname) == 0 || preg_match('/^' . $seed . '/', $upass) == 0) { EventLogger::instance()->logFailedLogin($uname); throw new ProcessException(_("The user and password do not match."), "login_invalid"); } $uname = preg_replace('/^' . $seed . '/', '', $uname); $upass = preg_replace('/^' . $seed . '/', '', $upass); if ($userId && is_numeric($userId) && $userId > 0) { $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); if ($user && $user->getPassword() !== md5($upass)) { $user = null; } } else { $user = SecurityManager::authenticateUser($uname, $upass); } if ($user == null) { EventLogger::instance()->logFailedLogin($uname); throw new ProcessException(_("The login and password do not match."), "login_invalid"); } $runData->resetSession(); $session = $runData->getSession(); $session->setUserId($user->getUserId()); // set other parameters $session->setStarted(new ODate()); $session->setLastAccessed(new ODate()); $user->setLastLogin(new ODate()); $user->save(); if ($keepLogged) { $session->setInfinite(true); } if ($bindIP) { $session->setCheckIp(true); } setcookie("welcome", $user->getUserId(), time() + 10000000, "/", GlobalProperties::$SESSION_COOKIE_DOMAIN); // log event EventLogger::instance()->logLogin(); }
public function clearUserFlagsEvent($runData) { $site = $runData->getTemp("site"); $pl = $runData->getParameterList(); $targetUserId = $pl->getParameterValue("userId"); $targetUser = DB_OzoneUserPeer::instance()->selectByPrimaryKey($targetUserId); if ($targetUser == null) { throw new ProcessException(_("Error processing the request. No user found."), "no_user"); } $q = "UPDATE user_abuse_flag SET site_valid=FALSE WHERE " . "site_id='" . $site->getSiteId() . "' " . "AND target_user_id='" . $targetUser->getUserId() . "' " . "AND site_valid=TRUE"; $db = Database::connection(); $db->query($q); }
public function build($runData) { $site = $runData->getTemp("site"); $runData->contextAdd("site", $site); $runData->contextAdd("settings", $site->getSettings()); $runData->contextAdd("superSettings", $site->getSuperSettings()); // get the viewers $c = new Criteria(); $q = "SELECT ozone_user.* FROM ozone_user, site_viewer WHERE site_viewer.site_id='" . $site->getSiteId() . "' " . "AND ozone_user.user_id = site_viewer.user_id ORDER BY ozone_user.nick_name"; $c->setExplicitQuery($q); $viewers = DB_OzoneUserPeer::instance()->select($c); $runData->contextAdd("viewers", $viewers); $runData->contextAdd("settings", $site->getSettings()); }
public function saveEvent($runData) { $pl = $runData->getParameterList(); $nick_name = $pl->getParameterValue("nick_name"); $password = $pl->getParameterValue("password1"); $u = DB_OzoneUserPeer::instance()->selectByPrimaryKey(1); $u->setName($nick_name); $u->setEmail($nick_name); $u->setNickName($nick_name); $u->setUnixName(WDStringUtils::toUnixName($nick_name)); $u->setPassword(md5($password)); $u->setSuperAdmin(true); $u->save(); }
public function run() { $ds = new WDDigestSender(); // select users... all at once??? fix this! $c = new Criteria(); $c->add("user_id", 0, ">"); $c->addOrderAscending("user_id"); $users = DB_OzoneUserPeer::instance()->select($c); foreach ($users as $user) { try { $ds->handleUser($user); } catch (Exception $e) { } } }
public function build($runData) { $users = array(); $c = new Criteria(); $c->add('user_id', '1', '>'); foreach (DB_OzoneUserPeer::instance()->select($c) as $user) { $admin = WDPermissionManager::hasPermission('manage_site', $user, 1) ? 1 : 0; $mod = WDPermissionManager::hasPermission('moderate_site', $user, 1) ? 1 : 0; $users[] = array("nick_name" => $user->getNickName(), "user_id" => $user->getUserId(), "mod" => $mod, "admin" => $admin); } for ($i = 0; $i < 5; $i++) { $users[] = array("user_id" => "new{$i}"); } $runData->contextAdd("users", $users); }
public function getUser() { if (is_array($this->prefetched)) { if (in_array('ozone_user', $this->prefetched)) { if (in_array('ozone_user', $this->prefetchedObjects)) { return $this->prefetchedObjects['ozone_user']; } else { $obj = new DB_OzoneUser($this->sourceRow); $obj->setNew(false); $this->prefetchedObjects['ozone_user'] = $obj; return $obj; } } } return DB_OzoneUserPeer::instance()->selectByPrimaryKey($this->getUserId()); }
/** * * Renders a token into text matching the requested format. * * @access public * * @param array $options The "options" portion of the token (second * element). * * @return string The text rendered from the token options. * */ function token($options) { $userName = $options['userName']; $unixName = WDStringUtils::toUnixName($userName); $c = new Criteria(); $c->add("unix_name", $unixName); $user = DB_OzoneUserPeer::instance()->selectOne($c); if ($user == null) { return '<span class="error-inline">' . sprintf(_('User <em>%s</em> can not be found.'), $userName) . '</span>'; } else { $o = array(); if ($options['image']) { $o['image'] = true; } return WDRenderUtils::renderUser($user, $o); } }
public function sendEvent($runData) { $pl = $runData->getParameterList(); $source = $pl->getParameterValue("source"); $subject = $pl->getParameterValue("subject"); if ($subject == null || $subject === '') { $subject = "(No subject)"; } $db = Database::connection(); $db->begin(); $toUserId = $pl->getParameterValue("to_user_id"); // TODO: validation. also check if user exists $toUser = DB_OzoneUserPeer::instance()->selectByPrimaryKey($toUserId); if ($toUser == null) { $message = _("The recipient does not exist."); throw new ProcessException($message, "no_recipient"); } // check if allowed $fromUser = $runData->getUser(); WDPermissionManager::instance()->hasPmPermission($fromUser, $toUser); // compile content $wt = new WikiTransformation(); $wt->setMode('pm'); $body = $wt->processSource($source); $message = new DB_PrivateMessage(); $message->setDate(new ODate()); $message->setFromUserId($runData->getUserId()); $message->setToUserId($toUserId); $message->setSubject($subject); $message->setBody($body); $message->setFlag(0); // 0 for inbox $message->save(); NotificationMaker::instance()->privateMessageNotification($message); //also make a copy for "sent" folder $message->setNew(true); $message->setMessageId(null); $message->setFlag(1); //1 for sent $message->save(); $db->commit(); }
public function build($runData) { $pl = $runData->getParameterList(); $userId = $pl->getParameterValue("user_id"); $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); $runData->contextAdd("user", $user); $avatarUri = '/common--images/avatars/' . floor($userId / 1000) . '/' . $userId . '/a48.png'; $runData->contextAdd("avatarUri", $avatarUri); // get profile page to include $pageName = "profile:" . $user->getUnixName(); $c = new Criteria(); $c->add("unix_name", "profiles"); $site = DB_SitePeer::instance()->selectOne($c); $page = DB_PagePeer::instance()->selectByName($site->getSiteId(), $pageName); if ($page !== null) { $compiled = $page->getCompiled(); $runData->contextAdd("profileContent", $compiled); $runData->contextAdd("wikiPage", $page); } $runData->contextAdd('karmaLevel', $user->getKarmaLevel()); }
public function build($runData) { $site = $runData->getTemp("site"); $user = $runData->getUser(); $runData->contextAdd("site", $site); $c = new Criteria(); $c->add("user_id", $user->getUserId()); $c->add("site_id", $site->getSiteId()); $c->add("founder", true); $rel = DB_AdminPeer::instance()->selectOne($c); if ($rel) { $runData->contextAdd('allowed', true); } else { $c = new Criteria(); $c->add("site_id", $site->getSiteId()); $c->add("founder", true); $f = DB_AdminPeer::instance()->selectOne($c); $founder = DB_OzoneUserPeer::instance()->selectByPrimaryKey($f->getUserId()); $runData->contextAdd('founder', $founder); } }
public function build($runData) { $pl = $runData->getParameterList(); $backUrl = $pl->getParameterValue('backUrl'); $runData->contextAdd('backUrl', $backUrl); // check if reset remebered user $pl = $runData->getParameterList(); if ($pl->getParameterValue("reset")) { setcookie('welcome', 'dummy', time() - 10000000, "/", GlobalProperties::$SESSION_COOKIE_DOMAIN); } else { // check if a recognized user $userId = $_COOKIE['welcome']; if ($userId && is_numeric($userId) && $userId > 0) { $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); } if ($user == null) { setcookie('welcome', 'dummy', time() - 10000000, "/", GlobalProperties::$SESSION_COOKIE_DOMAIN); } } $runData->contextAdd("user", $user); }
public function build($runData) { $site = $runData->getTemp('site'); // check the connection type if (!$_SERVER['HTTPS'] && $site->getSettings()->getSslMode() && !$runData->getParameterList()->getParameterValue('disableSSL')) { // not enabled, redirect to http: $site = $runData->getTemp("site"); header("HTTP/1.1 301 Moved Permanently"); header("Location: " . 'https://' . $site->getDomain() . $_SERVER['REQUEST_URI']); exit; } // check if not already logged in... $user = $runData->getUser(); if ($user) { throw new ProcessException(_("You already are logged in."), "already_logged"); } // check if reset remebered user $pl = $runData->getParameterList(); if ($pl->getParameterValue("reset")) { setcookie('welcome', 'dummy', time() - 10000000, "/", GlobalProperties::$SESSION_COOKIE_DOMAIN); } else { // check if a recognized user $userId = $_COOKIE['welcome']; if ($userId && is_numeric($userId) && $userId > 0) { $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); } if ($user == null) { setcookie('welcome', 'dummy', time() - 10000000, "/", GlobalProperties::$SESSION_COOKIE_DOMAIN); } } $originalUrl = $pl->getParameterValue('origUrl'); if ($originalUrl) { $originalUrlForce = $pl->getParameterValue('origUrlForce'); if ($originalUrlForce) { $runData->sessionAdd('loginOriginalUrlForce', true); } $runData->sessionAdd('loginOriginalUrl', $originalUrl); } $runData->contextAdd("user", $user); }
public function build($runData) { $pl = $runData->getParameterList(); $user = $runData->getUser(); $hash = $pl->getParameterValue("hash"); // get the invitation entry (if any) $c = new Criteria(); $c->add("hash", $hash); $c->add("accepted", false); $inv = DB_EmailInvitationPeer::instance()->selectOne($c); $runData->contextAdd("user", $user); if (!$inv) { //sorry, no invitation return; } $site = DB_SitePeer::instance()->selectByPrimaryKey($inv->getSiteId()); $sender = DB_OzoneUserPeer::instance()->selectByPrimaryKey($inv->getUserId()); $runData->contextAdd("sender", $sender); $runData->contextAdd("site", $site); $runData->contextAdd("invitation", $inv); $runData->contextAdd("hash", $hash); }
public function build($runData) { $site = $runData->getTemp('site'); $pl = $runData->getParameterList(); $listId = $pl->getParameterValue("listId"); $db = Database::connection(); $db->begin(); // get the list $c = new Criteria(); $c->add('site_id', $site->getSiteId()); $c->add('list_id', $listId); $list = DB_EmailListPeer::instance()->selectOne($c); if (!$list) { throw new ProcessException('The requested list cannot be found.'); } // get all subscribers $q = "SELECT ozone_user.* FROM email_list_subscriber, ozone_user WHERE " . "email_list_subscriber.list_id = '{$list->getListId()}' AND email_list_subscriber.user_id = ozone_user.user_id " . "ORDER BY ozone_user.nick_name"; $c = new Criteria(); $c->setExplicitQuery($q); $users = DB_OzoneUserPeer::instance()->select($c); $runData->contextAdd('users', $users); $runData->contextAdd('list', $list); $runData->contextAdd('site', $site); }
public function build($runData) { $user = $runData->getUser(); $pl = $runData->getParameterList(); $replyMessageId = $pl->getParameterValue("replyMessageId", "AMODULE"); $continueMessageId = $pl->getParameterValue("continueMessageId", "AMODULE"); $toUserId = $pl->getParameterValue("toUserId"); if ($replyMessageId) { $message = DB_PrivateMessagePeer::instance()->selectByPrimaryKey($replyMessageId); if ($message == null || $message->getToUserId() != $user->getUserId()) { throw new ProcessException(_("Error getting orginal message."), "no_reply_message"); } $runData->ajaxResponseAdd("toUserId", $message->getFromUserId()); $runData->ajaxResponseAdd("toUserName", $message->getFromUser()->getNickName()); $subject = $message->getSubject(); $subject = preg_replace("/^Re: /", '', $subject); $runData->contextAdd("subject", "Re: " . $subject); } elseif ($continueMessageId) { $message = DB_PrivateMessagePeer::instance()->selectByPrimaryKey($continueMessageId); if ($message == null || $message->getFromUserId() != $user->getUserId()) { throw new ProcessException(_("Error getting orginal message."), "no_reply_message"); } if ($message->getToUserId() !== null) { $runData->ajaxResponseAdd("toUserId", $message->getToUserId()); $runData->ajaxResponseAdd("toUserName", $message->getToUser()->getNickName()); } $runData->contextAdd("body", $message->getBody()); $runData->contextAdd("subject", $message->getSubject()); } elseif ($toUserId !== null) { $toUser = DB_OzoneUserPeer::instance()->selectByPrimaryKey($toUserId); $runData->ajaxResponseAdd("toUserId", $toUser->getUserId()); $runData->ajaxResponseAdd("toUserName", $toUser->getNickName()); } $user = $runData->getUser(); $runData->contextAdd("user", $user); }
public function acceptApplicationEvent($runData) { $pl = $runData->getParameterList(); $userId = $pl->getParameterValue("user_id"); $site = $runData->getTemp("site"); $siteId = $site->getSiteId(); $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); if ($user == null) { throw new ProcessException("Error"); } $type = $pl->getParameterValue("type"); $text = $pl->getParameterValue("text"); if ($type !== 'accept' && $type !== 'decline') { throw new ProcessException("Invalid action", "invalid_action"); } $c = new Criteria(); $c->add("user_id", $userId); $c->add("site_id", $siteId); $db = Database::connection(); $db->begin(); $application = DB_MemberApplicationPeer::instance()->selectOne($c); if ($application == null) { throw new ProcessException(_("This application does not exist (anymore)."), "no_application"); } if ($type == "accept") { // add to members $mem = new DB_Member(); $mem->setUserId($userId); $mem->setSiteId($siteId); $mem->setDateJoined(new ODate()); $mem->save(); $ml = new DB_MembershipLink(); $ml->setUserId($userId); $ml->setSiteId($site->getSiteId()); $ml->setDate(new ODate()); $ml->setType('APPLICATION_ACCEPTED'); $ml->setByUserId($runData->getUser()->getUserId()); $ml->save(); NotificationMaker::instance()->membershipApplicationAccepted($site, $user); } else { NotificationMaker::instance()->membershipApplicationDeclined($site, $user); } $application->setReply($text); if ($type == "accept") { $application->setStatus("accepted"); } else { $application->setStatus("declined"); } $application->save(); $db->commit(); }