Esempio n. 1
0
 /**
  * 检查用户是否有查看活动的权限
  * @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;
 }