self-auth-rails 0.1.1 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/config/self-auth-rails/app.js +17 -4
- data/app/assets/config/self-auth-rails/channels/messages_channel.js +9 -2
- data/app/controllers/self_auth_rails/application_controller.rb +1 -0
- data/app/controllers/self_auth_rails/sessions_controller.rb +1 -1
- data/app/helpers/self_auth_rails/application_helper.rb +5 -5
- data/app/services/self_auth_response_manager_service.rb +1 -5
- data/app/views/self_auth_rails/sessions/new.html.erb +1 -0
- data/lib/self-auth-rails/version.rb +1 -1
- data/lib/self-auth-rails.rb +6 -5
- data/lib/tasks/initializer.rb.tpl +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf781d804c0ffa2b64e556ee4e4ff2ae9dd7779238270f07fc52a1195d248919
|
4
|
+
data.tar.gz: e14c79f5e3707d3746bb68cab347e3188ca7b87a6953baebf550bd128a1e6a8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82878606f3c836b1be735efd255b0fb2dcae4367f63eaf183a3bf30185666be9b23c361d25b296ccae037377b1c63b3444ca0a790721e2c2a80f0c43be7cd0be
|
7
|
+
data.tar.gz: 461433464dfd4c7202c2b711257935a181326eea40c8f6561c18b2c531ecf2a99dc9ff787fccbab75d48910d62c5ffbc071e3de2c8b890c6a172340ea782b552
|
@@ -1,11 +1,15 @@
|
|
1
1
|
/* Initialize app when page loads */
|
2
2
|
$(function(){
|
3
|
+
if(App.cable.subscriptions.subscriptions.length > 0) {
|
4
|
+
if(App.cable.subscriptions.subscriptions[0].identifier.includes("MessagesChannel")) {
|
5
|
+
return
|
6
|
+
}
|
7
|
+
}
|
3
8
|
var Messages = App.cable.subscriptions.create({
|
4
9
|
channel:'MessagesChannel',
|
5
10
|
conversation_id: connectionID()
|
6
11
|
}, {
|
7
12
|
received: function(data) {
|
8
|
-
console.log(data);
|
9
13
|
if(data.type == "info") {
|
10
14
|
if(data.status == "completed") {
|
11
15
|
console.log("info request");
|
@@ -16,7 +20,13 @@ $(function(){
|
|
16
20
|
message = data.message
|
17
21
|
}
|
18
22
|
// TODO: this id no longer exists...
|
19
|
-
|
23
|
+
document.querySelector('#info_messages').insertAdjacentHTML(
|
24
|
+
'afterbegin',
|
25
|
+
`<div class='alert alert-danger'>
|
26
|
+
<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
|
27
|
+
${message}
|
28
|
+
</div>`
|
29
|
+
)
|
20
30
|
}
|
21
31
|
} else {
|
22
32
|
$("#messages").removeClass('hidden');
|
@@ -67,9 +77,12 @@ $(function(){
|
|
67
77
|
if(data.status == "errored") {
|
68
78
|
message = data.message
|
69
79
|
}
|
70
|
-
|
80
|
+
document.querySelector('#info_messages').insertAdjacentHTML(
|
81
|
+
'afterbegin',
|
82
|
+
`<div class="alert alert-warning alert-dismissible show fade"><div class="alert-body"><button class="close" data-dismiss="alert"><span>×</span></button>${message}</div></div>`
|
83
|
+
)
|
71
84
|
|
72
|
-
$('#
|
85
|
+
$('#info_messages').show();
|
73
86
|
$('#process').addClass("hidden");
|
74
87
|
$('#non-dl-container').removeClass("hidden");
|
75
88
|
|
@@ -105,9 +105,16 @@ function uuidv4() {
|
|
105
105
|
},
|
106
106
|
error: function (e) {
|
107
107
|
if(e.status == 502) {
|
108
|
-
|
108
|
+
document.querySelector('#info_messages').insertAdjacentHTML(
|
109
|
+
'afterbegin',
|
110
|
+
`<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>Request timed out, try again later</div>`
|
111
|
+
)
|
112
|
+
|
109
113
|
} else {
|
110
|
-
|
114
|
+
document.querySelector('#info_messages').insertAdjacentHTML(
|
115
|
+
'afterbegin',
|
116
|
+
`<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>${e.responseJSON.error}</div>`
|
117
|
+
)
|
111
118
|
}
|
112
119
|
$("#profile_help_block").hide();
|
113
120
|
}
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module SelfAuthRails
|
2
2
|
module ApplicationHelper
|
3
3
|
def authenticate_user!
|
4
|
-
current_url = request.base_url + request.path
|
4
|
+
current_url = URI(request.base_url + request.path).request_uri
|
5
5
|
|
6
6
|
uri = URI(main_app.root_url)
|
7
7
|
|
8
|
-
new_url = SelfAuthRails::Engine.routes.url_helpers.new_url(host: uri.host, port: uri.port)
|
9
|
-
create_url = SelfAuthRails::Engine.routes.url_helpers.create_url(host: uri.host, port: uri.port)
|
10
|
-
qr_url = SelfAuthRails::Engine.routes.url_helpers.qr_url(host: uri.host, port: uri.port)
|
11
|
-
dl_url = SelfAuthRails::Engine.routes.url_helpers.dl_url(host: uri.host, port: uri.port)
|
8
|
+
new_url = URI(SelfAuthRails::Engine.routes.url_helpers.new_url(host: uri.host, port: uri.port)).request_uri
|
9
|
+
create_url = URI(SelfAuthRails::Engine.routes.url_helpers.create_url(host: uri.host, port: uri.port)).request_uri
|
10
|
+
qr_url = URI(SelfAuthRails::Engine.routes.url_helpers.qr_url(host: uri.host, port: uri.port)).request_uri
|
11
|
+
dl_url = URI(SelfAuthRails::Engine.routes.url_helpers.dl_url(host: uri.host, port: uri.port)).request_uri
|
12
12
|
|
13
13
|
if [new_url, create_url, qr_url, dl_url].include? current_url
|
14
14
|
redirect_to root_url unless current_user.nil?
|
@@ -27,7 +27,7 @@ class SelfAuthResponseManagerService
|
|
27
27
|
return
|
28
28
|
end
|
29
29
|
|
30
|
-
unless
|
30
|
+
unless SelfAuthRails.permitted_auth.call(self_auth_response.from)
|
31
31
|
broadcast_status_change channel, STATUS_ERR, message: 'You are forbidden to access this service'
|
32
32
|
return
|
33
33
|
end
|
@@ -69,8 +69,4 @@ class SelfAuthResponseManagerService
|
|
69
69
|
@broadcaster.broadcast channel, { status: status, token: token, message: message, type: type }
|
70
70
|
end
|
71
71
|
|
72
|
-
# checks if the given id is in the admins list
|
73
|
-
def admin?(id)
|
74
|
-
ENV['ADMIN_IDS'].split(',').include? id
|
75
|
-
end
|
76
72
|
end
|
@@ -12,6 +12,7 @@
|
|
12
12
|
<div class="col-12 col-sm-8 offset-sm-2 col-md-6 offset-md-3 col-lg-6 offset-lg-3 col-xl-6 offset-xl-3">
|
13
13
|
<div class="card card-primary">
|
14
14
|
<div class="card-body">
|
15
|
+
<div id="info_messages"></div>
|
15
16
|
|
16
17
|
<div id="dl-container" class="hidden">
|
17
18
|
<div class="col-xs-12">
|
data/lib/self-auth-rails.rb
CHANGED
@@ -7,7 +7,9 @@ module SelfAuthRails
|
|
7
7
|
:auth_facts,
|
8
8
|
:fact_mapping,
|
9
9
|
:authenticated_path,
|
10
|
-
:authenticated_path
|
10
|
+
:authenticated_path,
|
11
|
+
:layout,
|
12
|
+
:permitted_auth
|
11
13
|
|
12
14
|
class Engine < ::Rails::Engine
|
13
15
|
default_auth_facts = [:display_name]
|
@@ -17,6 +19,9 @@ module SelfAuthRails
|
|
17
19
|
unless SelfAuthRails::self_client.nil?
|
18
20
|
SelfAuthRails.auth_facts ||= default_auth_facts
|
19
21
|
SelfAuthRails.authenticated_path ||= default_authenticated_path
|
22
|
+
if SelfAuthRails.permitted_auth.nil?
|
23
|
+
SelfAuthRails.permitted_auth ||= Proc.new { |selfid| true }
|
24
|
+
end
|
20
25
|
|
21
26
|
response_manager = SelfAuthResponseManagerService.new(ActionCable.server)
|
22
27
|
|
@@ -43,8 +48,4 @@ module SelfAuthRails
|
|
43
48
|
yield self
|
44
49
|
end
|
45
50
|
|
46
|
-
def authenticated_path
|
47
|
-
SelfAuthRails::authenticated_path || SelfAuthRails::default_authenticated_path
|
48
|
-
end
|
49
|
-
|
50
51
|
end
|
@@ -34,6 +34,9 @@ if defined?(Rails::Server) && !defined?(::SelfClient)
|
|
34
34
|
# Optional entry defaulting to '/'.
|
35
35
|
config.authenticated_path = '/'
|
36
36
|
|
37
|
+
# Defines the layout to be used for the authentication page.
|
38
|
+
# config.layout = 'login'
|
39
|
+
|
37
40
|
# In case you want to persist the authentication returning facts, you
|
38
41
|
# can provide a map for the fact_name and the ActiveModel object property.
|
39
42
|
#
|
@@ -41,5 +44,11 @@ if defined?(Rails::Server) && !defined?(::SelfClient)
|
|
41
44
|
# to request and store facts during the authentication process with
|
42
45
|
# config.auth_facts
|
43
46
|
config.fact_mapping = { display_name: :name }
|
47
|
+
|
48
|
+
# Defines if a given user is permitted to access the service or not.
|
49
|
+
# config.permitted_auth = Proc.new do |selfid|
|
50
|
+
# true
|
51
|
+
# end
|
52
|
+
|
44
53
|
end
|
45
54
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: self-auth-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrià Cidre
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|