public function build($runData)
 {
     // get current blocks!
     $site = $runData->getTemp("site");
     $c = new Criteria();
     $c->add("site_id", $site->getSiteId());
     $c->addOrderDescending("block_id");
     $blocks = DB_UserBlockPeer::instance()->select($c);
     if (count($blocks) > 0) {
         $runData->contextAdd("blocks", $blocks);
     }
 }
 public function removeMemberEvent($runData)
 {
     $userId = $runData->getParameterList()->getParameterValue("user_id");
     $ban = $runData->getParameterList()->getParameterValue("ban");
     $user = DB_OzoneUserPeer::instance()->selectByPrimaryKey($userId);
     if ($user == null) {
         throw new ProcessException("Error");
     }
     $site = $runData->getTemp("site");
     $siteId = $site->getSiteId();
     // remember: one can NOT remove the last admin nor himself.
     if ($userId == $runData->getUserId()) {
         throw new ProcessException(_('You can not remove yourself! Use "your account" panel instead.'), "not_yourself");
     }
     $db = Database::connection();
     $db->begin();
     // check if is admin. can not remove last admin.
     $c = new Criteria();
     $c->add("user_id", $userId);
     $c->add("site_id", $siteId);
     $admin = DB_AdminPeer::instance()->selectOne($c);
     if ($admin && $admin->getFounder()) {
         throw new ProcessException(_("The founder of the site can not be removed.") . "founder_nonremovable");
     }
     if ($admin) {
         $c2 = new Criteria();
         $c2->add("site_id", $siteId);
         $acount = DB_AdminPeer::instance()->selectCount($c2);
         if ($acount == 1) {
             // BUT this meand "yourself"
             throw new ProcessException(_("You can not remove the last admin."), "last_admin)");
         }
     }
     $c = new Criteria();
     $c->add("user_id", $userId);
     $c->add("site_id", $siteId);
     DB_MemberPeer::instance()->delete($c);
     DB_ModeratorPeer::instance()->delete($c);
     DB_AdminPeer::instance()->delete($c);
     NotificationMaker::instance()->removedFromMembers($site, $user);
     // ban or not?
     if ($ban) {
         $c = new Criteria();
         $c->add("site_id", $site->getSiteId());
         $c->add("user_id", $userId);
         $bl = DB_UserBlockPeer::instance()->selectOne($c);
         if ($bl) {
             throw new ProcessException(_("Error occured."));
         }
         $block = new DB_UserBlock();
         $block->setSiteId($site->getSiteId());
         $block->setUserId($userId);
         $block->setDateBlocked(new ODate());
         $block->save();
     }
     $db->commit();
 }
 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();
 }
Beispiel #4
0
 private function checkUserBlocked($user, $site)
 {
     $c = new Criteria();
     $c->add("site_id", $site->getSiteId());
     $c->add("user_id", $user->getUserId());
     $block = DB_UserBlockPeer::instance()->selectOne($c);
     return $block;
 }