diff --git a/app/controllers/management/base_controller.rb b/app/controllers/management/base_controller.rb index 2a5aba4e6..49a9eaf5d 100644 --- a/app/controllers/management/base_controller.rb +++ b/app/controllers/management/base_controller.rb @@ -1,11 +1,16 @@ class Management::BaseController < ActionController::Base - layout 'admin' + layout 'management' before_action :verify_manager private def verify_manager + raise ActionController::RoutingError.new('Not Found') unless current_manager.present? + end + + def current_manager + @current_manager ||= Manager.find(session["manager_id"]) if session["manager_id"] end end diff --git a/app/controllers/management/sessions_controller.rb b/app/controllers/management/sessions_controller.rb new file mode 100644 index 000000000..47aa3508f --- /dev/null +++ b/app/controllers/management/sessions_controller.rb @@ -0,0 +1,17 @@ +class Management::SessionsController < ActionController::Base + + def create + destroy_session + if manager = Manager.valid_manager(params[:login], params[:clave_usuario]) + session["manager_id"] = manager.id + redirect_to management_root_path + else + raise ActionController::RoutingError.new('Not Found') + end + end + + private + def destroy_session + session["manager_id"] = nil + end +end \ No newline at end of file diff --git a/app/models/manager.rb b/app/models/manager.rb index 1cfc3e545..6dc5cceea 100644 --- a/app/models/manager.rb +++ b/app/models/manager.rb @@ -4,9 +4,9 @@ class Manager < ActiveRecord::Base has_secure_password - def self.valid_auth?(username = nil, password = nil) + def self.valid_manager(username = nil, password = nil) return false unless username.present? && password.present? - Manager.find_by(username: username).try(:authenticate, password).present? + Manager.find_by(username: username).try(:authenticate, password) end end \ No newline at end of file diff --git a/app/views/layouts/management.html.erb b/app/views/layouts/management.html.erb new file mode 100644 index 000000000..431ee27c0 --- /dev/null +++ b/app/views/layouts/management.html.erb @@ -0,0 +1,64 @@ + + + +
+ + + +