public function build($runData) { $us = DB_UserSettingsPeer::instance()->selectByPrimaryKey($runData->getUserId()); if ($us->getReceiveInvitations()) { $runData->contextAdd("receiveInvitations", true); } }
public function inviteMemberEvent($runData) { $site = $runData->getTemp("site"); $pl = $runData->getParameterList(); $userId = $pl->getParameterValue("user_id"); $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId); if ($user == null) { throw new ProcessException("Error"); } try { WDPermissionManager::instance()->hasPermission("become_member", $user, $site); } catch (Exception $e) { throw new ProcessException(_("It seems that this user is on the blacklist")); } $c = new Criteria(); $c->add("user_id", $userId); $c->add("site_id", $site->getSiteId()); $mem = DB_MemberPeer::instance()->select($c); if (count($mem) > 0) { throw new ProcessException(_("This user already is a member of this site."), "already_member"); } $invs = DB_MemberInvitationPeer::instance()->select($c); if (count($invs) > 0) { throw new ProcessException(_("This user has been already invited to this site."), "already_invited"); } // check if user WISHES to receive invitations $set = DB_UserSettingsPeer::instance()->selectByPrimaryKey($user->getUserId()); if (!$set->getReceiveInvitations()) { throw new ProcessException(_("This user does not wish to receive any invitations.", "wishes_not")); } $db = Database::connection(); $db->begin(); // ok, create invitation $text = substr(trim($pl->getParameterValue("text")), 0, 300); $inv = new DB_MemberInvitation(); $inv->setUserId($userId); $inv->setByUserId($runData->getUserId()); $inv->setSiteId($site->getSiteId()); $inv->setDate(new ODate()); $inv->setBody($text); $inv->save(); // and create a notification too... NotificationMaker::instance()->newMembershipInvitation($inv); $db->commit(); $runData->ajaxResponseAdd("result", 'invited'); $runData->ajaxResponseAdd("userId", $userId); }
public function build($runData) { $us = DB_UserSettingsPeer::instance()->selectByPrimaryKey($runData->getUserId()); $runData->contextAdd("from", trim($us->getReceivePm())); }
public function saveReceiveMessagesEvent($runData) { $pl = $runData->getParameterList(); $from = $pl->getParameterValue("from"); if ($from !== "a" && $from !== "mf" && $from !== "f" && $from !== "n") { $from = "a"; } $us = DB_UserSettingsPeer::instance()->selectByPrimaryKey($runData->getUserId()); $us->setReceivePm($from); $us->save(); if (GlobalProperties::$UI_SLEEP) { sleep(1); } }
public function getSettings() { return DB_UserSettingsPeer::instance()->selectByPrimaryKey($this->getUserId()); }
/** * Check if $user can send a private message to $toUser. */ public function hasPmPermission($user, $toUser) { if ($user && ($user->getSuperAdmin() || $user->getSuperModerator())) { return true; } // first check if if $user has pm enabled $us = DB_UserSettingsPeer::instance()->selectByPrimaryKey($toUser->getUserId()); $p = $us->getReceivePm(); //echo "ad"; if ($this->isUserSuperior($user, $toUser)) { return true; } // accept from none (unless from moderators/admins of common sites) if ($p == 'n') { throw new WDPermissionException(_("This user does wish to receive private messages.")); } if ($p == 'mf') { if ($this->shareSites($user, $toUser)) { // so they share common sites. check for blocks! if ($this->userBlocksUser($toUser, $user)) { throw new WDPermissionException(_("You are blocked by this user.")); } return true; } // if friends - return true (todo) $c = new Criteria(); $c->add("user_id", $user->getUserId()); $c->add("target_user_id", $toUser->getUserId()); $con = DB_ContactPeer::instance()->selectOne($c); if ($con) { return true; } throw new WDPermissionException(_("This user wishes to receive messages only from selected users.")); } if ($p == 'f') { //echo "fff"; // check if a friend $c = new Criteria(); $c->add("user_id", $toUser->getUserId()); $c->add("target_user_id", $user->getUserId()); $con = DB_ContactPeer::instance()->selectOne($c); if ($con) { return true; } throw new WDPermissionException(_("This user wishes to receive messages only from selected users.")); } if ($p == 'a') { // check if not blocked if ($this->userBlocksUser($toUser, $user)) { throw new WDPermissionException(_("You are blocked by this user.")); } } // in any other case check return true; }