Esempio n. 1
0
 public function canSubmit($userID = null)
 {
     if (!$this->isPublished()) {
         return false;
     }
     $app = JFactory::getApplication();
     if ($app->isAdmin()) {
         return true;
     } else {
         if ($userID) {
             $user = JFactory::getUser($userID);
         } else {
             $user = JFactory::getUser();
         }
         if ($app->input->getInt('approve', 0) == 1) {
             if (is_object($this->listing) && $this->listing->approved <= 0) {
                 $modCanApprove = JUDirectoryFrontHelperModerator::checkModeratorCanDoWithListing($this->listing->cat_id, 'listing_approve');
                 if ($modCanApprove) {
                     return true;
                 }
             }
         }
         $approvalOption = $app->input->post->get("approval_option");
         $approvalOptionArray = array("ignore", "approve", "delete");
         if (in_array($approvalOption, $approvalOptionArray)) {
             if (is_object($this->listing) && $this->listing->approved <= 0) {
                 $categoriesField = new JUDirectoryFieldCore_categories();
                 $newMainCategory = $this->fields_data[$categoriesField->id]['main'];
                 if ($newMainCategory) {
                     $modCanApprove = JUDirectoryFrontHelperModerator::checkModeratorCanDoWithListing($newMainCategory, 'listing_approve');
                     if ($modCanApprove) {
                         return true;
                     }
                 }
             }
         }
         if ($user) {
             $assetName = 'com_judirectory.field.' . (int) $this->id;
             return $user->authorise("judir.field.value.submit", $assetName);
         }
     }
     return false;
 }
Esempio n. 2
0
 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;
 }