Skip to content

Commit

Permalink
Create users
Browse files Browse the repository at this point in the history
  • Loading branch information
hmlON committed Jan 28, 2017
1 parent 86939ea commit 79ca2b2
Show file tree
Hide file tree
Showing 32 changed files with 705 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ Style/Documentation:
- 'app/mailers/application_mailer.rb'
- 'app/models/application_record.rb'
- 'config/application.rb'
- 'db/migrate/*.rb'

Metrics/MethodLength:
Exclude:
- 'db/migrate/*.rb'

Metrics/BlockLength:
Exclude:
Expand Down
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ git_source(:github) do |repo_name|
end

gem 'coffee-rails', '~> 4.2'
gem 'devise'
gem 'jbuilder', '~> 2.5'
gem 'jquery-rails'
gem 'pg', '~> 0.18'
Expand Down
13 changes: 13 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ GEM
descendants_tracker (~> 0.0.4)
ice_nine (~> 0.11.0)
thread_safe (~> 0.3, >= 0.3.1)
bcrypt (3.1.11)
builder (3.2.3)
byebug (9.0.6)
capybara (2.11.0)
Expand Down Expand Up @@ -74,6 +75,12 @@ GEM
debug_inspector (0.0.2)
descendants_tracker (0.0.4)
thread_safe (~> 0.3, >= 0.3.1)
devise (4.2.0)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
responders
warden (~> 1.2.3)
diff-lcs (1.3)
docile (1.1.5)
equalizer (0.0.11)
Expand Down Expand Up @@ -138,6 +145,7 @@ GEM
notiffany (0.1.1)
nenv (~> 0.1)
shellany (~> 0.0)
orm_adapter (0.5.0)
parser (2.3.3.1)
ast (~> 2.2)
pg (0.19.0)
Expand Down Expand Up @@ -183,6 +191,8 @@ GEM
codeclimate-engine-rb (~> 0.4.0)
parser (~> 2.3.1, >= 2.3.1.2)
rainbow (~> 2.0)
responders (2.3.0)
railties (>= 4.2.0, < 5.1)
rspec (3.5.0)
rspec-core (~> 3.5.0)
rspec-expectations (~> 3.5.0)
Expand Down Expand Up @@ -268,6 +278,8 @@ GEM
coercible (~> 1.0)
descendants_tracker (~> 0.0, >= 0.0.3)
equalizer (~> 0.0, >= 0.0.9)
warden (1.2.6)
rack (>= 1.0)
web-console (3.4.0)
actionview (>= 5.0)
activemodel (>= 5.0)
Expand All @@ -288,6 +300,7 @@ DEPENDENCIES
capybara
coffee-rails (~> 4.2)
database_cleaner
devise
factory_girl_rails
faker
guard-rspec
Expand Down
8 changes: 8 additions & 0 deletions app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?

protect_from_forgery with: :exception

protected

def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
end
end
6 changes: 6 additions & 0 deletions app/models/user.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# User is a preson, who lives in a hostel room
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates :name, presence: true
end
11 changes: 11 additions & 0 deletions app/views/devise/confirmations/new.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
h2
| Resend confirmation instructions
= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f|
= devise_error_messages!
.field
= f.label :email
br
= f.email_field :email, autofocus: true, value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email)
.actions
= f.submit "Resend confirmation instructions"
= render "devise/shared/links"
8 changes: 8 additions & 0 deletions app/views/devise/mailer/confirmation_instructions.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
p
| Welcome
= @email
| !
p
| You can confirm your account email through the link below:
p
= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token)
6 changes: 6 additions & 0 deletions app/views/devise/mailer/password_change.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
p
| Hello
= @resource.email
| !
p
| We're contacting you to notify you that your password has been changed.
12 changes: 12 additions & 0 deletions app/views/devise/mailer/reset_password_instructions.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
p
| Hello
= @resource.email
| !
p
| Someone has requested a link to change your password. You can do this through the link below.
p
= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token)
p
| If you didn't request this, please ignore this email.
p
| Your password won't change until you access the link above and create a new one.
10 changes: 10 additions & 0 deletions app/views/devise/mailer/unlock_instructions.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
p
| Hello
= @resource.email
| !
p
| Your account has been locked due to an excessive number of unsuccessful sign in attempts.
p
| Click the link below to unlock your account:
p
= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token)
22 changes: 22 additions & 0 deletions app/views/devise/passwords/edit.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
h2
| Change your password
= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f|
= devise_error_messages!
= f.hidden_field :reset_password_token
.field
= f.label :password, "New password"
br
- if @minimum_password_length
em
| (
= @minimum_password_length
| characters minimum)
br
= f.password_field :password, autofocus: true, autocomplete: "off"
.field
= f.label :password_confirmation, "Confirm new password"
br
= f.password_field :password_confirmation, autocomplete: "off"
.actions
= f.submit "Change my password"
= render "devise/shared/links"
11 changes: 11 additions & 0 deletions app/views/devise/passwords/new.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
h2
| Forgot your password?
= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f|
= devise_error_messages!
.field
= f.label :email
br
= f.email_field :email, autofocus: true
.actions
= f.submit "Send me reset password instructions"
= render "devise/shared/links"
42 changes: 42 additions & 0 deletions app/views/devise/registrations/edit.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
h2
| Edit
= resource_name.to_s.humanize
= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f|
= devise_error_messages!
.field
= f.label :email
br
= f.email_field :email, autofocus: true
- if devise_mapping.confirmable? && resource.pending_reconfirmation?
div
| Currently waiting confirmation for:
= resource.unconfirmed_email
.field
= f.label :password
i
| (leave blank if you don't want to change it)
br
= f.password_field :password, autocomplete: "off"
- if @minimum_password_length
br
em
= @minimum_password_length
| characters minimum
.field
= f.label :password_confirmation
br
= f.password_field :password_confirmation, autocomplete: "off"
.field
= f.label :current_password
i
| (we need your current password to confirm your changes)
br
= f.password_field :current_password, autocomplete: "off"
.actions
= f.submit "Update"
h3
| Cancel my account
p
| Unhappy?
= button_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete
= link_to "Back", :back
23 changes: 23 additions & 0 deletions app/views/devise/registrations/new.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
h2 Sign up
= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
= devise_error_messages!
.field
= f.label :name
br
= f.email_field :name, autofocus: true
.field
= f.label :email
br
= f.email_field :email
.field
= f.label :password
- if @minimum_password_length
em
| (
= @minimum_password_length
| characters minimum)
br
= f.password_field :password, autocomplete: "off"
.actions
= f.submit "Sign up"
= render "devise/shared/links"
18 changes: 18 additions & 0 deletions app/views/devise/sessions/new.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
h2
| Sign in
= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
.field
= f.label :email
br
= f.email_field :email, autofocus: true
.field
= f.label :password
br
= f.password_field :password, autocomplete: "off"
- if devise_mapping.rememberable?
.field
= f.check_box :remember_me
= f.label :remember_me
.actions
= f.submit "Sign in"
= render "devise/shared/links"
19 changes: 19 additions & 0 deletions app/views/devise/shared/_links.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
- if controller_name != 'sessions'
= link_to "Sign in", new_session_path(resource_name)
br
- if devise_mapping.registerable? && controller_name != 'registrations'
= link_to "Sign up", new_registration_path(resource_name)
br
- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations'
= link_to "Forgot your password?", new_password_path(resource_name)
br
- if devise_mapping.confirmable? && controller_name != 'confirmations'
= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name)
br
- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name)
br
- if devise_mapping.omniauthable?
- resource_class.omniauth_providers.each do |provider|
= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider)
br
11 changes: 11 additions & 0 deletions app/views/devise/unlocks/new.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
h2
| Resend unlock instructions
= form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f|
= devise_error_messages!
.field
= f.label :email
br
= f.email_field :email, autofocus: true
.actions
= f.submit "Resend unlock instructions"
= render "devise/shared/links"
8 changes: 8 additions & 0 deletions app/views/layouts/_header.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
header
nav
ul
- unless user_signed_in?
li = link_to 'Sign up', new_user_registration_path
li = link_to 'Sign in', new_user_session_path
- else
li = link_to 'Sign out', destroy_user_session_path, method: :delete
5 changes: 5 additions & 0 deletions app/views/layouts/_notifications.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.notifications
- flash.each do |key, value|
div class="alert alert-#{key}"
= value
a.close[href="#" data-dismiss="alert"] ×
2 changes: 2 additions & 0 deletions app/views/layouts/application.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@ html
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
body
= render 'layouts/header'
= render 'layouts/notifications'
= yield
1 change: 1 addition & 0 deletions config/environments/development.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
config.action_mailer.raise_delivery_errors = false

config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

# Print deprecation notices to the Rails logger.
config.active_support.deprecation = :log
Expand Down
Loading

0 comments on commit 79ca2b2

Please sign in to comment.