public static function canViewListing($listingId) { $listingObject = JUDirectoryHelper::getListingById($listingId); if (!is_object($listingObject)) { return false; } $canDoCategory = JUDirectoryFrontHelperPermission::canDoCategory($listingObject->cat_id, true); if (!$canDoCategory) { return false; } if ($listingObject->approved == 1) { $canEditListing = JUDirectoryFrontHelperPermission::canEditListing($listingId); $canEditStateListing = JUDirectoryFrontHelperPermission::canEditStateListing($listingObject); $userCanDoListing = JUDirectoryFrontHelperPermission::userCanDoListing($listingId, true); if ($canEditListing || $canEditStateListing || $userCanDoListing) { return true; } } $isListingPublished = JUDirectoryFrontHelperListing::isListingPublished($listingId); $isListingOwner = JUDirectoryFrontHelperPermission::isListingOwner($listingId); if ($isListingOwner) { $params = JUDirectoryHelper::getParams(null, $listingId); if ($listingObject->approved <= 0 || $isListingPublished || !$isListingPublished && $params->get('listing_owner_can_view_unpublished_listing', 0)) { return true; } } $isModerator = JUDirectoryFrontHelperModerator::isModerator(); if ($isModerator) { if ($listingObject->approved == 1) { if ($isListingPublished) { $modCanViewListing = JUDirectoryFrontHelperModerator::checkModeratorCanDoWithListing($listingObject->cat_id, 'listing_view'); if ($modCanViewListing) { return true; } } else { $modCanViewListing = JUDirectoryFrontHelperModerator::checkModeratorCanDoWithListing($listingObject->cat_id, 'listing_view_unpublished'); if ($modCanViewListing) { return true; } } } else { $modCanViewListing = JUDirectoryFrontHelperModerator::checkModeratorCanDoWithListing($listingObject->cat_id, 'listing_approve'); if ($modCanViewListing) { return true; } } } return false; }
public function delete() { JSession::checkToken('get') or die(JText::_('JINVALID_TOKEN')); $cid = JFactory::getApplication()->input->get('id', array(), 'array'); if (!is_array($cid) || count($cid) < 1) { JError::raiseWarning(500, JText::_('COM_JUDIRECTORY_NO_ITEM_SELECTED')); $this->setRedirect($this->getReturnPage()); } else { $model = $this->getModel(); jimport('joomla.utilities.arrayhelper'); JArrayHelper::toInteger($cid); if ($model->delete($cid)) { $this->setMessage(JText::plural($this->text_prefix . '_N_ITEMS_DELETED', count($cid))); } else { $this->setMessage($model->getError()); } $isListingPublished = JUDirectoryFrontHelperListing::isListingPublished($cid[0]); if ($isListingPublished) { $mainCategoryId = JUDirectoryFrontHelperCategory::getMainCategoryId($cid[0]); $this->setRedirect(JRoute::_(JUDirectoryHelperRoute::getCategoryRoute($mainCategoryId), false)); } else { $this->setRedirect($this->getReturnPage()); } } }