opensteam 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +78 -0
- data/LICENSE +345 -0
- data/{README.txt → README.rdoc} +20 -17
- data/Rakefile +40 -0
- data/generators/opensteam/opensteam_generator.rb +95 -194
- data/generators/opensteam/templates/{controllers/administration → app/controllers/admin}/inventories_controller.rb +4 -4
- data/generators/opensteam/templates/app/controllers/admin/invoices_controller.rb +106 -0
- data/generators/opensteam/templates/app/controllers/admin/orders_controller.rb +113 -0
- data/generators/opensteam/templates/app/controllers/admin/search_controller.rb +17 -0
- data/generators/opensteam/templates/app/controllers/admin/shipments_controller.rb +106 -0
- data/generators/opensteam/templates/app/controllers/admin/users_controller.rb +99 -0
- data/generators/opensteam/templates/app/controllers/admin_controller.rb +40 -0
- data/generators/opensteam/templates/app/controllers/cart_controller.rb +94 -0
- data/generators/opensteam/templates/app/controllers/checkout_controller.rb +139 -0
- data/generators/opensteam/templates/app/controllers/profile/infos_controller.rb +52 -0
- data/generators/opensteam/templates/app/controllers/profile/orders_controller.rb +105 -0
- data/generators/opensteam/templates/app/controllers/profile_controller.rb +37 -0
- data/generators/opensteam/templates/app/controllers/searches_controller.rb +23 -0
- data/generators/opensteam/templates/app/controllers/user_sessions_controller.rb +38 -0
- data/generators/opensteam/templates/app/controllers/users_controller.rb +40 -0
- data/generators/opensteam/templates/{controllers → app/controllers}/webshop_controller.rb +35 -13
- data/generators/opensteam/templates/app/helpers/admin_helper.rb +40 -0
- data/generators/opensteam/templates/app/helpers/users_helper.rb +53 -0
- data/generators/opensteam/templates/app/helpers/webshop_helper.rb +91 -0
- data/generators/opensteam/templates/app/models/search.rb +36 -0
- data/generators/opensteam/templates/{views/administration → app/views/admin}/_address.html.erb +0 -0
- data/generators/opensteam/templates/app/views/admin/_nav.html.erb +5 -0
- data/generators/opensteam/templates/app/views/admin/catalog.html.erb +5 -0
- data/generators/opensteam/templates/app/views/admin/index.html.erb +21 -0
- data/generators/opensteam/templates/{views/administration → app/views/admin}/inventories/edit.html.erb +10 -9
- data/generators/opensteam/templates/{views/administration → app/views/admin}/inventories/index.html.erb +3 -3
- data/generators/opensteam/templates/{views/administration → app/views/admin}/inventories/new.html.erb +3 -3
- data/generators/opensteam/templates/app/views/admin/inventories/show.html.erb +46 -0
- data/generators/opensteam/templates/app/views/admin/invoices/_invoice.html.erb +12 -0
- data/generators/opensteam/templates/app/views/admin/invoices/_invoices.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/invoices/index.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/invoices/new.html.erb +54 -0
- data/generators/opensteam/templates/app/views/admin/invoices/show.html.erb +55 -0
- data/generators/opensteam/templates/app/views/admin/orders/_event.html.erb +5 -0
- data/generators/opensteam/templates/app/views/admin/orders/_order.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/orders/_order_item.html.erb +10 -0
- data/generators/opensteam/templates/app/views/admin/orders/_orders.html.erb +19 -0
- data/generators/opensteam/templates/app/views/admin/orders/index.html.erb +14 -0
- data/generators/opensteam/templates/app/views/admin/orders/livesearch.rjs +6 -0
- data/generators/opensteam/templates/app/views/admin/orders/show.html.erb +58 -0
- data/generators/opensteam/templates/app/views/admin/products.html.erb +8 -0
- data/generators/opensteam/templates/app/views/admin/properties.html.erb +7 -0
- data/generators/opensteam/templates/app/views/admin/sales.html.erb +5 -0
- data/generators/opensteam/templates/app/views/admin/shipments/_shipment.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/shipments/_shipments.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/shipments/index.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/shipments/new.html.erb +51 -0
- data/generators/opensteam/templates/app/views/admin/shipments/show.html.erb +55 -0
- data/generators/opensteam/templates/app/views/admin/users/_admins.html.erb +26 -0
- data/generators/opensteam/templates/app/views/admin/users/_admins_header.html.erb +10 -0
- data/generators/opensteam/templates/app/views/admin/users/_customer.html.erb +32 -0
- data/generators/opensteam/templates/app/views/admin/users/_customers.html.erb +29 -0
- data/generators/opensteam/templates/app/views/admin/users/_customers_header.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/users/_user_fields.html.erb +9 -0
- data/generators/opensteam/templates/app/views/admin/users/_users.html.erb +29 -0
- data/generators/opensteam/templates/app/views/admin/users/_users_header.html.erb +11 -0
- data/generators/opensteam/templates/app/views/admin/users/edit.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/users/index.html.erb +7 -0
- data/generators/opensteam/templates/app/views/admin/users/new.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/users/show.html.erb +34 -0
- data/generators/opensteam/templates/app/views/admin/users.html.erb +4 -0
- data/generators/opensteam/templates/{views → app/views}/administration_mailer/order_admin.erb +0 -0
- data/generators/opensteam/templates/{views → app/views}/administration_mailer/order_customer.erb +0 -0
- data/generators/opensteam/templates/app/views/cart/_cart.html.erb +8 -0
- data/generators/opensteam/templates/{views/webshop → app/views/cart}/_cart_content.html.erb +7 -10
- data/generators/opensteam/templates/app/views/cart/index.html.erb +5 -0
- data/generators/opensteam/templates/app/views/cart/update.rjs +1 -0
- data/generators/opensteam/templates/app/views/checkout/intro.html.erb +18 -0
- data/generators/opensteam/templates/{views → app/views}/checkout/outro.html.erb +0 -1
- data/generators/opensteam/templates/{views → app/views}/checkout/payment.html.erb +0 -0
- data/generators/opensteam/templates/app/views/checkout/shipping.html.erb +45 -0
- data/generators/opensteam/templates/app/views/checkout/show_cart.html.erb +13 -0
- data/generators/opensteam/templates/{views → app/views}/checkout/update_cart_content.rjs +0 -0
- data/generators/opensteam/templates/{views → app/views}/common/_cart.html.erb +2 -2
- data/generators/opensteam/templates/{views → app/views}/common/_cart_content.html.erb +1 -1
- data/generators/opensteam/templates/app/views/common/_footer.html.erb +1 -0
- data/generators/opensteam/templates/app/views/common/_header.html.erb +4 -0
- data/generators/opensteam/templates/app/views/common/_header_flash.html.erb +3 -0
- data/generators/opensteam/templates/app/views/common/_signup_fields.html.erb +16 -0
- data/generators/opensteam/templates/app/views/common/_top_links.html.erb +10 -0
- data/generators/opensteam/templates/app/views/layouts/admin.html.erb +45 -0
- data/generators/opensteam/templates/app/views/layouts/profile.html.erb +45 -0
- data/generators/opensteam/templates/app/views/layouts/webshop.html.erb +51 -0
- data/generators/opensteam/templates/app/views/profile/_customer_sidebar.html.erb +12 -0
- data/generators/opensteam/templates/app/views/profile/index.html.erb +11 -0
- data/generators/opensteam/templates/app/views/profile/infos/_customer.html.erb +5 -0
- data/generators/opensteam/templates/app/views/profile/infos/edit.html.erb +25 -0
- data/generators/opensteam/templates/app/views/profile/infos/edit_password.html.erb +26 -0
- data/generators/opensteam/templates/app/views/profile/orders/_order.html.erb +11 -0
- data/generators/opensteam/templates/app/views/profile/orders/_order_item.html.erb +10 -0
- data/generators/opensteam/templates/app/views/profile/orders/_orders.html.erb +19 -0
- data/generators/opensteam/templates/app/views/profile/orders/index.html.erb +14 -0
- data/generators/opensteam/templates/app/views/profile/orders/show.html.erb +48 -0
- data/generators/opensteam/templates/app/views/searches/_search_bar.html.erb +5 -0
- data/generators/opensteam/templates/app/views/searches/new.html.erb +23 -0
- data/generators/opensteam/templates/app/views/searches/show.html.erb +1 -0
- data/generators/opensteam/templates/app/views/user_sessions/new.html.erb +14 -0
- data/generators/opensteam/templates/app/views/users/_user_bar.html.erb +5 -0
- data/generators/opensteam/templates/app/views/users/index.html.erb +27 -0
- data/generators/opensteam/templates/app/views/users/new.html.erb +7 -0
- data/generators/opensteam/templates/app/views/users/show.html.erb +5 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/_inventory_content.html.erb +0 -0
- data/generators/opensteam/templates/app/views/webshop/_nav.html.erb +6 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/add_inventory_to_cart.rjs +0 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/add_to_cart_with_parameters.rjs +0 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/del_item.rjs +0 -0
- data/generators/opensteam/templates/app/views/webshop/index.html.erb +11 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/inventory.rjs +0 -0
- data/generators/opensteam/templates/{views → app/views}/webshop/show.html.erb +15 -15
- data/generators/opensteam/templates/config/initializers/init_states.rb +68 -0
- data/generators/opensteam/templates/{init → config/initializers}/opensteam.rb +6 -0
- data/generators/opensteam/templates/config/initializers/opensteam_model_tables.rb +57 -0
- data/generators/opensteam/templates/db/migrate/20080609095714_create_profiles.rb +14 -0
- data/generators/opensteam/templates/{migrations/create_sessions.rb → db/migrate/20080609095720_create_sessions.rb} +0 -0
- data/generators/opensteam/templates/db/migrate/20080609095721_create_users.rb +29 -0
- data/generators/opensteam/templates/{migrations/create_addresses.rb → db/migrate/20080609095723_create_addresses.rb} +0 -0
- data/generators/opensteam/templates/{migrations/create_customers.rb → db/migrate/20080609095724_create_customers.rb} +0 -0
- data/generators/opensteam/templates/db/migrate/20080609095725_create_dummy_users.rb +21 -0
- data/generators/opensteam/templates/{migrations/create_inventories.rb → db/migrate/20080609095726_create_inventories.rb} +0 -0
- data/generators/opensteam/templates/{migrations/create_inventories_properties.rb → db/migrate/20080609095727_create_inventories_properties.rb} +0 -0
- data/generators/opensteam/templates/{migrations/create_order_items.rb → db/migrate/20080609095728_create_order_items.rb} +5 -0
- data/generators/opensteam/templates/db/migrate/20080609095729_create_orders.rb +32 -0
- data/generators/opensteam/templates/{migrations/create_payment_types.rb → db/migrate/20080609095730_create_payment_types.rb} +0 -0
- data/generators/opensteam/templates/{migrations/create_properties.rb → db/migrate/20080609095731_create_properties.rb} +0 -0
- data/generators/opensteam/templates/db/migrate/20080623075613_create_states.rb +13 -0
- data/generators/opensteam/templates/db/migrate/20080624132807_create_searches.rb +20 -0
- data/generators/opensteam/templates/db/migrate/20080630114155_create_state_histories.rb +14 -0
- data/generators/opensteam/templates/db/migrate/20080714131513_create_invoices.rb +20 -0
- data/generators/opensteam/templates/db/migrate/20080714131650_create_shipments.rb +19 -0
- data/generators/opensteam/templates/lib/authenticated_system.rb +201 -0
- data/generators/opensteam/templates/lib/authentication/by_cookie_token.rb +90 -0
- data/generators/opensteam/templates/lib/authentication/by_password.rb +68 -0
- data/generators/opensteam/templates/lib/authentication.rb +46 -0
- data/generators/opensteam/templates/lib/states/invoice/finished.rb +6 -0
- data/generators/opensteam/templates/lib/states/invoice/payment_received.rb +8 -0
- data/generators/opensteam/templates/lib/states/invoice/pending.rb +6 -0
- data/generators/opensteam/templates/lib/states/invoice/waiting_for_payment.rb +5 -0
- data/generators/opensteam/templates/lib/states/order/finished.rb +6 -0
- data/generators/opensteam/templates/lib/states/order/pending.rb +19 -0
- data/generators/opensteam/templates/lib/states/order/processing.rb +11 -0
- data/generators/opensteam/templates/lib/states/shipment/finished.rb +6 -0
- data/generators/opensteam/templates/lib/states/shipment/pending.rb +5 -0
- data/generators/opensteam/templates/lib/tasks/opensteam.rake +114 -0
- data/generators/opensteam/templates/public/images/athmo_background.jpg +0 -0
- data/generators/opensteam/templates/public/images/bg.jpg +0 -0
- data/generators/opensteam/templates/public/images/cart_big.gif +0 -0
- data/generators/opensteam/templates/public/images/cross.png +0 -0
- data/generators/opensteam/templates/public/images/enter.gif +0 -0
- data/generators/opensteam/templates/public/images/menu_background.jpg +0 -0
- data/generators/opensteam/templates/public/images/opensteam_background.jpg +0 -0
- data/generators/opensteam/templates/public/images/opensteam_logo1.jpg +0 -0
- data/generators/opensteam/templates/public/images/opensteam_petstore_logo1.jpg +0 -0
- data/generators/opensteam/templates/public/images/opensteam_store_logo.jpg +0 -0
- data/generators/opensteam/templates/public/images/os_logo.gif +0 -0
- data/generators/opensteam/templates/public/images/slogan.png +0 -0
- data/generators/opensteam/templates/public/images/tick.png +0 -0
- data/generators/opensteam/templates/public/images/zoom.png +0 -0
- data/generators/opensteam/templates/public/index.html +19 -36
- data/generators/opensteam/templates/public/javascripts/opensteam.js +30 -0
- data/generators/opensteam/templates/public/stylesheets/opensteam_newdesign.css +188 -0
- data/generators/opensteam/templates/public/stylesheets/opensteam_white.css +168 -0
- data/generators/opensteam/templates/public/stylesheets/webshop.css +0 -1
- data/generators/opensteam/templates/tasks/opensteam.rake +1 -1
- data/generators/opensteam/templates/{fixtures → test/fixtures}/inventories.yml +0 -0
- data/generators/opensteam/templates/{fixtures → test/fixtures}/inventories_properties.yml +0 -0
- data/generators/opensteam/templates/{fixtures → test/fixtures}/product_animals.yml +0 -0
- data/generators/opensteam/templates/{fixtures → test/fixtures}/product_dog_foods.yml +0 -0
- data/generators/opensteam/templates/{fixtures → test/fixtures}/properties.yml +0 -0
- data/generators/opensteam_product/opensteam_product_generator.rb +25 -9
- data/generators/opensteam_product/templates/controllers/product_controller.rb +5 -4
- data/generators/opensteam_product/templates/migration.rb +2 -1
- data/generators/opensteam_product/templates/models/product.rb +1 -0
- data/generators/opensteam_product/templates/views/{administration → admin}/_attributes.html.erb +1 -1
- data/generators/opensteam_product/templates/views/{administration → admin}/_get_products.html.erb +0 -0
- data/generators/opensteam_product/templates/views/{administration → admin}/_inventories.html.erb +2 -2
- data/generators/opensteam_product/templates/views/admin/edit.html.erb +13 -0
- data/generators/opensteam_product/templates/views/{administration → admin}/index.html.erb +5 -5
- data/generators/opensteam_product/templates/views/admin/new.html.erb +16 -0
- data/generators/opensteam_product/templates/views/{administration → admin}/show.html.erb +2 -2
- data/generators/opensteam_property/opensteam_property_generator.rb +8 -8
- data/generators/opensteam_property/templates/controllers/property_controller.rb +6 -4
- data/generators/opensteam_property/templates/migration.rb +2 -1
- data/generators/opensteam_property/templates/models/property.rb +1 -0
- data/generators/opensteam_property/templates/views/{administration → admin}/edit.html.erb +3 -3
- data/generators/opensteam_property/templates/views/admin/index.html.erb +24 -0
- data/generators/opensteam_property/templates/views/{administration → admin}/new.html.erb +2 -2
- data/generators/opensteam_property/templates/views/admin/show.html.erb +10 -0
- data/lib/opensteam/base.rb +16 -0
- data/lib/opensteam/cart_base.rb +227 -0
- data/lib/opensteam/checkout.rb +30 -3
- data/lib/opensteam/config.rb +37 -0
- data/lib/opensteam/extension_base.rb +76 -0
- data/lib/opensteam/finder.rb +36 -5
- data/lib/opensteam/helper/configurable_table.rb +228 -0
- data/lib/opensteam/history.rb +56 -0
- data/lib/opensteam/initializer.rb +127 -0
- data/lib/opensteam/inventory_base.rb +24 -1
- data/lib/opensteam/invoice_base.rb +61 -0
- data/lib/opensteam/order_base.rb +105 -14
- data/lib/opensteam/product_base.rb +31 -3
- data/lib/opensteam/property_base.rb +16 -0
- data/lib/opensteam/shipment_base.rb +60 -0
- data/lib/opensteam/shopping_cart.rb +32 -14
- data/lib/opensteam/state_logic.rb +218 -0
- data/lib/opensteam/state_machine.rb +216 -0
- data/lib/opensteam/user_base.rb +115 -131
- data/lib/opensteam/version.rb +17 -1
- data/lib/opensteam.rb +30 -35
- metadata +245 -146
- data/History.txt +0 -0
- data/License.txt +0 -4
- data/Manifest.txt +0 -131
- data/Manifest.txt.bak +0 -132
- data/generators/opensteam/templates/controllers/administration/customers_controller.rb +0 -23
- data/generators/opensteam/templates/controllers/administration/orders_controller.rb +0 -61
- data/generators/opensteam/templates/controllers/administration_controller.rb +0 -80
- data/generators/opensteam/templates/controllers/checkout_controller.rb +0 -142
- data/generators/opensteam/templates/helpers/webshop_helper.rb +0 -29
- data/generators/opensteam/templates/migrations/create_dummy_users.rb +0 -16
- data/generators/opensteam/templates/migrations/create_orders.rb +0 -18
- data/generators/opensteam/templates/migrations/create_users.rb +0 -19
- data/generators/opensteam/templates/models/administration_mailer.rb +0 -18
- data/generators/opensteam/templates/models/inventories_property.rb +0 -10
- data/generators/opensteam/templates/models/inventory.rb +0 -57
- data/generators/opensteam/templates/public/images/rails.png +0 -0
- data/generators/opensteam/templates/views/administration/_nav.html.erb +0 -11
- data/generators/opensteam/templates/views/administration/_update_tree.html.erb +0 -18
- data/generators/opensteam/templates/views/administration/admin_info.html.erb +0 -12
- data/generators/opensteam/templates/views/administration/customers/index.html.erb +0 -27
- data/generators/opensteam/templates/views/administration/customers/show.html.erb +0 -27
- data/generators/opensteam/templates/views/administration/customers.html.erb +0 -44
- data/generators/opensteam/templates/views/administration/index.html.erb +0 -9
- data/generators/opensteam/templates/views/administration/inventories/show.html.erb +0 -45
- data/generators/opensteam/templates/views/administration/login.html.erb +0 -16
- data/generators/opensteam/templates/views/administration/order.html.erb +0 -22
- data/generators/opensteam/templates/views/administration/orders/_order_item.html.erb +0 -22
- data/generators/opensteam/templates/views/administration/orders/index.html.erb +0 -32
- data/generators/opensteam/templates/views/administration/orders/show.html.erb +0 -25
- data/generators/opensteam/templates/views/administration/orders.html.erb +0 -32
- data/generators/opensteam/templates/views/administration/products.html.erb +0 -7
- data/generators/opensteam/templates/views/administration/properties.html.erb +0 -7
- data/generators/opensteam/templates/views/administration/show_order_item.html.erb +0 -5
- data/generators/opensteam/templates/views/administration/signup.html.erb +0 -65
- data/generators/opensteam/templates/views/administration/tree.html.erb +0 -15
- data/generators/opensteam/templates/views/administration/update_products.html.erb +0 -5
- data/generators/opensteam/templates/views/administration/update_properties.html.erb +0 -5
- data/generators/opensteam/templates/views/administration/update_tree.rjs +0 -3
- data/generators/opensteam/templates/views/checkout/intro.html.erb +0 -5
- data/generators/opensteam/templates/views/checkout/shipping.html.erb +0 -39
- data/generators/opensteam/templates/views/checkout/show_cart.html.erb +0 -13
- data/generators/opensteam/templates/views/common/_header.html.erb +0 -15
- data/generators/opensteam/templates/views/layouts/administration.html.erb +0 -29
- data/generators/opensteam/templates/views/layouts/webshop.html.erb +0 -36
- data/generators/opensteam/templates/views/webshop/_cart.html.erb +0 -11
- data/generators/opensteam/templates/views/webshop/_header.html.erb +0 -15
- data/generators/opensteam/templates/views/webshop/index.html.erb +0 -12
- data/generators/opensteam_product/templates/views/administration/edit.html.erb +0 -13
- data/generators/opensteam_product/templates/views/administration/new.html.erb +0 -16
- data/generators/opensteam_property/templates/views/administration/index.html.erb +0 -24
- data/generators/opensteam_property/templates/views/administration/show.html.erb +0 -10
data/lib/opensteam/user_base.rb
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
# openSteam - http://www.opensteam.net
|
2
|
+
# Copyright (C) 2008 DiamondDogs Webconsulting
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation; version 2 of the License.
|
7
|
+
#
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
16
|
+
|
1
17
|
module Opensteam
|
2
18
|
|
3
19
|
|
@@ -7,12 +23,27 @@ module Opensteam
|
|
7
23
|
#
|
8
24
|
#
|
9
25
|
module UserBase
|
26
|
+
|
27
|
+
|
28
|
+
module UserAuthenticatedHelper
|
29
|
+
def self.included(base)
|
30
|
+
base.class_eval do
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
|
10
38
|
|
11
39
|
class Address < ActiveRecord::Base
|
12
|
-
belongs_to :customer
|
40
|
+
belongs_to :customer, :class_name => 'Opensteam::UserBase::Customer'
|
13
41
|
has_many :shipping_orders, :class_name => "Order", :foreign_key => "shipping_address_id"
|
14
42
|
has_many :payment_orders , :class_name => "Order", :foreign_key => "payment_address_id"
|
15
43
|
|
44
|
+
has_many :shipments
|
45
|
+
has_many :invoices
|
46
|
+
|
16
47
|
validates_presence_of :city, :postal, :street, :land
|
17
48
|
|
18
49
|
|
@@ -20,146 +51,99 @@ module Opensteam
|
|
20
51
|
def orders
|
21
52
|
self.shipping_orders | self.payment_orders
|
22
53
|
end
|
54
|
+
|
55
|
+
def zip ; postal ; end
|
56
|
+
|
57
|
+
def to_a ; [ street, zip, city, land ] ; end
|
58
|
+
|
59
|
+
def full_address ; to_a * (",") ; end
|
60
|
+
|
61
|
+
alias :to_s :full_address
|
23
62
|
|
24
63
|
end
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
64
|
+
|
65
|
+
|
29
66
|
require 'digest/sha1'
|
30
|
-
|
31
|
-
|
67
|
+
|
32
68
|
class User < ActiveRecord::Base
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
validates_presence_of
|
38
|
-
|
39
|
-
|
40
|
-
validates_format_of
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
def password=(pass)
|
58
|
-
errors.add_to_base("password is empty") if pass.nil? or pass.empty?
|
59
|
-
@password = pass
|
60
|
-
self.salt = Opensteam::UserBase::User.random_string(10) if !self.salt?
|
61
|
-
self.hashed_password = Opensteam::UserBase::User.encrypt(@password, self.salt)
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
|
-
def is_admin?
|
66
|
-
return (self.class == Opensteam::UserBase::Admin ) ? true : false
|
67
|
-
end
|
68
|
-
|
69
|
-
|
70
|
-
protected
|
71
|
-
def self.random_string(len)
|
72
|
-
chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
|
73
|
-
newpass = ""
|
74
|
-
1.upto(len) { |i| newpass << chars[rand(chars.size-1)] }
|
75
|
-
return newpass
|
76
|
-
end
|
77
|
-
|
78
|
-
def self.encrypt(pass, salt)
|
79
|
-
Digest::SHA1.hexdigest(pass+salt)
|
80
|
-
end
|
81
|
-
|
82
|
-
|
83
|
-
end
|
84
|
-
|
85
|
-
|
86
|
-
class Admin < User
|
87
|
-
end
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
class Customer < ActiveRecord::Base
|
92
|
-
has_many :orders, :class_name => "Opensteam::OrderBase::Order"
|
93
|
-
has_many :addresses, :foreign_key => "user_id"
|
94
|
-
|
95
|
-
validates_presence_of :email #, :firstname, :lastname
|
96
|
-
validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :message => "Invalid format .."
|
97
|
-
|
98
|
-
end
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
# Opensteam::UserBase::Helper
|
107
|
-
#
|
108
|
-
# Helper Methods for a Controller
|
109
|
-
# used for before/after_fileter
|
110
|
-
#
|
111
|
-
#
|
112
|
-
module Helper
|
113
|
-
|
114
|
-
|
115
|
-
# admin_required filter
|
116
|
-
def admin_required
|
117
|
-
if login = session[:user_login]
|
118
|
-
if Opensteam::UserBase::User.find(:first, :conditions => ["login = ?", login]).is_admin?
|
119
|
-
return true
|
120
|
-
end
|
69
|
+
include Authentication
|
70
|
+
include Authentication::ByPassword
|
71
|
+
include Authentication::ByCookieToken
|
72
|
+
|
73
|
+
validates_presence_of :email
|
74
|
+
validates_length_of :email, :within => 6..100 #r@a.wk
|
75
|
+
validates_uniqueness_of :email, :case_sensitive => false
|
76
|
+
validates_format_of :email, :with => RE_EMAIL_OK, :message => MSG_EMAIL_BAD
|
77
|
+
|
78
|
+
validates_presence_of :firstname
|
79
|
+
validates_format_of :firstname, :with => RE_NAME_OK, :message => MSG_NAME_BAD, :allow_nil => false
|
80
|
+
validates_length_of :firstname, :maximum => 100
|
81
|
+
|
82
|
+
validates_presence_of :lastname
|
83
|
+
validates_format_of :lastname, :with => RE_NAME_OK, :message => MSG_NAME_BAD, :allow_nil => false
|
84
|
+
validates_length_of :lastname, :maximum => 100
|
85
|
+
|
86
|
+
attr_accessible :login, :email, :firstname, :lastname, :password, :password_confirmation
|
87
|
+
|
88
|
+
class << self ;
|
89
|
+
|
90
|
+
def authenticate(email, password)
|
91
|
+
u = find_by_email(email) # need to get the salt
|
92
|
+
u && u.authenticated?(password) ? u : nil
|
121
93
|
end
|
122
|
-
|
123
|
-
session[:return_to] = request.request_uri
|
124
|
-
redirect_to login_path
|
125
|
-
return false
|
94
|
+
|
126
95
|
end
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
96
|
+
|
97
|
+
belongs_to :profile, :class_name => 'Opensteam::UserBase::Profile'
|
98
|
+
|
99
|
+
has_many :orders, :class_name => 'Opensteam::OrderBase::Order', :foreign_key => "customer_id"
|
100
|
+
has_many :addresses, :class_name => 'Opensteam::UserBase::Address', :foreign_key => 'user_id'
|
101
|
+
|
102
|
+
|
103
|
+
named_scope :by_profile, lambda { |p| { :include => :profile, :conditions => "profiles.name = '#{p.to_s.classify}'" } }
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
after_create :set_profile
|
108
|
+
|
109
|
+
def set_profile
|
110
|
+
unless self.profile
|
111
|
+
self.profile = Profile.find_or_create_by_name(:name => "Customer" )
|
112
|
+
self.save
|
136
113
|
end
|
137
|
-
flash[:error] = "not logged in .."
|
138
|
-
session[:return_to] = request.request_uri
|
139
|
-
redirect_to login_path
|
140
|
-
return false
|
141
|
-
end
|
142
|
-
|
143
|
-
|
144
|
-
# get the current authenticated user
|
145
|
-
def current_user
|
146
|
-
session[:user]
|
147
114
|
end
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
if return_to = session[:return_to]
|
154
|
-
session[:return_to] = nil
|
155
|
-
redirect_to return_to
|
156
|
-
else
|
157
|
-
redirect_to administration_path
|
115
|
+
|
116
|
+
|
117
|
+
def method_missing(method, *args, &block)
|
118
|
+
if method.to_s =~/^is\_(.+)\?$/
|
119
|
+
return self.profile.name.classify.to_sym == $1.classify.to_sym
|
158
120
|
end
|
121
|
+
super
|
159
122
|
end
|
160
|
-
|
123
|
+
|
124
|
+
def old_password ; nil ; end
|
125
|
+
|
126
|
+
def full_name ; [ firstname, lastname ] * " " ; end
|
127
|
+
alias :to_s :full_name
|
128
|
+
|
129
|
+
|
130
|
+
protected
|
131
|
+
|
161
132
|
end
|
162
|
-
|
133
|
+
|
134
|
+
|
135
|
+
class Profile < ActiveRecord::Base
|
136
|
+
validates_presence_of :name
|
137
|
+
validates_uniqueness_of :name
|
138
|
+
|
139
|
+
has_many :users, :class_name => 'Opensteam::UserBase::User'
|
140
|
+
|
141
|
+
end
|
142
|
+
|
143
|
+
|
163
144
|
end
|
164
145
|
|
165
|
-
end
|
146
|
+
end
|
147
|
+
|
148
|
+
User = Opensteam::UserBase::User
|
149
|
+
|
data/lib/opensteam/version.rb
CHANGED
@@ -1,8 +1,24 @@
|
|
1
|
+
# openSteam - http://www.opensteam.net
|
2
|
+
# Copyright (C) 2008 DiamondDogs Webconsulting
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation; version 2 of the License.
|
7
|
+
#
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
16
|
+
|
1
17
|
module Opensteam #:nodoc:
|
2
18
|
module VERSION #:nodoc:
|
3
19
|
MAJOR = 0
|
4
20
|
MINOR = 9
|
5
|
-
TINY =
|
21
|
+
TINY = 1
|
6
22
|
|
7
23
|
STRING = [MAJOR, MINOR, TINY].join('.')
|
8
24
|
end
|
data/lib/opensteam.rb
CHANGED
@@ -1,49 +1,44 @@
|
|
1
|
+
# openSteam - http://www.opensteam.net
|
2
|
+
# Copyright (C) 2008 DiamondDogs Webconsulting
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation; version 2 of the License.
|
7
|
+
#
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
16
|
+
|
1
17
|
require 'active_record'
|
2
18
|
|
3
19
|
module Opensteam #:nodoc:
|
4
20
|
|
5
|
-
def self._logger(args)
|
6
|
-
logger = ( defined? RAILS_DEFAULT_LOGGER) ? RAILS_DEFAULT_LOGGER : Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log")
|
7
|
-
logger.info "** [openSteam] #{args}"
|
8
|
-
end
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
# load controller specific modules and the inventory_base modules
|
14
|
-
def self.load_opensteam_controller
|
15
|
-
require 'opensteam/user_base'
|
16
|
-
require 'opensteam/shopping_cart'
|
17
|
-
require 'opensteam/checkout'
|
18
|
-
require 'opensteam/inventory_base'
|
19
|
-
|
20
|
-
Opensteam._logger "loaded!"
|
21
|
-
end
|
21
|
+
def self._logger(*args) ; Opensteam::Initializer._logger( *args ) ; end
|
22
22
|
|
23
23
|
|
24
24
|
end
|
25
25
|
|
26
|
+
require 'opensteam/initializer'
|
26
27
|
|
27
|
-
|
28
|
-
|
28
|
+
Opensteam::Initializer.run do |config|
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
Order = Opensteam::OrderBase::Order
|
34
|
+
Invoice = Opensteam::InvoiceBase::Invoice
|
35
|
+
Shipment = Opensteam::ShipmentBase::Shipment
|
36
|
+
|
37
|
+
OrderStates = Opensteam::OrderBase::States
|
38
|
+
InvoiceStates = Opensteam::InvoiceBase::States
|
39
|
+
ShipmentStates = Opensteam::ShipmentBase::States
|
29
40
|
|
30
|
-
require 'opensteam/config'
|
31
|
-
require 'opensteam/finder'
|
32
|
-
require 'opensteam/product_base'
|
33
|
-
require 'opensteam/property_base'
|
34
|
-
require 'opensteam/base'
|
35
|
-
require 'opensteam/order_base'
|
36
41
|
|
37
42
|
|
38
|
-
# extend ActiveRecord with the "opensteam" method
|
39
|
-
ActiveRecord::Base.send(:include, Opensteam::Base::Extension )
|
40
43
|
|
41
|
-
Dir.glob("#{RAILS_ROOT}/app/models/*.rb").collect { |f| require f }
|
42
44
|
|
43
|
-
class Rails::Initializer #:nodoc:
|
44
|
-
def after_initialize_with_load_opensteam_controller
|
45
|
-
after_initialize_without_load_opensteam_controller
|
46
|
-
Opensteam.load_opensteam_controller
|
47
|
-
end
|
48
|
-
alias_method_chain :after_initialize, :load_opensteam_controller
|
49
|
-
end
|