Example #1
0
 public static function canAutoApprovalListingWhenEdit($listingId, $newMainCategoryId)
 {
     $listingObject = JUDirectoryHelper::getListingById($listingId);
     if ($listingObject->approved == 1) {
         $originalListingId = $listingObject->id;
         $originalListingObject = $listingObject;
         $mainCategoryId = JUDirectoryFrontHelperCategory::getMainCategoryId($originalListingObject->id);
         $params = JUDirectoryHelper::getParams($newMainCategoryId);
     } elseif ($listingObject->approved < 0) {
         $tempListingObject = $listingObject;
         $originalListingId = abs($listingObject->approved);
         $originalListingObject = JUDirectoryHelper::getListingById($originalListingId);
         $mainCategoryId = JUDirectoryFrontHelperCategory::getMainCategoryId($originalListingObject->id);
         $params = JUDirectoryHelper::getParams($newMainCategoryId);
     } else {
         return false;
     }
     $isListingOwner = JUDirectoryFrontHelperPermission::isListingOwner($originalListingObject->id);
     $autoApprovalForListingOwner = $params->get('listing_owner_can_edit_listing_auto_approval', 1);
     if ($isListingOwner && $autoApprovalForListingOwner) {
         return true;
     }
     $user = JFactory::getUser();
     if ($mainCategoryId == $newMainCategoryId) {
         if ($user->authorise('judir.listing.edit.auto_approval', 'com_judirectory.category.' . $mainCategoryId)) {
             return true;
         }
     } else {
         if ($user->authorise('judir.listing.create.auto_approval', 'com_judirectory.category.' . $newMainCategoryId)) {
             return true;
         }
     }
     if (!$user->get('guest')) {
         $autoApprovalListingThreshold = (int) $params->get('auto_approval_listing_threshold', 0);
         if ($autoApprovalListingThreshold > 0) {
             $totalApprovedListingsOfUser = JUDirectoryFrontHelperListing::getTotalListingsOfUserApprovedByMod($user->id);
             if ($totalApprovedListingsOfUser >= $autoApprovalListingThreshold) {
                 return true;
             }
         }
     }
     return false;
 }