Beispiel #1
0
 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);
 }
Beispiel #3
0
 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);
     }
 }
Beispiel #5
0
 public function getSettings()
 {
     return DB_UserSettingsPeer::instance()->selectByPrimaryKey($this->getUserId());
 }
Beispiel #6
0
 /**
  * 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;
 }