Browse Source

Use form_for, stub login logic

Maarten van den Berg 8 years ago
parent
commit
08f548241f

+ 13 - 1
app/controllers/authentication_controller.rb

@@ -4,7 +4,19 @@ class AuthenticationController < ApplicationController
4 4
   end
5 5
 
6 6
   def login
7
-    flash[:danger] = "Not yet implemented."
7
+    if params[:session][:email].blank? || params[:session][:password].blank?
8
+      flash[:warning] = "You forgot to add value"
9
+    else
10
+      u = User.find_by(email: params[:session][:email])
11
+
12
+      if u && u.authenticate(params[:session][:password])
13
+        # TODO Login logic here
14
+        flash[:success] = "Hello, #{u.person.full_name}!"
15
+      else
16
+        flash[:danger] = "Invalid username/password combination!"
17
+      end
18
+    end
19
+
8 20
     redirect_to action: 'login_form'
9 21
   end
10 22
 

+ 3 - 3
app/views/authentication/create_password_form.html.haml

@@ -3,14 +3,14 @@
3 3
 
4 4
 .container
5 5
   = render 'shared/alerts'
6
-  = form_tag '/register', method: 'post', class: 'central-form' do
6
+  = form_for :user, url: '/register', html: {class: 'central-form'} do |f|
7 7
     %h2.central-form-header.text-center
8 8
       Create password
9 9
     %p
10 10
       Creating an account requires that you have been registered beforehand by an administrator. Contact someone if your email address is not recognized.
11 11
 
12
-    = email_field_tag :email, '', placeholder: 'Email address', class: 'form-control input-only'
13
-    = submit_tag "Send email", class: 'btn btn-primary btn-lg btn-block'
12
+    = f.email_field :email, placeholder: 'Email address', class: 'form-control input-only'
13
+    = f.submit "Send email", class: 'btn btn-primary btn-lg btn-block'
14 14
 
15 15
   .central-form
16 16
     %ul.hdis

+ 3 - 3
app/views/authentication/forgotten_password_form.html.haml

@@ -2,12 +2,12 @@
2 2
   Forgot password
3 3
 .container
4 4
   = render 'shared/alerts'
5
-  = form_tag '/forgot', method: 'post', class:'central-form' do
5
+  = form_for :password_reset, url: '/forgot', html: {class:'central-form'} do |f|
6 6
     %h2.central-form-header.text-center
7 7
       Forgot password
8 8
 
9
-    = email_field_tag :email, '', placeholder: "Email address", class: 'form-control input-only'
10
-    = submit_tag "Send email", class: 'btn btn-primary btn-lg btn-block'
9
+    = f.email_field :email, placeholder: "Email address", class: 'form-control input-only'
10
+    = f.submit "Send email", class: 'btn btn-primary btn-lg btn-block'
11 11
 
12 12
   .central-form
13 13
     %ul.hdis

+ 5 - 5
app/views/authentication/login_form.html.haml

@@ -3,19 +3,19 @@
3 3
 
4 4
 .container
5 5
   = render 'shared/alerts'
6
-  = form_tag("/login", method: "post", class: "central-form") do
6
+  = form_for :session, url: "/login", html: { class: "central-form"} do |f|
7 7
     %h2.central-form-header.text-center
8 8
       Please sign in
9 9
 
10
-    = email_field_tag(:email, '', placeholder: 'Email address', class: 'form-control input-top')
11
-    = password_field_tag(:password, '', placeholder: 'Password', class: 'form-control input-bottom')
10
+    = f.email_field(:email, placeholder: 'Email address', class: 'form-control input-top')
11
+    = f.password_field(:password, placeholder: 'Password', class: 'form-control input-bottom')
12 12
 
13 13
     .checkbox
14 14
       %label
15
-        = check_box_tag(:remember_me)
15
+        = f.check_box(:remember_me)
16 16
         Remember me
17 17
 
18
-    = submit_tag("Sign in", class: "btn btn-primary btn-lg btn-block")
18
+    = f.submit("Sign in", class: "btn btn-primary btn-lg btn-block")
19 19
 
20 20
   .central-form
21 21
     %ul.hdis