Sha256: afcb3cc59b6da086e58950d2d41edf38c924bb9834e707ab90e7463a75308467

Contents?: true

Size: 1.28 KB

Versions: 12

Compression:

Stored size: 1.28 KB

Contents

module MuckCommerce
  module CartMethods

    protected 

    def recover_cart
      @cart = get_cart(@user)
    
      # TODO this is a security preference.  In theory one user could get into another user's cart
      # if @cart && @cart.user
      #   allowed_access?(:owner => current_user, :object_user_id => @cart.user_id, :permit_roles => ['administrator']) 
      # end
    end
  
    def get_cart(user)
      if user && user.cart
        convert_existing_to_user_cart(user)
        cookies[:cart_token] = user.cart.token
        return user.cart 
      end
    
      user = nil if user == false
    
      if cookies[:cart_token]
        cart = Cart.find_by_token(cookies[:cart_token])
      else
        cart = Cart.create(:cartable => user)
        cookies[:cart_token] = cart.token
      end
      cart
    end
  
    def convert_existing_to_user_cart(user)
      cart_too = Cart.find_by_token(cookies[:cart_token]) if cookies[:cart_token]
      if cart_too
        cart_too.items.each do |item|
          item.cart = user.cart
          item.save
        end
      end
    end
  
    def permission_denied
      respond_to do |format|
        format.html do
          flash[:notice] = 'Please login to view your cart'
          redirect_to login_path
        end
      end
    end
  
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
muck-commerce-3.0.1 lib/muck-commerce/share/cart_methods.rb
muck-commerce-0.2.8 lib/muck_commerce/cart_methods.rb
muck-commerce-0.2.7 lib/muck_commerce/cart_methods.rb
muck-commerce-0.2.6 lib/muck_commerce/cart_methods.rb
muck-commerce-0.2.5 lib/muck_commerce/cart_methods.rb
muck-commerce-0.2.4 lib/muck_commerce/cart_methods.rb
muck-commerce-0.2.3 lib/muck_commerce/cart_methods.rb
muck-commerce-0.2.2 lib/muck_commerce/cart_methods.rb
muck-commerce-0.2.1 lib/muck_commerce/cart_methods.rb
muck-commerce-0.2.0 lib/muck_commerce/cart_methods.rb
muck-commerce-0.1.9 lib/muck_commerce/cart_methods.rb
muck-commerce-0.1.8 lib/muck_commerce/cart_methods.rb