app/controllers/plugins/ecommerce/front_controller.rb in camaleon_ecommerce-0.0.4 vs app/controllers/plugins/ecommerce/front_controller.rb in camaleon_ecommerce-1.1

- old
+ new

@@ -5,14 +5,53 @@ This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License (GPLv3) for more details. =end class Plugins::Ecommerce::FrontController < CamaleonCms::Apps::PluginsFrontController + include Plugins::Ecommerce::EcommercePaymentHelper before_action :ecommerce_add_assets_in_front - def index - # here your actions for frontend module + before_action :save_cache_redirect, only: [:login, :register] + def login + @user ||= current_site.users.new + render 'login' end - def product + def do_login + if login_user_with_password(params[:username], params[:password]) + login_user(@user, false, (cookies[:return_to] || plugins_ecommerce_orders_path)) + return cookies.delete(:return_to) + else + flash[:error] = t('plugins.ecommerce.messages.invalid_access', default: 'Invalid access') + return login + end + end + def register + params[:kind_form] = 'register-form' + @user ||= current_site.users.new + render 'login' + end + + def do_register + @user = current_site.users.new(params.require(:camaleon_cms_user).permit(:first_name, :last_name, :username, :email, :password, :password_confirmation)) + if @user.save + flash[:notice] = t('plugins.ecommerce.messages.created_account', default: "Account created successfully") + login_user(@user, false, (cookies[:return_to] || plugins_ecommerce_orders_path)) + return cookies.delete(:return_to) + else + return register + end + end + + private + def save_cache_redirect + cookies[:return_to] = params[:return_to] if params[:return_to].present? + end + + def commerce_authenticate + unless cama_sign_in? + flash[:error] = t('camaleon_cms.admin.login.please_login') + cookies[:return_to] = request.referer + redirect_to plugins_ecommerce_login_path + end end end