dandelion_s1 0.3.2 → 0.5.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 +2 -4
- data/lib/dandelion_s1.rb +52 -54
- data.tar.gz.sig +0 -0
- metadata +41 -36
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84930074a139a283266c7d0008ed1c5f382b31442db078909879c740ffb0a6a1
|
4
|
+
data.tar.gz: bfb1617dc809e5c89a105706f55da63207a936b6d9ebbf481bba5f2ade955f7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdc62c3e2395d8f9c806d28ddf5bc222c1e2445fd77673204ab097876fb83069a107606fdd0df22fd2157290dcfd2fc2075187bb7e6d614382aeb8f2800e63f9
|
7
|
+
data.tar.gz: d4eb93516a17127e5444bacfb6055cc307396653c4855fec98c496113a0d4f3bc1cd0291ee85331070a62ddb35cb05ad5f0c3a7d4d6f744fe15c2f755c215636
|
checksums.yaml.gz.sig
CHANGED
@@ -1,4 +1,2 @@
|
|
1
|
-
���5
|
2
|
-
�
|
3
|
-
=k�����ɮ�
|
4
|
-
�r��#��@h� _!$l@w(��d��S�A�,sg�I�H"�J(7�W��H�g9f�{�R�D�m_E;�����<��ve%]�����5��0��j��5��qB,�,���K�������3�a,
|
1
|
+
g������$���+V>Y��Q�H�Aw���=M%3pJ�$un�a&+���fE��靫�Ep&�4�u)�@Yl�� JӍ�T���3�*e>�n��(e�]�5�r*ޮ2h�~��V�]0�(Dة%v�`�!jg[Ŏ��a��-)I}Q0Ɇ�PU�f�./�*�
|
2
|
+
��2#Y�FUS2�W�%i��G�m�WJ�:���Xw�@��Jê��M1&Q+U��_����ݣ,��⛞�:dGV8��#2T[g0E�����^ ��,�LEG�%���E�H�ϰ%�[�����x�����V�d�knLȇ��u0�g���_�I�����z�f�{���T���n�¾��n-5T�4�*jseЫ~��QÛƐ�
m�
|
data/lib/dandelion_s1.rb
CHANGED
@@ -12,47 +12,46 @@ 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
|
-
@app_root = Dir.pwd
|
19
18
|
|
20
19
|
#@access_list = {'/do/r/hello3' => 'user'}
|
21
|
-
|
20
|
+
|
22
21
|
if access_list then
|
23
|
-
|
22
|
+
|
24
23
|
h2 = SimpleConfig.new(access_list).to_h
|
25
24
|
conf_access = h2[:body] || h2
|
26
25
|
@access_list = conf_access.inject({}) \
|
27
26
|
{|r,x| k,v = x; r.merge(k.to_s => v.split)}
|
28
|
-
|
27
|
+
|
29
28
|
end
|
30
|
-
|
31
|
-
h3 = %i(log pkg_src rsc_host
|
29
|
+
|
30
|
+
h3 = %i(log pkg_src rsc_host rsc root static debug)\
|
32
31
|
.inject({}) {|r,x| r.merge(x => h[x])}
|
33
|
-
|
34
|
-
super(h3)
|
35
|
-
@log.debug '@access_list: ' + @access_list.inspect if @log
|
32
|
+
|
33
|
+
super(**h3)
|
34
|
+
@log.debug '@access_list: ' + @access_list.inspect if @log
|
36
35
|
@log.debug 'end of initialize' if @log
|
37
|
-
|
36
|
+
|
38
37
|
end
|
39
38
|
|
40
39
|
def call(e)
|
41
40
|
|
42
41
|
request = e['REQUEST_PATH']
|
43
42
|
@log.debug 'request: ' + request.inspect if @log
|
44
|
-
|
43
|
+
|
45
44
|
return super(e) if request == '/login'
|
46
45
|
r = @access_list.detect {|k,v| request =~ Regexp.new(k)} if @access_list
|
47
46
|
private_user = r ? r.last : nil
|
48
|
-
|
47
|
+
|
49
48
|
req = Rack::Request.new(e)
|
50
49
|
user = req.session[:username]
|
51
50
|
|
52
|
-
|
51
|
+
@log.debug 'user: ' + user.inspect if @log
|
53
52
|
#@log.debug '@e: ' + e.inspect if @log
|
54
53
|
return jumpto '/login2?referer=' + e['PATH_INFO'] unless user
|
55
|
-
|
54
|
+
|
56
55
|
if private_user.nil? then
|
57
56
|
super(e)
|
58
57
|
elsif (private_user.is_a? String and private_user == user) \
|
@@ -63,78 +62,78 @@ class DandelionS1 < RackRscript
|
|
63
62
|
end
|
64
63
|
|
65
64
|
end
|
66
|
-
|
65
|
+
|
67
66
|
protected
|
68
|
-
|
69
|
-
def default_routes(env, params)
|
70
|
-
|
67
|
+
|
68
|
+
def default_routes(env, params)
|
69
|
+
|
71
70
|
log = @log
|
72
|
-
|
71
|
+
|
73
72
|
get '/login2/*' do
|
74
73
|
params[:splat].inspect
|
75
74
|
redirect '/login' + params[:splat].first
|
76
75
|
end
|
77
|
-
|
78
|
-
get '/login/*' do
|
76
|
+
|
77
|
+
get '/login/*' do
|
79
78
|
url = params[:splat].any? ? params[:splat][0][/(?<=referer=).*/] : '/'
|
80
|
-
login_form(referer: url)
|
81
|
-
end
|
82
|
-
|
79
|
+
login_form(referer: url)
|
80
|
+
end
|
81
|
+
|
83
82
|
post '/login' do
|
84
|
-
|
83
|
+
|
85
84
|
h = @req.params
|
86
85
|
|
87
86
|
if @passwords[h['username']] == h['password'] then
|
88
|
-
|
87
|
+
|
89
88
|
@req.session[:username] = h['username']
|
90
89
|
#'you are now logged in as ' + h['username']
|
91
90
|
redirect h['referer']
|
92
|
-
|
91
|
+
|
93
92
|
else
|
94
|
-
|
93
|
+
|
95
94
|
login_form('Invalid username or password, try again.',401)
|
96
|
-
|
95
|
+
|
97
96
|
end
|
98
97
|
|
99
|
-
|
98
|
+
|
100
99
|
end
|
101
|
-
|
100
|
+
|
102
101
|
get '/logout' do
|
103
|
-
|
102
|
+
|
104
103
|
@req.session.clear
|
105
104
|
'you are now logged out'
|
106
|
-
|
107
|
-
end
|
108
|
-
|
109
|
-
get '/session' do
|
110
|
-
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
#get '/session' do
|
109
|
+
|
111
110
|
#@req.session.expires
|
112
111
|
#@req.session.options[:expire_after] = 1
|
113
|
-
|
114
|
-
|
115
|
-
end
|
116
|
-
|
112
|
+
#@req.session.options.inspect
|
113
|
+
|
114
|
+
#end
|
115
|
+
|
117
116
|
get '/user' do
|
118
|
-
|
117
|
+
|
119
118
|
if @req.session[:username] then
|
120
119
|
'You are ' + @req.session[:username]
|
121
120
|
else
|
122
121
|
'you need to log in to view this page'
|
123
|
-
end
|
124
|
-
|
122
|
+
end
|
123
|
+
|
125
124
|
end
|
126
125
|
|
127
126
|
get '/unauthorised' do
|
128
|
-
['unauthorised user', 'text/plain', 403]
|
127
|
+
['unauthorised user', 'text/plain', 403]
|
129
128
|
end
|
130
|
-
|
131
|
-
super(env, params)
|
132
|
-
|
133
|
-
end
|
134
|
-
|
129
|
+
|
130
|
+
super(env, params)
|
131
|
+
|
132
|
+
end
|
133
|
+
|
135
134
|
def login_form(msg='Log in to this site.', http_code=200, referer: '/')
|
136
|
-
|
137
|
-
s=<<EOF
|
135
|
+
|
136
|
+
s=<<EOF
|
138
137
|
p #{msg}
|
139
138
|
|
140
139
|
login
|
@@ -149,5 +148,4 @@ EOF
|
|
149
148
|
|
150
149
|
end
|
151
150
|
|
152
|
-
|
153
151
|
end
|
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.5.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-02-23 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.4'
|
42
47
|
- - ">="
|
43
48
|
- !ruby/object:Gem::Version
|
44
|
-
version: 1.
|
49
|
+
version: 1.4.0
|
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.4'
|
52
57
|
- - ">="
|
53
58
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
59
|
+
version: 1.4.0
|
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.2
|
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.2
|
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.5'
|
82
87
|
- - ">="
|
83
88
|
- !ruby/object:Gem::Version
|
84
|
-
version: 1.
|
89
|
+
version: 1.5.0
|
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.5'
|
92
97
|
- - ">="
|
93
98
|
- !ruby/object:Gem::Version
|
94
|
-
version: 1.
|
99
|
+
version: 1.5.0
|
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,14 @@ 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
|
-
rubygems_version: 3.
|
126
|
+
rubygems_version: 3.2.22
|
122
127
|
signing_key:
|
123
128
|
specification_version: 4
|
124
129
|
summary: A kind of Rack-Rscript web server which facilitates static files, cookie
|
metadata.gz.sig
CHANGED
Binary file
|