rails_app_generator 0.2.24 → 0.2.25
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/CHANGELOG.md +7 -0
- data/after_templates/addons/devise/_.rb +0 -27
- data/after_templates/addons/devise/db/seeds.rb +3 -3
- data/after_templates/addons/devise_masquerade/_.rb +36 -0
- data/after_templates/addons/devise_masquerade/app/controllers/application_controller.rb +3 -0
- data/after_templates/addons/devise_masquerade/app/controllers/home_controller.rb +4 -0
- data/after_templates/addons/devise_masquerade/app/controllers/users/masquerades_controller.rb +10 -0
- data/after_templates/addons/devise_masquerade/app/models/user.rb +17 -0
- data/after_templates/addons/devise_masquerade/app/views/home/index.html.erb +66 -0
- data/after_templates/addons/devise_masquerade/app/views/layouts/_footer.html.erb +1 -0
- data/after_templates/addons/devise_masquerade/app/views/layouts/_navbar.html.erb +6 -0
- data/after_templates/addons/devise_masquerade/app/views/layouts/application.html.erb +57 -0
- data/after_templates/addons/devise_masquerade/db/seeds.rb +3 -0
- data/docs/last_run/app_generator_class.json +9 -1
- data/docs/last_run/app_generator_data.json +9 -8
- data/docs/last_run/rails_options_class.json +9 -1
- data/docs/last_run/rails_options_data.json +11 -9
- data/lib/rails_app_generator/addon.rb +13 -3
- data/lib/rails_app_generator/addons/devise.rb +9 -1
- data/lib/rails_app_generator/addons/devise_masquerade.rb +23 -0
- data/lib/rails_app_generator/app_generator.rb +1 -0
- data/lib/rails_app_generator/rag_initializer.rb +1 -0
- data/lib/rails_app_generator/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/profiles/addons/devise_masquerade.json +17 -0
- metadata +14 -3
- data/lib/rails_app_generator/addons/devise_old.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f540e53519b46581a9bc18d4db37766d6ac38a27a7493732058aa83254caf62e
|
4
|
+
data.tar.gz: da9ecf9716c196663b3d8be4d18e070fadf5f8f3ef4c6c501fbc213f2130a9db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b16806642e285948098aa32af0454f86288a466db8decd5fda79ceb9a2cdbf4d63fa439631d42fc4cf5d45b7b8bc23fc05c2472c781870dd5306cb65940e3dd
|
7
|
+
data.tar.gz: dd0a91e5039ae9f3b450f62624f40651a3fc7e036c3a52a8d9a4d2b582958f95b32fc6d51f57742bf4e9e156714bd5ecb5784fa1030a1de4f5e8c6d16199ff7b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.2.24](https://github.com/klueless-io/rails_app_generator/compare/v0.2.23...v0.2.24) (2022-08-16)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add minimal_css profile ([5770975](https://github.com/klueless-io/rails_app_generator/commit/577097594ee3c82218628525b9bc6dd8299fb13e))
|
7
|
+
|
1
8
|
## [0.2.23](https://github.com/klueless-io/rails_app_generator/compare/v0.2.22...v0.2.23) (2022-08-16)
|
2
9
|
|
3
10
|
|
@@ -41,30 +41,3 @@ def setup_customizations
|
|
41
41
|
directory "app/views"
|
42
42
|
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
43
43
|
end
|
44
|
-
|
45
|
-
# Other template command examples
|
46
|
-
# prepare_environment
|
47
|
-
# bundle_install
|
48
|
-
# css_install('tailwind')
|
49
|
-
# rails_command('db:migrate')
|
50
|
-
# rails_command('db:migrate')
|
51
|
-
# bundle_add('hotwire-rails')
|
52
|
-
# rails_command('hotwire:install')
|
53
|
-
# run('bin/importmap pin sortablejs')
|
54
|
-
# run('npm install daisyui')
|
55
|
-
# rubocop
|
56
|
-
#
|
57
|
-
# directory 'app/assets/images'
|
58
|
-
# create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
|
59
|
-
# append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
|
60
|
-
# insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
|
61
|
-
# before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
|
62
|
-
# gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mx-auto px-5'
|
63
|
-
# template 'home.css', 'app/assets/stylesheets/home.css'
|
64
|
-
#
|
65
|
-
# add_controller('page', 'benefits', 'faq', 'terms', 'privacy', '--skip-routes')
|
66
|
-
# route(<<-'RUBY')
|
67
|
-
# PageController.action_methods.each do |action|
|
68
|
-
# get "/#{action}", to: "page##{action}", as: "page_#{action}"
|
69
|
-
# end
|
70
|
-
# RUBY
|
@@ -1,6 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
User.create(email: 'david@site.com', name: 'david', password: 'password', password_confirmation: 'password', role: :admin)
|
2
|
+
User.create(email: 'james@site.com', name: 'james', password: 'password', password_confirmation: 'password')
|
3
|
+
User.create(email: 'sally@site.com', name: 'sally', password: 'password', password_confirmation: 'password', role: :moderator)
|
4
4
|
|
5
5
|
10.times do
|
6
6
|
Post.create(
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Description goes here
|
4
|
+
#
|
5
|
+
# exe/rag addons/devise_masquerade
|
6
|
+
|
7
|
+
self.local_template_path = File.dirname(__FILE__)
|
8
|
+
|
9
|
+
gac 'base rails 7 image created'
|
10
|
+
|
11
|
+
prepare_environment
|
12
|
+
|
13
|
+
after_bundle do
|
14
|
+
setup_customizations
|
15
|
+
setup_db
|
16
|
+
end
|
17
|
+
|
18
|
+
def setup_db
|
19
|
+
template 'db/seeds.rb' , 'db/seeds.rb'
|
20
|
+
|
21
|
+
db_migrate
|
22
|
+
db_seed
|
23
|
+
end
|
24
|
+
|
25
|
+
def setup_customizations
|
26
|
+
route("root 'home#index'")
|
27
|
+
|
28
|
+
force_copy
|
29
|
+
|
30
|
+
add_controller('home', 'index')
|
31
|
+
|
32
|
+
directory "app/controllers"
|
33
|
+
directory "app/models"
|
34
|
+
directory "app/views"
|
35
|
+
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
36
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class User < ApplicationRecord
|
2
|
+
after_initialize :set_default_role, if: :new_record?
|
3
|
+
|
4
|
+
# Include default devise modules. Others available are:
|
5
|
+
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
|
6
|
+
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable, :masqueradable
|
7
|
+
|
8
|
+
has_many :posts
|
9
|
+
|
10
|
+
enum role: { user: 0, moderator: 1, admin: 9 }
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def set_default_role
|
15
|
+
self.role ||= :user
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
<h1>Devise Masquerade</h1>
|
2
|
+
|
3
|
+
<h4>Devise extension that enables login as another user functionality</h4>
|
4
|
+
|
5
|
+
<p><b class='alert'>Warning!</b> If <code>masquerade?</code> is never returning <code>true</code> then ensure you have turned on caching in development using <code>rails dev:cache</code> </p>
|
6
|
+
|
7
|
+
<pre><code>user_masquerade? => <%= user_masquerade? %></code></pre>
|
8
|
+
|
9
|
+
<p>Sign in with an <b>Admin</b> user and then impersonate other users</p>
|
10
|
+
|
11
|
+
<h3>Sample users and passwords</h3>
|
12
|
+
|
13
|
+
<% if current_user %>
|
14
|
+
<% if current_user.admin? %>
|
15
|
+
<h1 class='admin'><%= current_user.name.capitalize %> - Admininstrator</h1>
|
16
|
+
<% elsif current_user.user? %>
|
17
|
+
<h1 class='user'><%= current_user.name.capitalize %> - User</h1>
|
18
|
+
<% end %>
|
19
|
+
<% else %>
|
20
|
+
<h1 class='not-signed-in'>Not currently signed in</h1>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<table style='width: 600px;'>
|
24
|
+
<tr>
|
25
|
+
<th>Name</th>
|
26
|
+
<th>Email</th>
|
27
|
+
<th>Role</th>
|
28
|
+
<% if current_user %>
|
29
|
+
<th>Masquerade As</th>
|
30
|
+
<% else %>
|
31
|
+
<th>Password</th>
|
32
|
+
<% end %>
|
33
|
+
</tr>
|
34
|
+
<% User.all.each do |user| %>
|
35
|
+
<tr>
|
36
|
+
<td><%= user.name %></td>
|
37
|
+
<td><%= user.email %></td>
|
38
|
+
<td><%= user.role %></td>
|
39
|
+
<td>
|
40
|
+
<% if current_user %>
|
41
|
+
<% if user_masquerade? %>
|
42
|
+
<% if user.admin? %>
|
43
|
+
<%= link_to "Back to #{user.name.capitalize}", back_masquerade_path(User.new) %>
|
44
|
+
<% end %>
|
45
|
+
<% else %>
|
46
|
+
<% if current_user.user? %>
|
47
|
+
Cannot masquerade
|
48
|
+
<% elsif user.user? %>
|
49
|
+
<%= link_to user.name.capitalize, masquerade_path(user) %>
|
50
|
+
<% else %>
|
51
|
+
|
52
|
+
<% end %>
|
53
|
+
<% end %>
|
54
|
+
<% else %>
|
55
|
+
password
|
56
|
+
<% end %>
|
57
|
+
|
58
|
+
</td>
|
59
|
+
</td>
|
60
|
+
</tr>
|
61
|
+
<% end %>
|
62
|
+
</table>
|
63
|
+
|
64
|
+
<% if current_user&.user? && !user_masquerade? %>
|
65
|
+
<p class='alert'>Sign in as an admin user</p>
|
66
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<hr />
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= camelized %></title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<%%= csrf_meta_tags %>
|
7
|
+
<%%= csp_meta_tag %>
|
8
|
+
|
9
|
+
<%- if options[:skip_hotwire] || options[:skip_javascript] -%>
|
10
|
+
<%%= stylesheet_link_tag "application" %>
|
11
|
+
<%- else -%>
|
12
|
+
<%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
13
|
+
<%- end -%>
|
14
|
+
<%%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>
|
15
|
+
<style>
|
16
|
+
.notice {
|
17
|
+
color: green;
|
18
|
+
}
|
19
|
+
.alert {
|
20
|
+
color: red;
|
21
|
+
}
|
22
|
+
table {
|
23
|
+
border-collapse: collapse;
|
24
|
+
}
|
25
|
+
th, td {
|
26
|
+
border: 1px solid #ccc;
|
27
|
+
padding: 5px;
|
28
|
+
}
|
29
|
+
.admin {
|
30
|
+
background-color: pink;
|
31
|
+
}
|
32
|
+
.user {
|
33
|
+
background-color: lightgreen;
|
34
|
+
}
|
35
|
+
.not-signed-in {
|
36
|
+
background-color: lightgrey;
|
37
|
+
}
|
38
|
+
.admin, .user, .not-signed-in {
|
39
|
+
text-align: center;
|
40
|
+
}
|
41
|
+
</style>
|
42
|
+
</head>
|
43
|
+
|
44
|
+
<body>
|
45
|
+
<header>
|
46
|
+
<%%= render 'layouts/navbar' %>
|
47
|
+
<hr />
|
48
|
+
<%%= render 'layouts/alerts' %>
|
49
|
+
</header>
|
50
|
+
<main>
|
51
|
+
<%%= yield %>
|
52
|
+
</main>
|
53
|
+
<footer>
|
54
|
+
<%%= render 'layouts/footer' %>
|
55
|
+
</footer>
|
56
|
+
</body>
|
57
|
+
</html>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
User.create(email: 'david@site.com', name: 'david', password: 'password', password_confirmation: 'password', role: :admin)
|
2
|
+
User.create(email: 'james@site.com', name: 'james', password: 'password', password_confirmation: 'password')
|
3
|
+
User.create(email: 'sally@site.com', name: 'sally', password: 'password', password_confirmation: 'password')
|
@@ -48,6 +48,7 @@
|
|
48
48
|
"add_browser",
|
49
49
|
"add_chartkick",
|
50
50
|
"add_devise",
|
51
|
+
"add_devise_masquerade",
|
51
52
|
"add_dotenv",
|
52
53
|
"add_faker",
|
53
54
|
"add_groupdate",
|
@@ -113,7 +114,7 @@
|
|
113
114
|
"name": "ruby",
|
114
115
|
"description": "Path to the Ruby binary of your choice",
|
115
116
|
"type": "string",
|
116
|
-
"default": "/Users/davidcruwys/.asdf/installs/ruby/
|
117
|
+
"default": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
|
117
118
|
"required": false
|
118
119
|
},
|
119
120
|
{
|
@@ -403,6 +404,13 @@
|
|
403
404
|
"default": false,
|
404
405
|
"required": false
|
405
406
|
},
|
407
|
+
{
|
408
|
+
"name": "add_devise_masquerade",
|
409
|
+
"description": "Indicates when to generate add devise masquerade",
|
410
|
+
"type": "boolean",
|
411
|
+
"default": false,
|
412
|
+
"required": false
|
413
|
+
},
|
406
414
|
{
|
407
415
|
"name": "add_dotenv",
|
408
416
|
"description": "Indicates when to generate add dotenv",
|
@@ -2,7 +2,7 @@
|
|
2
2
|
"options": {
|
3
3
|
"skip_namespace": false,
|
4
4
|
"skip_collision_check": false,
|
5
|
-
"ruby": "/Users/davidcruwys/.asdf/installs/ruby/
|
5
|
+
"ruby": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
|
6
6
|
"database": "sqlite3",
|
7
7
|
"skip_git": true,
|
8
8
|
"skip_keeps": false,
|
@@ -26,27 +26,28 @@
|
|
26
26
|
"main": false,
|
27
27
|
"no_rc": false,
|
28
28
|
"api": false,
|
29
|
-
"javascript": "
|
29
|
+
"javascript": "esbuild",
|
30
30
|
"skip_bundle": false,
|
31
|
-
"note": "
|
31
|
+
"note": "",
|
32
32
|
"test": "rspec",
|
33
33
|
"add_acts_as_list": false,
|
34
34
|
"add_administrate": false,
|
35
|
-
"add_annotate":
|
35
|
+
"add_annotate": true,
|
36
36
|
"add_avo": false,
|
37
37
|
"add_bcrypt": false,
|
38
38
|
"add_browser": false,
|
39
39
|
"add_chartkick": false,
|
40
|
-
"add_devise":
|
40
|
+
"add_devise": true,
|
41
|
+
"add_devise_masquerade": true,
|
41
42
|
"add_dotenv": false,
|
42
|
-
"add_faker":
|
43
|
+
"add_faker": false,
|
43
44
|
"add_groupdate": false,
|
44
45
|
"add_hexapdf": false,
|
45
46
|
"add_httparty": false,
|
46
47
|
"add_honeybadger": false,
|
47
48
|
"add_lograge": false,
|
48
49
|
"add_minimal_css": true,
|
49
|
-
"minimal_css_library": "water",
|
50
|
+
"minimal_css_library": "water.css",
|
50
51
|
"add_mini_magick": false,
|
51
52
|
"add_motor_admin": false,
|
52
53
|
"add_public_suffix": false,
|
@@ -55,6 +56,6 @@
|
|
55
56
|
"add_redcarpet": false,
|
56
57
|
"add_rubocop": false,
|
57
58
|
"add_twilio_ruby": false,
|
58
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
59
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/devise_masquerade/_.rb"
|
59
60
|
}
|
60
61
|
}
|
@@ -48,6 +48,7 @@
|
|
48
48
|
"add_browser",
|
49
49
|
"add_chartkick",
|
50
50
|
"add_devise",
|
51
|
+
"add_devise_masquerade",
|
51
52
|
"add_dotenv",
|
52
53
|
"add_faker",
|
53
54
|
"add_groupdate",
|
@@ -113,7 +114,7 @@
|
|
113
114
|
"name": "ruby",
|
114
115
|
"description": "Path to the Ruby binary of your choice",
|
115
116
|
"type": "string",
|
116
|
-
"default": "/Users/davidcruwys/.asdf/installs/ruby/
|
117
|
+
"default": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
|
117
118
|
"required": false
|
118
119
|
},
|
119
120
|
{
|
@@ -403,6 +404,13 @@
|
|
403
404
|
"default": false,
|
404
405
|
"required": false
|
405
406
|
},
|
407
|
+
{
|
408
|
+
"name": "add_devise_masquerade",
|
409
|
+
"description": "",
|
410
|
+
"type": "boolean",
|
411
|
+
"default": false,
|
412
|
+
"required": false
|
413
|
+
},
|
406
414
|
{
|
407
415
|
"name": "add_dotenv",
|
408
416
|
"description": "",
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"pretend": false,
|
7
7
|
"quiet": false,
|
8
8
|
"skip": false,
|
9
|
-
"ruby": "/Users/davidcruwys/.asdf/installs/ruby/
|
10
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
9
|
+
"ruby": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
|
10
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/devise_masquerade/_.rb",
|
11
11
|
"database": "sqlite3",
|
12
12
|
"skip_git": true,
|
13
13
|
"skip_keeps": false,
|
@@ -35,28 +35,29 @@
|
|
35
35
|
"version": false,
|
36
36
|
"api": false,
|
37
37
|
"minimal": false,
|
38
|
-
"javascript": "
|
38
|
+
"javascript": "esbuild",
|
39
39
|
"css": "",
|
40
40
|
"skip_bundle": false,
|
41
|
-
"note": "
|
41
|
+
"note": "",
|
42
42
|
"test": "rspec",
|
43
43
|
"add_acts_as_list": false,
|
44
44
|
"add_administrate": false,
|
45
|
-
"add_annotate":
|
45
|
+
"add_annotate": true,
|
46
46
|
"add_avo": false,
|
47
47
|
"add_bcrypt": false,
|
48
48
|
"add_browser": false,
|
49
49
|
"add_chartkick": false,
|
50
|
-
"add_devise":
|
50
|
+
"add_devise": true,
|
51
|
+
"add_devise_masquerade": true,
|
51
52
|
"add_dotenv": false,
|
52
|
-
"add_faker":
|
53
|
+
"add_faker": false,
|
53
54
|
"add_groupdate": false,
|
54
55
|
"add_hexapdf": false,
|
55
56
|
"add_httparty": false,
|
56
57
|
"add_honeybadger": false,
|
57
58
|
"add_lograge": false,
|
58
59
|
"add_minimal_css": true,
|
59
|
-
"minimal_css_library": "water",
|
60
|
+
"minimal_css_library": "water.css",
|
60
61
|
"add_mini_magick": false,
|
61
62
|
"add_motor_admin": false,
|
62
63
|
"add_public_suffix": false,
|
@@ -64,6 +65,7 @@
|
|
64
65
|
"add_rails_html_sanitizer": false,
|
65
66
|
"add_redcarpet": false,
|
66
67
|
"add_rubocop": false,
|
67
|
-
"add_twilio_ruby": false
|
68
|
+
"add_twilio_ruby": false,
|
69
|
+
"notes": "there is a name conflict if the rails application has the same name as the gem and so devise_masquerade has been renamed to devise_masquerade_sample"
|
68
70
|
}
|
69
71
|
}
|
@@ -35,10 +35,20 @@ module RailsAppGenerator
|
|
35
35
|
context.options
|
36
36
|
end
|
37
37
|
|
38
|
-
def
|
39
|
-
value = options[option_name.to_sym]
|
38
|
+
def add_flag?(option_name)
|
39
|
+
value = options["add_#{option_name}".to_sym]
|
40
|
+
|
41
|
+
return false if value.nil?
|
42
|
+
|
43
|
+
value == true
|
44
|
+
end
|
40
45
|
|
41
|
-
|
46
|
+
def active?(option_name)
|
47
|
+
add_flag?(option_name) # || !skip_flag?(option_name)
|
48
|
+
end
|
49
|
+
|
50
|
+
def option?(option_name)
|
51
|
+
!options[option_name.to_sym].nil?
|
42
52
|
end
|
43
53
|
|
44
54
|
def uses?(addon_name = nil)
|
@@ -56,7 +56,15 @@ module RailsAppGenerator
|
|
56
56
|
|
57
57
|
def update_routes_with_devise_controllers
|
58
58
|
in_root do
|
59
|
-
|
59
|
+
controller_config = [
|
60
|
+
'sessions: "users/sessions"',
|
61
|
+
'registrations: "users/registrations"'
|
62
|
+
]
|
63
|
+
controller_config << 'masquerades: "users/masquerades"' if active?(:devise_masquerade)
|
64
|
+
|
65
|
+
devise_for_replacement = "devise_for :users, controllers: { #{controller_config.join(', ')} }"
|
66
|
+
|
67
|
+
gsub_file 'config/routes.rb', /devise_for :users/, devise_for_replacement
|
60
68
|
end
|
61
69
|
end
|
62
70
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
5
|
+
module AddOns
|
6
|
+
# Add DeviseMasquerade to rails application
|
7
|
+
class DeviseMasquerade < RailsAppGenerator::Addon
|
8
|
+
depends_on :devise
|
9
|
+
|
10
|
+
required_gem gem.version('devise_masquerade', '1.3.12', 'Devise extension that enables login as another user functionality')
|
11
|
+
|
12
|
+
def apply
|
13
|
+
# NOTE: update_routes_with_devise_controllers is being handled in devise.rb addon
|
14
|
+
end
|
15
|
+
|
16
|
+
# def update_routes_with_devise_controllers
|
17
|
+
# in_root do
|
18
|
+
# gsub_file 'config/routes.rb', /registrations: "users\/registrations"/, 'registrations: "users/registrations", masquerades: "users/masquerades"'
|
19
|
+
# end
|
20
|
+
# end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -111,6 +111,7 @@ KConfig.configure do |config|
|
|
111
111
|
rag.add_option :add_chartkick , type: :boolean, default: false
|
112
112
|
# continuous_integration
|
113
113
|
rag.add_option :add_devise , type: :boolean, default: false
|
114
|
+
rag.add_option :add_devise_masquerade , type: :boolean, default: false
|
114
115
|
# docker_compose
|
115
116
|
# docker
|
116
117
|
rag.add_option :add_dotenv , type: :boolean, default: false
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "rails_app_generator",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.25",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "rails_app_generator",
|
9
|
-
"version": "0.2.
|
9
|
+
"version": "0.2.25",
|
10
10
|
"dependencies": {
|
11
11
|
"daisyui": "^2.20.0"
|
12
12
|
},
|
data/package.json
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"args": {
|
3
|
+
"app_path": "r7_devise_masquerade",
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
|
5
|
+
},
|
6
|
+
"opts": {
|
7
|
+
"notes": "there is a name conflict if the rails application has the same name as the gem and so devise_masquerade has been renamed to devise_masquerade_sample",
|
8
|
+
"skip_git": true,
|
9
|
+
"skip_test": true,
|
10
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/devise_masquerade/_.rb",
|
11
|
+
"javascript": "esbuild",
|
12
|
+
"add_annotate": true,
|
13
|
+
"add_devise": true,
|
14
|
+
"add_devise_masquerade": true,
|
15
|
+
"add_minimal_css": true
|
16
|
+
}
|
17
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_app_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bootsnap
|
@@ -251,6 +251,16 @@ files:
|
|
251
251
|
- after_templates/addons/devise/app/views/posts/index.html.erb
|
252
252
|
- after_templates/addons/devise/app/views/posts/show.html.erb
|
253
253
|
- after_templates/addons/devise/db/seeds.rb
|
254
|
+
- after_templates/addons/devise_masquerade/_.rb
|
255
|
+
- after_templates/addons/devise_masquerade/app/controllers/application_controller.rb
|
256
|
+
- after_templates/addons/devise_masquerade/app/controllers/home_controller.rb
|
257
|
+
- after_templates/addons/devise_masquerade/app/controllers/users/masquerades_controller.rb
|
258
|
+
- after_templates/addons/devise_masquerade/app/models/user.rb
|
259
|
+
- after_templates/addons/devise_masquerade/app/views/home/index.html.erb
|
260
|
+
- after_templates/addons/devise_masquerade/app/views/layouts/_footer.html.erb
|
261
|
+
- after_templates/addons/devise_masquerade/app/views/layouts/_navbar.html.erb
|
262
|
+
- after_templates/addons/devise_masquerade/app/views/layouts/application.html.erb
|
263
|
+
- after_templates/addons/devise_masquerade/db/seeds.rb
|
254
264
|
- after_templates/addons/dotenv/_.rb
|
255
265
|
- after_templates/addons/dotenv/app/controllers/home_controller.rb
|
256
266
|
- after_templates/addons/dotenv/app/views/home/index.html.erb
|
@@ -562,7 +572,7 @@ files:
|
|
562
572
|
- lib/rails_app_generator/addons/chartkick.rb
|
563
573
|
- lib/rails_app_generator/addons/continuous_integration.rb
|
564
574
|
- lib/rails_app_generator/addons/devise.rb
|
565
|
-
- lib/rails_app_generator/addons/
|
575
|
+
- lib/rails_app_generator/addons/devise_masquerade.rb
|
566
576
|
- lib/rails_app_generator/addons/docker.rb
|
567
577
|
- lib/rails_app_generator/addons/docker_compose.rb
|
568
578
|
- lib/rails_app_generator/addons/dotenv.rb
|
@@ -639,6 +649,7 @@ files:
|
|
639
649
|
- profiles/addons/browser.json
|
640
650
|
- profiles/addons/chartkick.json
|
641
651
|
- profiles/addons/devise.json
|
652
|
+
- profiles/addons/devise_masquerade.json
|
642
653
|
- profiles/addons/dotenv.json
|
643
654
|
- profiles/addons/faker.json
|
644
655
|
- profiles/addons/hexapdf.json
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsAppGenerator
|
4
|
-
# Custom add-ons for RailsAppGenerator
|
5
|
-
module AddOns
|
6
|
-
# Add Devise authentication to rails application
|
7
|
-
class DeviseXxxx < RailsAppGenerator::Addon
|
8
|
-
depends_on :active_record
|
9
|
-
|
10
|
-
required_gem gem.version('devise', '4.8.1', 'Flexible authentication solution for Rails with Warden')
|
11
|
-
|
12
|
-
# Requires Testing
|
13
|
-
def apply
|
14
|
-
update_development_rb
|
15
|
-
gsub_file 'config/initializers/devise.rb', /# config.pepper = .+/, " # config.pepper = 'pepper'"
|
16
|
-
gsub_file 'config/initializers/devise.rb', /# config.secret_key = .+/, " # config.secret_key = 'secret_key'"
|
17
|
-
db_changes
|
18
|
-
create_seed
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|