From b4d4c676e1acc6a03893c84288441c36d16a48ad Mon Sep 17 00:00:00 2001 From: Masato Nagasawa Date: Tue, 15 Feb 2011 23:06:05 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=A2=E3=82=AF=E3=82=BB=E3=82=B9=E3=83=96?= =?UTF-8?q?=E3=83=AD=E3=83=83=E3=82=AF=E3=82=92=E8=80=83=E6=85=AE=E3=81=97?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F=E3=81=AE?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../favorite/actions/actions.class.php | 2 +- .../favorite/actions/actions.class.php | 2 +- .../opFavoritePluginFavoriteActions.class.php | 19 ++++++++++++++++++- .../doctrine/PluginFavoriteTable.class.php | 16 ++++++++++++---- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/apps/mobile_frontend/modules/favorite/actions/actions.class.php b/apps/mobile_frontend/modules/favorite/actions/actions.class.php index 181d5f0..22c5fc5 100644 --- a/apps/mobile_frontend/modules/favorite/actions/actions.class.php +++ b/apps/mobile_frontend/modules/favorite/actions/actions.class.php @@ -25,8 +25,8 @@ class favoriteActions extends opFavoritePluginFavoriteActions */ public function executeAdd($request) { + parent::executeAdd($request); $request->checkCSRFProtection(); - $this->idCheck(); Doctrine::getTable('Favorite')->add($this->getUser()->getMemberId(), $this->id); $this->redirect('favorite/list'); } diff --git a/apps/pc_frontend/modules/favorite/actions/actions.class.php b/apps/pc_frontend/modules/favorite/actions/actions.class.php index 4866693..d286a3b 100644 --- a/apps/pc_frontend/modules/favorite/actions/actions.class.php +++ b/apps/pc_frontend/modules/favorite/actions/actions.class.php @@ -24,7 +24,7 @@ class favoriteActions extends opFavoritePluginFavoriteActions */ public function executeAdd($request) { - $this->idCheck(); + parent::executeAdd($request); $favoriteTable = Doctrine::getTable('Favorite'); if ($request->isMethod('post')) { diff --git a/lib/action/opFavoritePluginFavoriteActions.class.php b/lib/action/opFavoritePluginFavoriteActions.class.php index 694ef0e..e73e4c3 100644 --- a/lib/action/opFavoritePluginFavoriteActions.class.php +++ b/lib/action/opFavoritePluginFavoriteActions.class.php @@ -34,6 +34,23 @@ public function idCheck() } } + /** + * Executes add action + * + * @param sfRequest $request A request object + */ + public function executeAdd($request) + { + $this->idCheck(); + + $relation = Doctrine::getTable('MemberRelationship') + ->retrieveByFromAndTo($this->id, $this->getUser()->getMemberId()); + if ($relation) + { + $this->forward404If($relation->getIsAccessBlock()); + } + } + /** * Executes list action * @@ -72,7 +89,7 @@ public function executeDiary($request) $this->pager = Doctrine::getTable('Favorite')->retrieveDiaryPager($this->getUser()->getMemberId(), $request->getParameter('page', 1)); if (!$this->pager->getNbResults()) { - return sfView::ERROR; + return sfView::ALERT; } } } diff --git a/lib/model/doctrine/PluginFavoriteTable.class.php b/lib/model/doctrine/PluginFavoriteTable.class.php index 3eee591..19ecc6a 100644 --- a/lib/model/doctrine/PluginFavoriteTable.class.php +++ b/lib/model/doctrine/PluginFavoriteTable.class.php @@ -78,7 +78,7 @@ public function retrieveDiaryList($member_id_from, $size = 10) } $q = Doctrine::getTable('Diary')->createQuery() - ->whereIn('member_id', $this->getFavoriteToIds($member_id_from)); + ->whereIn('member_id', $this->getShowMemberIds($member_id_from)); Doctrine::getTable('Diary')->addPublicFlagQuery($q, DiaryTable::PUBLIC_FLAG_SNS); $q->orderBy('created_at DESC') ->limit($size); @@ -94,7 +94,7 @@ public function retrieveDiaryPager($member_id_from, $page = 1, $size = 10) } $q = Doctrine::getTable('Diary')->createQuery() - ->whereIn('member_id', $this->getFavoriteToIds($member_id_from)); + ->whereIn('member_id', $this->getShowMemberIds($member_id_from)); Doctrine::getTable('Diary')->addPublicFlagQuery($q, DiaryTable::PUBLIC_FLAG_SNS); $q->orderBy('created_at DESC') ->limit($size); @@ -140,7 +140,7 @@ public function setDiary($date, $title, $id, $name, $image) ); } - public function getBlogListOfFavorite($member_id_from, $size=20, $limitTitle = false) + public function getBlogListOfFavorite($memberId, $size=20, $limitTitle = false) { if (!class_exists('opBlogPlugin')) { @@ -148,7 +148,7 @@ public function getBlogListOfFavorite($member_id_from, $size=20, $limitTitle = f } $list = Doctrine::getTable('BlogRssCache')->createQuery() - ->whereIn('member_id', $this->getFavoriteToIds($member_id_from)) + ->whereIn('member_id', $this->getShowMemberIds($memberId)) ->orderBy('date DESC') ->limit($size) ->execute(); @@ -177,6 +177,14 @@ public function getFavoriteToIds($member_id_from) return $memberIds; } + public function getShowMemberIds($memberId) + { + $memberIds = $this->getFavoriteToIds($memberId); + $blockedMemberIds = Doctrine::getTable('MemberRelationship')->getBlockedMemberIdsByTo($memberId); + + return array_diff($memberIds, $blockedMemberIds); + } + public function retrieveByMemberIdFromAndTo($member_id_from, $member_id_to) { $q = $this->createQuery()