/**
  * Filters the given shipping methods by default permission criteria
  * 
  * @param SilvercartShippingMethod $shippingMethods Shipping methods to filter
  *
  * @return ArrayList
  * 
  * @author Sebastian Diel <*****@*****.**>
  * @since 19.04.2012
  */
 public static function filterShippingMethods($shippingMethods)
 {
     $allowedShippingMethods = new ArrayList();
     $customerGroups = SilvercartCustomer::getCustomerGroups();
     foreach ($shippingMethods as $shippingMethod) {
         foreach ($customerGroups as $customerGroup) {
             if ($shippingMethod->SilvercartCustomerGroups()->find('ID', $customerGroup->ID) || $shippingMethod->SilvercartCustomerGroups()->count() == 0) {
                 $allowedShippingMethods->push($shippingMethod);
                 break;
             }
         }
     }
     return $allowedShippingMethods;
 }