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(); }
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; }