yaag 0.3.0 → 0.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9574bdab53be3c4f08a3b5d53a94c13c4112250d508a285ca15a0d2d92eadecb
4
- data.tar.gz: '0396903f2a8a2f9995e9cfeedb97714fc712bf91db65f0485bfa9bb81f4f6a75'
3
+ metadata.gz: 18c1b6d3d23b55ad72cad5da0351887ef2342ef4ebeb98a58fd9866315e96a25
4
+ data.tar.gz: eedaef3e610a375ca2ab348f88883ac2205e0ba8c9984f029739755071637d70
5
5
  SHA512:
6
- metadata.gz: 4250c7ab8385ebd4ae19737ad206f5cc7ec4fb24708f88cb50fd44d7b176ed55983028b862580710bb933995bc35366b7470b5fa3669b9a0c132befcb2ef4567
7
- data.tar.gz: 4e28c123f2295fe0933b2324ce6add25cd64548570bd0e4434f9ee84fcfb1c148b198e2768b1a1092b268c77c7f211ccaf926e38864b3e2e686473b26204f440
6
+ metadata.gz: 0a0eb30c69ce82211abbcf60cd54799e51ca9faadf06919d00e362eadb9e881c35a372674d74d306f112d76afc6daf9152042e3a972f38d74cf4e6ec359a83d7
7
+ data.tar.gz: 8653b74715e0ef3ccd4075182ff111b18f11dcf089804c0d736b74b2340926ce5455b14f58cba127b19d71916e5ce1db20ca73ef5bac9a055cd991266fab8e44
data/README.md CHANGED
@@ -76,6 +76,12 @@ For controllers (including concerns):
76
76
  rails g authentication:copy:controllers
77
77
  ```
78
78
 
79
+ For channels (application_cable/connection.rb):
80
+
81
+ ```bash
82
+ rails g authentication:copy:channels
83
+ ```
84
+
79
85
  For mailers:
80
86
 
81
87
  ```bash
@@ -88,6 +94,8 @@ For models:
88
94
  rails g authentication:copy:models
89
95
  ```
90
96
 
97
+ Note: some generators may copy several files into the application folder, it's safe to delete the ones that don't require modification.
98
+
91
99
  ### Test helper
92
100
 
93
101
  To be able to perform tasks as an authenticated user, a helper is available to be used in tests. Add `include Yaag::Test::SessionsHelper` to your test class to access the methods `sign_in_as` and `sign_out`:
@@ -0,0 +1,16 @@
1
+ module ApplicationCable
2
+ class Connection < ActionCable::Connection::Base
3
+ identified_by :current_user
4
+
5
+ def connect
6
+ set_current_user || reject_unauthorized_connection
7
+ end
8
+
9
+ private
10
+ def set_current_user
11
+ if session = Session.find_by(id: cookies.signed[:session_id])
12
+ self.current_user = session.user
13
+ end
14
+ end
15
+ end
16
+ end
data/app/models/user.rb CHANGED
@@ -1,7 +1,3 @@
1
1
  class User < ApplicationRecord
2
2
  include Yaag::PasswordlessLogin
3
- has_passwordless_login
4
- has_many :sessions, dependent: :destroy
5
-
6
- normalizes :email_address, with: ->(e) { e.strip.downcase }
7
3
  end
@@ -0,0 +1,11 @@
1
+ module Authentication
2
+ module Copy
3
+ class ChannelsGenerator < Rails::Generators::Base
4
+ source_root File.expand_path("../../../../", __dir__)
5
+
6
+ def copy_channels
7
+ copy_file "app/channels/application_cable/connection.rb"
8
+ end
9
+ end
10
+ end
11
+ end
data/lib/yaag/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yaag
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
data/lib/yaag.rb CHANGED
@@ -9,6 +9,12 @@ module Yaag
9
9
  module PasswordlessLogin
10
10
  extend ActiveSupport::Concern
11
11
 
12
+ included do
13
+ has_passwordless_login
14
+ has_many :sessions, dependent: :destroy
15
+ normalizes :email_address, with: ->(e) { e.strip.downcase }
16
+ end
17
+
12
18
  DEFAULT_LOGIN_TOKEN_EXPIRES_IN = 15.minutes
13
19
 
14
20
  class << self
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nu12
@@ -21,6 +21,7 @@ files:
21
21
  - MIT-LICENSE
22
22
  - README.md
23
23
  - Rakefile
24
+ - app/channels/application_cable/connection.rb
24
25
  - app/controllers/concerns/authentication.rb
25
26
  - app/controllers/sessions_controller.rb
26
27
  - app/controllers/signins_controller.rb
@@ -37,6 +38,7 @@ files:
37
38
  - db/migrate/20260108164812_create_users.rb
38
39
  - db/migrate/20260108165215_create_sessions.rb
39
40
  - lib/generators/authentication/USAGE
41
+ - lib/generators/authentication/copy/channels_generator.rb
40
42
  - lib/generators/authentication/copy/controllers_generator.rb
41
43
  - lib/generators/authentication/copy/mailers_generator.rb
42
44
  - lib/generators/authentication/copy/models_generator.rb