smartshack_simple_login 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/.txt +0 -0
- data/lib/generators/.txt +0 -0
- data/lib/generators/simple_login/simple_login_generator.rb +56 -0
- data/lib/generators/templates/controllers/password_resets_controller.rb +38 -0
- data/lib/generators/templates/controllers/sessions_controller.rb +25 -0
- data/lib/generators/templates/controllers/users_controller.rb +59 -0
- data/lib/generators/templates/create_users.rb +11 -0
- data/lib/generators/templates/mailers/user_mailer.rb +19 -0
- data/lib/generators/templates/models/concerns/password_reset.rb +24 -0
- data/lib/generators/templates/models/user.rb +5 -0
- data/lib/generators/templates/views/password_resets/_form.html.erb +6 -0
- data/lib/generators/templates/views/password_resets/edit.html.erb +23 -0
- data/lib/generators/templates/views/password_resets/new.html.erb +8 -0
- data/lib/generators/templates/views/sessions/new.html.erb +17 -0
- data/lib/generators/templates/views/user_mailer/password_reset.text.erb +5 -0
- data/lib/generators/templates/views/user_mailer/password_set.text.erb +5 -0
- data/lib/generators/templates/views/users/_form.html.erb +6 -0
- data/lib/generators/templates/views/users/edit.html.erb +6 -0
- data/lib/generators/templates/views/users/index.html.erb +13 -0
- data/lib/generators/templates/views/users/new.html.erb +2 -0
- data/lib/generators/templates/views/users/show.html.erb +2 -0
- data/lib/simple_login/version.rb +1 -1
- metadata +22 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23087f208fe2c5d0c245699e792392a73f44ce49
|
4
|
+
data.tar.gz: 058bd4ba3a425f684f2d4c30ffa2bec2c3a059da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cdc9467697973b41c4b7c512698ab92e46e5b55bcd6120c4fc33a4a0fd097c78a2e4815c95922b998909bfa914870e1f2a58652549c41d69df132894792e0a1
|
7
|
+
data.tar.gz: bd6fb14a20f5bc0e57196d7668f4296b01d8ab44da9e18669a2d8fe157b77f7fcc19dbfd4f241e27ffba8d2451577a26db594aa175cfd1c7a844182c84815f7b
|
data/lib/.txt
ADDED
File without changes
|
data/lib/generators/.txt
ADDED
File without changes
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module SimpleLogin
|
2
|
+
module Generators
|
3
|
+
class SimpleLoginGenerator < Rails::Generators::NamedBase
|
4
|
+
source_root File.expand_path("../../templates", __FILE__)
|
5
|
+
|
6
|
+
def controllers
|
7
|
+
template 'controllers/users_controller.rb', 'app/controllers/users_controller.rb'
|
8
|
+
template 'controllers/password_resets_controller.rb', 'app/controllers/password_resets_controller.rb'
|
9
|
+
template 'controllers/sessions_controller.rb', 'app/controllers/sessions_controller.rb'
|
10
|
+
end
|
11
|
+
|
12
|
+
def mailers
|
13
|
+
template 'mailers/user_mailer.rb', 'app/mailers/user_mailer.rb'
|
14
|
+
end
|
15
|
+
def models
|
16
|
+
template 'models/user.rb', 'app/models/user.rb'
|
17
|
+
template 'models/concerns/password_reset.rb', 'app/models/concerns/password_reset.rb'
|
18
|
+
end
|
19
|
+
def views
|
20
|
+
directory 'views' , 'app/views'
|
21
|
+
end
|
22
|
+
|
23
|
+
def migrations
|
24
|
+
template 'create_users.rb', 'db/migrations/create_users.rb'
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
def application
|
29
|
+
inject_into_file 'app/controllers/application_controller.rb', before: "end" do
|
30
|
+
"\n\nprivate\n" +
|
31
|
+
"def current_user\n" +
|
32
|
+
" @current_user ||= User.find(session[:user_id]) if session[:user_id]\n" +
|
33
|
+
"end\n" +
|
34
|
+
"helper_method :current_user\n"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
def add_routes
|
41
|
+
route "get 'signup', to: 'users#new', as: 'signup'"
|
42
|
+
route "get 'login', to: 'sessions#new', as: 'login'"
|
43
|
+
route "get 'logout', to: 'sessions#destroy', as: 'logout'"
|
44
|
+
|
45
|
+
route "resources :users"
|
46
|
+
route "resources :sessions"
|
47
|
+
route "resources :password_resets"
|
48
|
+
end
|
49
|
+
|
50
|
+
def add_gem
|
51
|
+
gem 'bcrypt-ruby', '~> 3.1.2'
|
52
|
+
gem 'simple_form'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class PasswordResetsController < ApplicationController
|
2
|
+
def new
|
3
|
+
end
|
4
|
+
|
5
|
+
def create
|
6
|
+
user = User.find_by_email(params[:email])
|
7
|
+
if user
|
8
|
+
if params[:type]
|
9
|
+
user.send_password_set
|
10
|
+
else
|
11
|
+
user.send_password_reset
|
12
|
+
end
|
13
|
+
redirect_to root_url, notice: "Email został wysłany"
|
14
|
+
else
|
15
|
+
redirect_to root_url, notice: "Email nie istnieje"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def edit
|
20
|
+
@user = User.find_by_password_reset_token!(params[:id])
|
21
|
+
end
|
22
|
+
|
23
|
+
def update
|
24
|
+
@user = User.find_by_password_reset_token!(params[:id])
|
25
|
+
if @user.password_reset_sent_at < 2.hours.ago and @user.password_reset_sent_at != DateTime.new(2000,1,1)
|
26
|
+
redirect_to new_password_reset_path, :notice => "Czas na reset hasła minął."
|
27
|
+
elsif @user.update(user_params)
|
28
|
+
redirect_to root_url, :notice => "Hasło zostało zmienione"
|
29
|
+
else
|
30
|
+
render :edit
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
def user_params
|
36
|
+
params.require(:user).permit(:password,:password_confirmation)
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class SessionsController < ApplicationController
|
2
|
+
def new
|
3
|
+
end
|
4
|
+
|
5
|
+
def create
|
6
|
+
user = User.find_by_email(params[:email])
|
7
|
+
if user && user.authenticate(params[:password])
|
8
|
+
session[:user_id] = user.id
|
9
|
+
redirect_to root_url, notice: "Zalogowano!"
|
10
|
+
else
|
11
|
+
flash.now.alert = "Email lub hasło są nieprawidłowe"
|
12
|
+
render "new"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def destroy
|
17
|
+
session[:user_id] = nil
|
18
|
+
redirect_to root_url, notice: "Wylogowano!"
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def use_https?
|
23
|
+
true
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class UsersController < ApplicationController
|
2
|
+
def new
|
3
|
+
@user = User.new
|
4
|
+
end
|
5
|
+
|
6
|
+
def show
|
7
|
+
@user = User.find(params[:id])
|
8
|
+
end
|
9
|
+
def create
|
10
|
+
@user = User.new(user_params)
|
11
|
+
|
12
|
+
if @user.save
|
13
|
+
redirect_to users_url, notice: "Użytkownik został dodany"
|
14
|
+
else
|
15
|
+
render "new"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
def index
|
21
|
+
@users = User.all
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit
|
25
|
+
@user = User.find(params[:id])
|
26
|
+
end
|
27
|
+
|
28
|
+
def update
|
29
|
+
@user = User.find(params[:id])
|
30
|
+
respond_to do |format|
|
31
|
+
if @user.update(user_params)
|
32
|
+
#śtrack_activity @user
|
33
|
+
format.html { redirect_to users_path, notice: 'Użytkownik zaktualizowany.' }
|
34
|
+
else
|
35
|
+
format.html { render action: "edit" }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
# DELETE /announcements/1
|
42
|
+
# DELETE /announcements/1.json
|
43
|
+
def destroy
|
44
|
+
@user = User.find(params[:id])
|
45
|
+
@user.destroy
|
46
|
+
|
47
|
+
respond_to do |format|
|
48
|
+
format.html { redirect_to users_path, notice: "Usunięto użytkownika" }
|
49
|
+
format.json { head :no_content }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
private
|
55
|
+
def user_params
|
56
|
+
params.require(:user).permit(:email, :password,:password_confirmation)
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class UserMailer < ActionMailer::Base
|
2
|
+
default from: "kontakt@jellyfish.megiteam.pl"
|
3
|
+
|
4
|
+
# Subject can be set in your I18n file at config/locales/en.yml
|
5
|
+
# with the following lookup:
|
6
|
+
#
|
7
|
+
# en.user_mailer.password_reset.subject
|
8
|
+
#
|
9
|
+
def password_reset(user)
|
10
|
+
@user = user
|
11
|
+
mail :to => user.email, :subject => "Reset hasła"
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
def password_set(user)
|
16
|
+
@user = user
|
17
|
+
mail to: user.email, subject: "Ustaweinie hasła"
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module PasswordReset
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
included do
|
4
|
+
def send_password_reset
|
5
|
+
generate_token(:password_reset_token)
|
6
|
+
self.password_reset_sent_at = Time.zone.now
|
7
|
+
save!
|
8
|
+
UserMailer.password_reset(self).deliver
|
9
|
+
end
|
10
|
+
|
11
|
+
def send_password_set
|
12
|
+
generate_token(:password_reset_token)
|
13
|
+
self.password_reset_sent_at = DateTime.new(2000,1,1)
|
14
|
+
save!
|
15
|
+
UserMailer.password_set(self).deliver
|
16
|
+
end
|
17
|
+
|
18
|
+
def generate_token(column)
|
19
|
+
begin
|
20
|
+
self[column] = SecureRandom.urlsafe_base64
|
21
|
+
end while User.exists?(column => self[column])
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<h1>Ustawianie nowego hasła</h1>
|
2
|
+
|
3
|
+
<%= form_for @user, :url => password_reset_path(params[:id]) do |f| %>
|
4
|
+
<% if @user.errors.any? %>
|
5
|
+
<div class="error_messages">
|
6
|
+
<h2>Usuń błędy</h2>
|
7
|
+
<ul>
|
8
|
+
<% for message in @user.errors.full_messages %>
|
9
|
+
<li><%= message %></li>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
<div class="field">
|
15
|
+
<%= f.label :password %>
|
16
|
+
<%= f.password_field :password %>
|
17
|
+
</div>
|
18
|
+
<div class="field">
|
19
|
+
<%= f.label :password_confirmation %>
|
20
|
+
<%= f.password_field :password_confirmation %>
|
21
|
+
</div>
|
22
|
+
<div class="actions"><%= f.submit "Ustaw hasło" %></div>
|
23
|
+
<% end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
<%= form_tag sessions_path do %>
|
3
|
+
<div class="field">
|
4
|
+
<%= label_tag :email %><br />
|
5
|
+
<%= text_field_tag :email, params[:email] %>
|
6
|
+
</div>
|
7
|
+
<div class="field">
|
8
|
+
<%= label_tag :password %><br />
|
9
|
+
<%= password_field_tag :password %>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<div class="actions"><%= submit_tag "Zaloguj"%></div>
|
13
|
+
|
14
|
+
<div class="reset">
|
15
|
+
<%= link_to "Zapomniałem hasła", new_password_reset_path %>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
data/lib/simple_login/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartshack_simple_login
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jerzy czepiel
|
@@ -50,6 +50,27 @@ files:
|
|
50
50
|
- LICENSE.txt
|
51
51
|
- README.md
|
52
52
|
- Rakefile
|
53
|
+
- lib/.txt
|
54
|
+
- lib/generators/.txt
|
55
|
+
- lib/generators/simple_login/simple_login_generator.rb
|
56
|
+
- lib/generators/templates/controllers/password_resets_controller.rb
|
57
|
+
- lib/generators/templates/controllers/sessions_controller.rb
|
58
|
+
- lib/generators/templates/controllers/users_controller.rb
|
59
|
+
- lib/generators/templates/create_users.rb
|
60
|
+
- lib/generators/templates/mailers/user_mailer.rb
|
61
|
+
- lib/generators/templates/models/concerns/password_reset.rb
|
62
|
+
- lib/generators/templates/models/user.rb
|
63
|
+
- lib/generators/templates/views/password_resets/_form.html.erb
|
64
|
+
- lib/generators/templates/views/password_resets/edit.html.erb
|
65
|
+
- lib/generators/templates/views/password_resets/new.html.erb
|
66
|
+
- lib/generators/templates/views/sessions/new.html.erb
|
67
|
+
- lib/generators/templates/views/user_mailer/password_reset.text.erb
|
68
|
+
- lib/generators/templates/views/user_mailer/password_set.text.erb
|
69
|
+
- lib/generators/templates/views/users/_form.html.erb
|
70
|
+
- lib/generators/templates/views/users/edit.html.erb
|
71
|
+
- lib/generators/templates/views/users/index.html.erb
|
72
|
+
- lib/generators/templates/views/users/new.html.erb
|
73
|
+
- lib/generators/templates/views/users/show.html.erb
|
53
74
|
- lib/simple_login.rb
|
54
75
|
- lib/simple_login/version.rb
|
55
76
|
- simple_login.gemspec
|