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