Commit 8ae5ab7b

mo <mo.khan@gmail.com>
2017-09-09 03:13:29
username -> email
1 parent a26735d
Changed files (10)
app
assets
javascripts
controllers
views
config
locales
spec
app/assets/javascripts/models/session.js.coffee
@@ -2,16 +2,16 @@ class CakeSide.Models.Session extends Backbone.Model
   EMAIL_REGEX=/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/
   modelKey: 'session'
   defaults:
-    username: null
+    email: null
     password: null
 
-  requiredFields: ['username', 'password']
+  requiredFields: ['email', 'password']
 
   validate: (attributes, options) ->
     errors = {}
 
-    if !EMAIL_REGEX.test(attributes.username)
-      errors['username'] = @errorFor('username', 'invalid')
+    if !EMAIL_REGEX.test(attributes.email)
+      errors['email'] = @errorFor('email', 'invalid')
 
     _.each @requiredFields, (field) =>
       if _.isEmpty(attributes[field])
app/assets/javascripts/views/sessions/login_form.js.coffee
@@ -15,7 +15,7 @@ class CakeSide.Views.LoginForm extends CakeSide.AutoView
     @renderErrors(@model.validationError)
 
   onInput: (event) ->
-    @model.set('username', @field('username').val())
+    @model.set('email', @field('email').val())
     @model.set('password', @field('password').val())
     @$('input[type=submit]').prop('disabled', !@model.isValid())
     @render()
app/controllers/sessions_controller.rb
@@ -5,7 +5,7 @@ class SessionsController < ApplicationController
   end
 
   def create
-    if @session = User.login(session_params[:username], session_params[:password])
+    if @session = User.login(session_params[:email], session_params[:password])
       reset_session
       session[:raphael] = @session.access(request)
       redirect_to my_dashboard_path
@@ -24,6 +24,6 @@ class SessionsController < ApplicationController
   private
 
   def session_params
-    params.require(:session).permit(:username, :password)
+    params.require(:session).permit(:email, :password)
   end
 end
app/views/sessions/new.html.erb
@@ -28,7 +28,7 @@
       <%= form_for(@session, url: sessions_path(@session), html: { class: "form-horizontal needs-validation", novalidate: :novalidate }) do |f| %>
         <legend>Got an account? Login!</legend>
         <div class="form-group">
-          <%= email_field_tag 'session[username]', '', placeholder: 'Email', class: "form-control", required: :required %>
+          <%= email_field_tag 'session[email]', '', placeholder: 'Email', class: "form-control", required: :required %>
           <div class="invalid-feedback"></div>
         </div>
         <div class="form-group">
config/locales/en.yml
@@ -23,5 +23,5 @@ en:
   activerecord:
     attributes:
       session:
-        username: 'Email'
+        email: 'Email'
         password: 'Password'
spec/controllers/sessions_controller_spec.rb
@@ -23,14 +23,14 @@ describe SessionsController do
   end
 
   describe "#create" do
-    context "when the username and password is correct" do
+    context "when the email and password is correct" do
       let(:user_session) { build(:user_session, id: SecureRandom.uuid) }
-      let(:username) { "joe" }
+      let(:email) { "joe" }
       let(:password) { "password" }
 
       before :each do
-        allow(User).to receive(:login).with(username, password).and_return(user_session)
-        post :create, session: { username: username, password: password }
+        allow(User).to receive(:login).with(email, password).and_return(user_session)
+        post :create, session: { email: email, password: password }
       end
 
       it "returns a valid session" do
@@ -42,13 +42,13 @@ describe SessionsController do
       end
     end
 
-    context "when the username is not known" do
+    context "when the email is not known" do
       before :each do
         allow(User).to receive(:login).and_return(nil)
       end
 
       it "returns an error" do
-        post :create, session: { username: 'x', password: 'y' }
+        post :create, session: { email: 'x', password: 'y' }
         expect(response).to redirect_to(login_path)
         expect(flash[:error]).to_not be_empty
       end
spec/features/upload_creation_spec.rb
@@ -8,7 +8,7 @@ describe "uploading a new creation", :js => true do
   before :each do
     visit login_path
     within('.form-inline') do
-      fill_in('session_username', with: user.email)
+      fill_in('session_email', with: user.email)
       fill_in('session_password', with: "password")
     end
     click_button("Sign In")
spec/javascripts/models/session_spec.js.coffee
@@ -8,14 +8,14 @@ describe "CakeSide.Models.Session", ->
     expectedError = "Email can't be blank"
 
     expect(subject.isValid()).toEqual(false)
-    expect(subject.validationError['username']).toEqual(expectedError)
+    expect(subject.validationError['email']).toEqual(expectedError)
 
   it "is invalid, when the email is not a valid email addrees", ->
-    subject.set('username', 'blah')
+    subject.set('email', 'blah')
     expectedError = "Email is invalid"
 
     expect(subject.isValid()).toEqual(false)
-    expect(subject.validationError['username']).toEqual(expectedError)
+    expect(subject.validationError['email']).toEqual(expectedError)
 
   it "is invalid, when the password is missing", ->
     expectedError = "Password can't be blank"
@@ -24,7 +24,7 @@ describe "CakeSide.Models.Session", ->
     expect(subject.validationError['password']).toEqual(expectedError)
 
   it "is valid", ->
-    subject.set('username', 'test@example.com')
+    subject.set('email', 'test@example.com')
     subject.set('password', 'password')
     expect(subject.isValid()).toEqual(true)
     expect(subject.validationError).toEqual(null)
spec/javascripts/views/sessions/login_form_spec.js.coffee
@@ -8,7 +8,7 @@ describe "CakeSide.Views.LoginForm", ->
     <input name="utf8" type="hidden" value="✓">
     <input type="hidden" name="authenticity_token" value="NUk9vz3sVMzi09PgQrzOTDcJIki2RgCzHgtpFw0ooSha4lgMt/bUsuAk//Wvi7wb/K6qh+pVrDkKr5a5e66QTw==">
     <div class="form-group">
-      <input type="email" name="session[username]" id="session_username" value="" placeholder="Email" class="form-control" required="required">
+      <input type="email" name="session[email]" id="session_email" value="" placeholder="Email" class="form-control" required="required">
       <div class="invalid-feedback"></div>
     </div>
     <div class="form-group">
@@ -28,19 +28,19 @@ describe "CakeSide.Views.LoginForm", ->
     subject.$('form').submit()
 
     expect(subject.$('input[type=submit]').prop('disabled')).toEqual(true)
-    expect(subject.field('username').siblings('.invalid-feedback').html()).toEqual("Email can't be blank")
+    expect(subject.field('email').siblings('.invalid-feedback').html()).toEqual("Email can't be blank")
 
   it "disables the submit button when the password is missing", ->
-    subject.field('username').val('user@email.com')
+    subject.field('email').val('user@email.com')
     subject.$('form').submit()
 
     expect(subject.$('input[type=submit]').prop('disabled')).toEqual(true)
     expect(subject.field("password").siblings('.invalid-feedback').html()).toEqual("Password can't be blank")
 
   it "enables the submit button when all required fields are specified", ->
-    subject.field('username').val('user@email.com').change()
+    subject.field('email').val('user@email.com').change()
     subject.field('password').val('password').change()
 
     expect(subject.$('input[type=submit]').prop('disabled')).toEqual(false)
-    expect(subject.field('username').siblings('.invalid-feedback').html()).toEqual('')
+    expect(subject.field('email').siblings('.invalid-feedback').html()).toEqual('')
     expect(subject.field('password').siblings('.invalid-feedback').html()).toEqual('')
spec/support/pages/login_page.rb
@@ -7,7 +7,7 @@ class LoginPage < WebPage
 
   def login_with(email:, password: "password")
     within("#new_user_session") do
-      fill_in("session_username", with: email)
+      fill_in("session_email", with: email)
       fill_in("session_password", with: password)
     end
     click_button(I18n.t('sessions.new.sign_in'))