smartshack_simple_login 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 33532189d8c466fddd30da716aafdaabcbf88079
4
- data.tar.gz: 3de49bc6e9c11229bee49d15c94ec46a5531c33a
3
+ metadata.gz: 23087f208fe2c5d0c245699e792392a73f44ce49
4
+ data.tar.gz: 058bd4ba3a425f684f2d4c30ffa2bec2c3a059da
5
5
  SHA512:
6
- metadata.gz: 7aa69f11eeda2e07d6731b714730a3ad0f6e1f0ccbb7c7fd6451085527a7ef095005a83692e38b9c9d8eee6acfcfcbfa60869918565063cb1ec2ad6d53d68fe0
7
- data.tar.gz: af1529144f916a719145ded6a5275963522b1533657e83eaa54d2dcd9f0e32ae1f52a50d893ce056db786cc9cfea3f1530f6a73a519c7285154581a57599a8ac
6
+ metadata.gz: 3cdc9467697973b41c4b7c512698ab92e46e5b55bcd6120c4fc33a4a0fd097c78a2e4815c95922b998909bfa914870e1f2a58652549c41d69df132894792e0a1
7
+ data.tar.gz: bd6fb14a20f5bc0e57196d7668f4296b01d8ab44da9e18669a2d8fe157b77f7fcc19dbfd4f241e27ffba8d2451577a26db594aa175cfd1c7a844182c84815f7b
data/lib/.txt ADDED
File without changes
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,11 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def change
3
+
4
+ create_table :users do |t|
5
+ t.string :email
6
+ t.string :password_digest
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ 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,5 @@
1
+ class User < ActiveRecord::Base
2
+ has_secure_password
3
+ validates_uniqueness_of :email
4
+ include PasswordReset
5
+ end
@@ -0,0 +1,6 @@
1
+ <%= form_tag password_resets_path, :method => :post do %>
2
+ <%= hidden_field_tag :type, "set" %>
3
+ <%= hidden_field_tag :email, email %>
4
+
5
+ <div class="actions"><%= submit_tag "Reset hasła", class: "button" %></div>
6
+ <% 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,8 @@
1
+ <h1>Reset hasła</h1>
2
+ <%= form_tag password_resets_path, :method => :post do %>
3
+ <div class="field">
4
+ <%= label_tag :email %>
5
+ <%= text_field_tag :email, params[:email] %>
6
+ </div>
7
+ <div class="actions"><%= submit_tag "Reset hasła" %></div>
8
+ <% 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 %>
@@ -0,0 +1,5 @@
1
+ Aby zresetować hasło kliknij poniższy link
2
+
3
+ <%= edit_password_reset_url(@user.password_reset_token) %>
4
+
5
+ Jeśli otrzymałeś ten email przez pomyłkę po prostu go zignoruj!
@@ -0,0 +1,5 @@
1
+ Aby wejść na stronę i ustawić sobie hasło kliknij poniższy link
2
+
3
+ <%= edit_password_reset_url(@user.password_reset_token,first: true) %>
4
+
5
+ Jeśli otrzymałeś ten email przez pomyłkę po prostu go zignoruj!
@@ -0,0 +1,6 @@
1
+ <%= simple_form_for @user do |f| %>
2
+ <%= f.input :email %>
3
+ <%= f.input :password,label: "Hasło" %>
4
+ <%= f.input :password_confirmation, label: "Powtórz hasło" %>
5
+ <%= f.button :submit, "Zapisz" %>
6
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Edycja użytkownika</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Pokaż', @user %> |
6
+ <%= link_to 'Powrót', users_path %>
@@ -0,0 +1,13 @@
1
+ <h1>Użytkownicy</h1>
2
+ <table>
3
+ <tr>
4
+ <th>email</th>
5
+ </tr>
6
+ <%@users.each do |u|%>
7
+ <tr>
8
+ <td><%= link_to u.email, u %></td>
9
+ </tr>
10
+ <% end%>
11
+ </table>
12
+ <br />
13
+ <%= link_to "Dodaj użytkownika", signup_path %>
@@ -0,0 +1,2 @@
1
+ <h1>Sign Up</h1>
2
+ <%= render "form"%>
@@ -0,0 +1,2 @@
1
+ <%= @user.name%>
2
+ <%= @user.email%>
@@ -1,3 +1,3 @@
1
1
  module SimpleLogin
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
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.2
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