/** * 检查用户是否有查看活动的权限 * @param array $activity * @param float $uid * return boolean */ private function _check_activity_view_permission($activity, $uid) { $permit = true; $apply_type = $this->model->getActivityApplyType($activity['aid'], $uid); if ($activity['gid'] == 0 && $apply_type == 0) { $permit = false; $friendModel = Friend_Model::instance(); $isFriend = $friendModel->check_isfriend($activity['creator_id'], $uid); $fidList = $friendModel->getAllFriendIDs($uid); $friendsIsJoin = false; if ($fidList) { $fids = implode(',', $fidList); $friendsIsJoin = $this->model->checkFriendsIsJoined($activity['aid'], $fids); } $invite = $this->model->getUserInviteUnset($activity['aid'], $uid); $isCompanyMember = false; if ($activity['belong_type'] == Kohana::config('activity.belongType.company')) { $companyModel = new Company_Model(); $companyId = floatval($activity['belong_id']); $isCompanyMember = $companyModel->isCompanyMember($companyId, $uid); } if ($invite || $isCompanyMember) { $permit = true; } else { if ($activity['is_allow_invite'] && $friendsIsJoin) { $permit = true; } } } return $permit; }