sudo_rails 0.4.2 → 0.6.1
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/LICENSE +1 -1
- data/README.md +9 -1
- data/app/assets/stylesheets/sudo_rails/application.scss +13 -2
- data/app/controllers/sudo_rails/application_controller.rb +4 -3
- data/app/views/layouts/sudo_rails/application.html.erb +4 -1
- data/app/views/sudo_rails/_flash_alert.html.erb +5 -0
- data/app/views/sudo_rails/_inject_custom_styles.html.erb +6 -1
- data/app/views/sudo_rails/confirm_form.html.erb +8 -5
- data/config/locales/en.yml +1 -0
- data/lib/sudo_rails.rb +1 -0
- data/lib/sudo_rails/engine.rb +1 -1
- data/lib/sudo_rails/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6ed6d190a51d927747f58d7ce61af01b6dd8ab0edff663969773ebbbebd21b37
|
|
4
|
+
data.tar.gz: 85f9dc0920bdc8226b36053b06c4304b45b55f90a4735b22faed4334a7a87ad1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ef19bd450721d754b582ebe425dcdf30e91758089593743ed16fadd2400ac4cb2e898e336000a840fed37ac69124138cf5105953ff2342cdf3b37b45c6295196
|
|
7
|
+
data.tar.gz: 76a63a6de298a85130286495533149325a752c772bcf0a4d3d33ccb20e9645563397c9dca75f0c9174f46e9924b02d58b89a4de5919067ffd2f00cd2cd540bf7
|
data/LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Sudo Rails
|
|
2
2
|
|
|
3
3
|
[](https://rubygems.org/gems/sudo_rails)
|
|
4
|
-
[](https://travis-ci.com/markets/sudo_rails)
|
|
5
5
|
[](https://codeclimate.com/github/markets/sudo_rails/maintainability)
|
|
6
6
|
|
|
7
7
|
> Sudo mode for your Rails controllers
|
|
@@ -71,12 +71,20 @@ SudoRails.setup do |config|
|
|
|
71
71
|
end
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
+
### Sudo sessions
|
|
75
|
+
|
|
76
|
+
Using the `sudo_session_duration` option you are able to configure the `sudo` session duration (30 minutes by default).
|
|
77
|
+
|
|
78
|
+
If you set it to `nil`, your `sudo` session won't expire automatically and you will have to do it manually by using the `reset_sudo_session!` helper.
|
|
79
|
+
|
|
74
80
|
### Styling
|
|
75
81
|
|
|
76
82
|
Using the `custom_logo`, `primary_color` and `background_color` options, you can customize the confirmation page. In case you want full control of the styles, you can use your own layout (and consequently your own styles too) using the `layout` option.
|
|
77
83
|
|
|
78
84
|
See some [examples here](support/images/).
|
|
79
85
|
|
|
86
|
+
**NOTE** If you are using your own layout, don't forget to render the flash messages in that layout. You can do something like [this](app/views/sudo_rails/_flash_alert.html.erb).
|
|
87
|
+
|
|
80
88
|
### Confirmation strategy
|
|
81
89
|
|
|
82
90
|
You should define how to validate the password using the `confirm_strategy` option. It must be a `lambda`, which will receive 2 arguments: the controller instance (`context`) and the password from the user.
|
|
@@ -2,7 +2,7 @@ body {
|
|
|
2
2
|
text-align: center;
|
|
3
3
|
font-family: Helvetica, Arial, sans-serif;
|
|
4
4
|
background-color: #ececec;
|
|
5
|
-
|
|
5
|
+
margin: 0 auto;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
a {
|
|
@@ -13,6 +13,10 @@ input {
|
|
|
13
13
|
-webkit-appearance: none;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
.sudo-container {
|
|
17
|
+
transform: translateY(25%);
|
|
18
|
+
}
|
|
19
|
+
|
|
16
20
|
.sudo-header {
|
|
17
21
|
margin: 2em auto;
|
|
18
22
|
|
|
@@ -54,4 +58,11 @@ input {
|
|
|
54
58
|
.sudo-tip {
|
|
55
59
|
margin-top: 2em;
|
|
56
60
|
font-size: 14px;
|
|
57
|
-
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.sudo-alert {
|
|
64
|
+
background: #000;
|
|
65
|
+
color: #fff;
|
|
66
|
+
padding: 10px;
|
|
67
|
+
font-weight: bold;
|
|
68
|
+
}
|
|
@@ -3,12 +3,13 @@ module SudoRails
|
|
|
3
3
|
before_action :sudo_enabled?
|
|
4
4
|
|
|
5
5
|
def confirm
|
|
6
|
-
if
|
|
6
|
+
if SudoRails.confirm?(self, params[:password])
|
|
7
7
|
session[:sudo_session] = Time.zone.now.to_s
|
|
8
|
-
redirect_to params[:target_path]
|
|
9
8
|
else
|
|
10
|
-
|
|
9
|
+
flash[:alert] = I18n.t('sudo_rails.invalid_pass', locale: params[:locale])
|
|
11
10
|
end
|
|
11
|
+
|
|
12
|
+
redirect_to params[:target_path]
|
|
12
13
|
end
|
|
13
14
|
|
|
14
15
|
private
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
background-color: <%= SudoRails.background_color %>;
|
|
5
5
|
color: <%= SudoRails.color_contrast(SudoRails.background_color) %>;
|
|
6
6
|
}
|
|
7
|
+
|
|
8
|
+
.sudo-alert {
|
|
9
|
+
background-color: <%= SudoRails.color_contrast(SudoRails.background_color) %>;
|
|
10
|
+
color: <%= SudoRails.background_color %>;
|
|
11
|
+
}
|
|
7
12
|
<% end %>
|
|
8
13
|
|
|
9
14
|
<% if SudoRails.primary_color.present? %>
|
|
@@ -16,4 +21,4 @@
|
|
|
16
21
|
color: <%= SudoRails.color_contrast(SudoRails.primary_color) %>;
|
|
17
22
|
}
|
|
18
23
|
<% end %>
|
|
19
|
-
</style>
|
|
24
|
+
</style>
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
<
|
|
1
|
+
<div class='sudo-header'>
|
|
2
2
|
<% if SudoRails.custom_logo %>
|
|
3
3
|
<%= image_tag SudoRails.custom_logo %>
|
|
4
4
|
<% end %>
|
|
5
5
|
|
|
6
6
|
<h2><%= t('sudo_rails.page_header') %></h2>
|
|
7
|
-
</
|
|
7
|
+
</div>
|
|
8
8
|
|
|
9
9
|
<div class='sudo-form'>
|
|
10
10
|
<%= form_tag '/sudo_rails/confirm' do |f| %>
|
|
11
|
+
<%= hidden_field_tag :locale, I18n.locale %>
|
|
11
12
|
<%= hidden_field_tag :target_path, params[:target_path] || request.url %>
|
|
12
13
|
<%= password_field_tag :password, nil, required: true, placeholder: t('sudo_rails.password') %>
|
|
13
14
|
<%= submit_tag t('sudo_rails.button') %>
|
|
@@ -18,6 +19,8 @@
|
|
|
18
19
|
<% end %>
|
|
19
20
|
</div>
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
<% unless SudoRails.sudo_session_duration.nil? %>
|
|
23
|
+
<div class='sudo-tip'>
|
|
24
|
+
<%= t('sudo_rails.tip', session_duration: time_ago_in_words(SudoRails.sudo_session_duration.ago)).html_safe %>
|
|
25
|
+
</div>
|
|
26
|
+
<% end %>
|
data/config/locales/en.yml
CHANGED
data/lib/sudo_rails.rb
CHANGED
data/lib/sudo_rails/engine.rb
CHANGED
data/lib/sudo_rails/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sudo_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- markets
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-12-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -65,6 +65,7 @@ files:
|
|
|
65
65
|
- app/assets/stylesheets/sudo_rails/application.scss
|
|
66
66
|
- app/controllers/sudo_rails/application_controller.rb
|
|
67
67
|
- app/views/layouts/sudo_rails/application.html.erb
|
|
68
|
+
- app/views/sudo_rails/_flash_alert.html.erb
|
|
68
69
|
- app/views/sudo_rails/_inject_custom_styles.html.erb
|
|
69
70
|
- app/views/sudo_rails/confirm_form.html.erb
|
|
70
71
|
- config/locales/en.yml
|
|
@@ -94,8 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
94
95
|
- !ruby/object:Gem::Version
|
|
95
96
|
version: '0'
|
|
96
97
|
requirements: []
|
|
97
|
-
|
|
98
|
-
rubygems_version: 2.7.6
|
|
98
|
+
rubygems_version: 3.0.3
|
|
99
99
|
signing_key:
|
|
100
100
|
specification_version: 4
|
|
101
101
|
summary: Sudo mode for Rails
|