dandelion_s1 0.3.2 → 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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/dandelion_s1.rb +49 -49
- data.tar.gz.sig +0 -0
- metadata +42 -36
- metadata.gz.sig +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c59a8096fccc922ca6c3100e5e393282995c5a482d173330ddcb85f8e3490d7
|
4
|
+
data.tar.gz: 3e47b63dc991f237c69e3c6c9a90a84fa6b1d4b767569a2304ac1b33751f09c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 439b570707d88cd65f9a2e7569c68146c165bc32277196d451849ec28648e7e675cb6f96db693f8c6bdf0bd53073c525a6d4bfecae8eb6def45243e27ace596d
|
7
|
+
data.tar.gz: c31007f28494b3019556eb21c0b9a42d4e04ce6327e7557e9c629878e0e40096df80610dc984b3e07fadc7271c771fb521a90dc1471db64afb8214068968d55b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/dandelion_s1.rb
CHANGED
@@ -12,47 +12,47 @@ class DandelionS1 < RackRscript
|
|
12
12
|
def initialize(opts={})
|
13
13
|
|
14
14
|
h = {root: 'www', static: [], passwords: {'user' => 'us3r'}}.merge(opts)
|
15
|
-
|
15
|
+
|
16
16
|
@passwords = h[:passwords]
|
17
17
|
access_list = h[:access]
|
18
18
|
@app_root = Dir.pwd
|
19
19
|
|
20
20
|
#@access_list = {'/do/r/hello3' => 'user'}
|
21
|
-
|
21
|
+
|
22
22
|
if access_list then
|
23
|
-
|
23
|
+
|
24
24
|
h2 = SimpleConfig.new(access_list).to_h
|
25
25
|
conf_access = h2[:body] || h2
|
26
26
|
@access_list = conf_access.inject({}) \
|
27
27
|
{|r,x| k,v = x; r.merge(k.to_s => v.split)}
|
28
|
-
|
28
|
+
|
29
29
|
end
|
30
|
-
|
31
|
-
h3 = %i(log pkg_src rsc_host
|
30
|
+
|
31
|
+
h3 = %i(log pkg_src rsc_host rsc root static debug)\
|
32
32
|
.inject({}) {|r,x| r.merge(x => h[x])}
|
33
|
-
|
34
|
-
super(h3)
|
35
|
-
@log.debug '@access_list: ' + @access_list.inspect if @log
|
33
|
+
|
34
|
+
super(**h3)
|
35
|
+
@log.debug '@access_list: ' + @access_list.inspect if @log
|
36
36
|
@log.debug 'end of initialize' if @log
|
37
|
-
|
37
|
+
|
38
38
|
end
|
39
39
|
|
40
40
|
def call(e)
|
41
41
|
|
42
42
|
request = e['REQUEST_PATH']
|
43
43
|
@log.debug 'request: ' + request.inspect if @log
|
44
|
-
|
44
|
+
|
45
45
|
return super(e) if request == '/login'
|
46
46
|
r = @access_list.detect {|k,v| request =~ Regexp.new(k)} if @access_list
|
47
47
|
private_user = r ? r.last : nil
|
48
|
-
|
48
|
+
|
49
49
|
req = Rack::Request.new(e)
|
50
50
|
user = req.session[:username]
|
51
51
|
|
52
|
-
|
52
|
+
@log.debug 'user: ' + user.inspect if @log
|
53
53
|
#@log.debug '@e: ' + e.inspect if @log
|
54
54
|
return jumpto '/login2?referer=' + e['PATH_INFO'] unless user
|
55
|
-
|
55
|
+
|
56
56
|
if private_user.nil? then
|
57
57
|
super(e)
|
58
58
|
elsif (private_user.is_a? String and private_user == user) \
|
@@ -63,78 +63,78 @@ class DandelionS1 < RackRscript
|
|
63
63
|
end
|
64
64
|
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
protected
|
68
|
-
|
69
|
-
def default_routes(env, params)
|
70
|
-
|
68
|
+
|
69
|
+
def default_routes(env, params)
|
70
|
+
|
71
71
|
log = @log
|
72
|
-
|
72
|
+
|
73
73
|
get '/login2/*' do
|
74
74
|
params[:splat].inspect
|
75
75
|
redirect '/login' + params[:splat].first
|
76
76
|
end
|
77
|
-
|
78
|
-
get '/login/*' do
|
77
|
+
|
78
|
+
get '/login/*' do
|
79
79
|
url = params[:splat].any? ? params[:splat][0][/(?<=referer=).*/] : '/'
|
80
|
-
login_form(referer: url)
|
81
|
-
end
|
82
|
-
|
80
|
+
login_form(referer: url)
|
81
|
+
end
|
82
|
+
|
83
83
|
post '/login' do
|
84
|
-
|
84
|
+
|
85
85
|
h = @req.params
|
86
86
|
|
87
87
|
if @passwords[h['username']] == h['password'] then
|
88
|
-
|
88
|
+
|
89
89
|
@req.session[:username] = h['username']
|
90
90
|
#'you are now logged in as ' + h['username']
|
91
91
|
redirect h['referer']
|
92
|
-
|
92
|
+
|
93
93
|
else
|
94
|
-
|
94
|
+
|
95
95
|
login_form('Invalid username or password, try again.',401)
|
96
|
-
|
96
|
+
|
97
97
|
end
|
98
98
|
|
99
|
-
|
99
|
+
|
100
100
|
end
|
101
|
-
|
101
|
+
|
102
102
|
get '/logout' do
|
103
|
-
|
103
|
+
|
104
104
|
@req.session.clear
|
105
105
|
'you are now logged out'
|
106
|
-
|
107
|
-
end
|
108
|
-
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
109
|
get '/session' do
|
110
|
-
|
110
|
+
|
111
111
|
#@req.session.expires
|
112
112
|
#@req.session.options[:expire_after] = 1
|
113
113
|
@req.session.options.inspect
|
114
|
-
|
114
|
+
|
115
115
|
end
|
116
|
-
|
116
|
+
|
117
117
|
get '/user' do
|
118
|
-
|
118
|
+
|
119
119
|
if @req.session[:username] then
|
120
120
|
'You are ' + @req.session[:username]
|
121
121
|
else
|
122
122
|
'you need to log in to view this page'
|
123
|
-
end
|
124
|
-
|
123
|
+
end
|
124
|
+
|
125
125
|
end
|
126
126
|
|
127
127
|
get '/unauthorised' do
|
128
|
-
['unauthorised user', 'text/plain', 403]
|
128
|
+
['unauthorised user', 'text/plain', 403]
|
129
129
|
end
|
130
|
-
|
131
|
-
super(env, params)
|
132
|
-
|
133
|
-
end
|
134
|
-
|
130
|
+
|
131
|
+
super(env, params)
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
135
|
def login_form(msg='Log in to this site.', http_code=200, referer: '/')
|
136
|
-
|
137
|
-
s=<<EOF
|
136
|
+
|
137
|
+
s=<<EOF
|
138
138
|
p #{msg}
|
139
139
|
|
140
140
|
login
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dandelion_s1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,27 +10,32 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMTE1MTczMzU3WhcN
|
15
|
+
MjMwMTE1MTczMzU3WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDDApll
|
17
|
+
54O5ep0PysImgjC3Fxb+VELPHRZ5Jr3qzRc66yG85xz+FKABLDyRrQ9NUJiIjAVW
|
18
|
+
I9/EtKmSogbcW5pmgf5UFjnGxqvgXsLf9JYb0AXrSJHEV+g2B4bZHLzu5TkaRCm0
|
19
|
+
xIBF3r0fQkmZq7EP6PM4MjOOZffB8eavJIeRi0fHSIxiSrXmhxClF6OIW8JBk5Hr
|
20
|
+
brO48B/mxeTjBMhyd3pU5Y3q4YckgXcIyrfen+/lfmlERU8shjuWfvd0QbMDVdQQ
|
21
|
+
TRf9EoDNsVoILqfVSwa6My7nTry7Ms/AEtdhU9s/stDa8ZbvYvQUXbh7n0ztSD1E
|
22
|
+
kn/NH3iYzD6DDPBrVkwkjWiionKx8gbx2ogoqXonJ9dZFmc/pxAYBIPua+TuIBc7
|
23
|
+
rv/k8MwbvmTdA6qVN4hrN3IeMdNHem6DWgL6XbI34mJ+2PVtWTqDG5r9joffFRAp
|
24
|
+
7LKz476sFoMzzr9dyPtQlVA1kwEShIjWunlOA10Z8Awf7+m/z38HNq8jX9sCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUfSCCglAL
|
26
|
+
TLGYNZXPFdevytu+E5owJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAMWGLNvh2P5idDQH6p+wxxVKnt/b2fDjXlAx8/A8Q
|
29
|
+
3q+6iEM1rEvmNsnYvagbyDczPEhvoxuWvVUL0huwa99R4nX5o4yqr4IOR6NVZ724
|
30
|
+
tiC022XXJ0ysp2jIlttnzKeYtadjPecS8MXy2XiIpHqNpAfRfxu3XHz6ZPDs2Ein
|
31
|
+
76MsY6p7rsKjhd6NfzEzWrudixdPXHEDRsWhvc4D8yJ8sXRRlsqvYyJzWPAxjYDP
|
32
|
+
dGYM0uAJz9SVDPY+Vtc5SxUSjcxum8Q9AxhIyRhN6fELUh/aWKXnCX6oxLLvtsNu
|
33
|
+
woIuTfN3+nievIwQikkOMmmOHoKClutOf/QvliSCEBWgPEYNitoCAbt5kde/pLqm
|
34
|
+
gHDzDElZg+1jI3TgwZ+kIKwt7Vun9eZH2g8dc31fjlfxzKBRnOh5p7CoxbW4rx7M
|
35
|
+
JtmSOhu/qtu75iQs8PmwtvhDACcdpf0Q5VGHeyLvKq5LqZMqX9BK9BOD41uV9rt/
|
36
|
+
k7EFkjCAj62C0O4oFjSMVJQW
|
32
37
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
38
|
+
date: 2022-01-15 00:00:00.000000000 Z
|
34
39
|
dependencies:
|
35
40
|
- !ruby/object:Gem::Dependency
|
36
41
|
name: rack-rscript
|
@@ -38,62 +43,62 @@ dependencies:
|
|
38
43
|
requirements:
|
39
44
|
- - "~>"
|
40
45
|
- !ruby/object:Gem::Version
|
41
|
-
version: '1.
|
46
|
+
version: '1.2'
|
42
47
|
- - ">="
|
43
48
|
- !ruby/object:Gem::Version
|
44
|
-
version: 1.
|
49
|
+
version: 1.2.3
|
45
50
|
type: :runtime
|
46
51
|
prerelease: false
|
47
52
|
version_requirements: !ruby/object:Gem::Requirement
|
48
53
|
requirements:
|
49
54
|
- - "~>"
|
50
55
|
- !ruby/object:Gem::Version
|
51
|
-
version: '1.
|
56
|
+
version: '1.2'
|
52
57
|
- - ">="
|
53
58
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
59
|
+
version: 1.2.3
|
55
60
|
- !ruby/object:Gem::Dependency
|
56
61
|
name: simple-config
|
57
62
|
requirement: !ruby/object:Gem::Requirement
|
58
63
|
requirements:
|
59
64
|
- - "~>"
|
60
65
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0.
|
66
|
+
version: '0.7'
|
62
67
|
- - ">="
|
63
68
|
- !ruby/object:Gem::Version
|
64
|
-
version: 0.
|
69
|
+
version: 0.7.1
|
65
70
|
type: :runtime
|
66
71
|
prerelease: false
|
67
72
|
version_requirements: !ruby/object:Gem::Requirement
|
68
73
|
requirements:
|
69
74
|
- - "~>"
|
70
75
|
- !ruby/object:Gem::Version
|
71
|
-
version: '0.
|
76
|
+
version: '0.7'
|
72
77
|
- - ">="
|
73
78
|
- !ruby/object:Gem::Version
|
74
|
-
version: 0.
|
79
|
+
version: 0.7.1
|
75
80
|
- !ruby/object:Gem::Dependency
|
76
81
|
name: martile
|
77
82
|
requirement: !ruby/object:Gem::Requirement
|
78
83
|
requirements:
|
79
84
|
- - "~>"
|
80
85
|
- !ruby/object:Gem::Version
|
81
|
-
version: '1.
|
86
|
+
version: '1.4'
|
82
87
|
- - ">="
|
83
88
|
- !ruby/object:Gem::Version
|
84
|
-
version: 1.
|
89
|
+
version: 1.4.6
|
85
90
|
type: :runtime
|
86
91
|
prerelease: false
|
87
92
|
version_requirements: !ruby/object:Gem::Requirement
|
88
93
|
requirements:
|
89
94
|
- - "~>"
|
90
95
|
- !ruby/object:Gem::Version
|
91
|
-
version: '1.
|
96
|
+
version: '1.4'
|
92
97
|
- - ">="
|
93
98
|
- !ruby/object:Gem::Version
|
94
|
-
version: 1.
|
99
|
+
version: 1.4.6
|
95
100
|
description:
|
96
|
-
email:
|
101
|
+
email: digital.robertson@gmail.com
|
97
102
|
executables: []
|
98
103
|
extensions: []
|
99
104
|
extra_rdoc_files: []
|
@@ -111,14 +116,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
116
|
requirements:
|
112
117
|
- - ">="
|
113
118
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
119
|
+
version: 3.0.2
|
115
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
121
|
requirements:
|
117
122
|
- - ">="
|
118
123
|
- !ruby/object:Gem::Version
|
119
124
|
version: '0'
|
120
125
|
requirements: []
|
121
|
-
|
126
|
+
rubyforge_project:
|
127
|
+
rubygems_version: 2.7.10
|
122
128
|
signing_key:
|
123
129
|
specification_version: 4
|
124
130
|
summary: A kind of Rack-Rscript web server which facilitates static files, cookie
|
metadata.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
�b���
|
2
|
+
vM�"Sf]�:Ʈ��z�����]��>�~؉D/���J&�ܠ�O���2MVl.Yb*49�}h�s���-��|��i�U�@l��\�H֘�/����P1`��Z^�=�RIN[�G�c��M��\����'t��Q��U����l�d#2W3����wUh���ߔDHBҨa&uet��f���?/�A�+>�<�W���J���&��W�j3��1���p{����?*���$5�������,�H��"������z����Z(Ό�lR���s�uzǝ�ayjf��|���6��qFk�=^����l�s�W0����Z哞ے^��O�K/t��g�}:�s��������9�;5���
|