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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 742f9d5aa097f2f2d5063ef9a719c393dbcb47d8d57631e766f0b6e021b842ea
4
- data.tar.gz: 545c3ebdad0f17c382f64f81b849df7d4cbfeeafd9cbdcb67b84937d8324a871
3
+ metadata.gz: 84930074a139a283266c7d0008ed1c5f382b31442db078909879c740ffb0a6a1
4
+ data.tar.gz: bfb1617dc809e5c89a105706f55da63207a936b6d9ebbf481bba5f2ade955f7c
5
5
  SHA512:
6
- metadata.gz: 1ce3f848f51b192e2504def32c99981c540088517196d3b739fa425e608284d8867a0892e519b69e6d1857947da8c4da02716722bbc2bb09325989a02da20abb
7
- data.tar.gz: 9bc34f279f800a4f5c57391ef866832fed6f02ee2268c0c44ab568f67c03f1e2dac17a9bc87707361b7f51ef56c8b76ae2abc3b32dd7ec5ed59a711b973d16ca
6
+ metadata.gz: fdc62c3e2395d8f9c806d28ddf5bc222c1e2445fd77673204ab097876fb83069a107606fdd0df22fd2157290dcfd2fc2075187bb7e6d614382aeb8f2800e63f9
7
+ data.tar.gz: d4eb93516a17127e5444bacfb6055cc307396653c4855fec98c496113a0d4f3bc1cd0291ee85331070a62ddb35cb05ad5f0c3a7d4d6f744fe15c2f755c215636
checksums.yaml.gz.sig CHANGED
@@ -1,4 +1,2 @@
1
- ���5ݿ]O�:�O (Ǜ5^o
2
- a���_oHh�-��1 x�n �C�&zkz�Re wþRI
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��GmWJ�:���Xw�@��Jê��M1&Q+U��_����ݣ,��⛞�:dGV8��#2T[g0E�����^ � �,�LEG�%���E�H�ϰ%�[�����x�����Vd�kn Lȇ��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 rsc_package_src root static debug)\
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
- #@log.debug 'user: ' + user.inspect if @log
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
- @req.session.options.inspect
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.3.2
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
- MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwNzIzMTAxNzM3WhcN
15
- MTkwNzIzMTAxNzM3WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMwm/h
17
- 0TYNxdxPLtVz83GYuCvgJLLBEhsSR1N3/k5grBT5A7npXECtoLAupTK7xMbG6EuJ
18
- g0wmw6NI+T7dKYmpRJtqHwDM7h2iMIyJq5/NjYfuz/V2Xqc2GkAtLsMT2iBnHTkV
19
- frKevCxAKfEwYLgvll2wnXcYfFBRngjPW8hhvQ91A3lHxib9SqtSPiNZmX79C3/M
20
- p+zngMCEEWyaD9JZCaVY/lsj/hzGorx0qL0neUJn0oIvQzPClTyZ1nn2kYEid2qF
21
- d7DSS0OQKb2kh8xEP9P5+IAL6mtGrpkFmN+LweELNPzH7UjQXcNQz70YTC5PygAI
22
- EFguH9qMJd7p/2dLAgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
- HQYDVR0OBBYEFG56mGI2GWi6FXxJ0CytmQqp8sWwMCYGA1UdEQQfMB2BG2dlbW1h
24
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
- ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAIr04+kPDkeFOt37EuGX
26
- E0d+iUC8LPKUEANDVOFt/zPU8IAtu/a46Yt9TQ950rjmfzofw/jxt0d5f2uCGotP
27
- LbGymxJUCmP04wFjVZFlEeM8KUt8T2lsS2c+3EnECKV3YX/bNmaQvrDYtS1+spE1
28
- 2hTRNOG6EjJFGgjd15MCsQk+CMhhc6/EqQHV2QmqbQPcHcZM55dvyNANG/JWheBn
29
- 2QZIQKcP2zU4/Vha3btUrOKjLdL48mFpU5W1JmHVcGalvG12WPInaxSNhcldbbNK
30
- 1N8hBgTHd/hcz/i08u1weglfL0QBkOx9HzswCq9Iuesya/Zb40PJIbW4/A2pKm0o
31
- eek=
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: 2019-02-16 00:00:00.000000000 Z
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.1'
46
+ version: '1.4'
42
47
  - - ">="
43
48
  - !ruby/object:Gem::Version
44
- version: 1.1.4
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.1'
56
+ version: '1.4'
52
57
  - - ">="
53
58
  - !ruby/object:Gem::Version
54
- version: 1.1.4
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.6'
66
+ version: '0.7'
62
67
  - - ">="
63
68
  - !ruby/object:Gem::Version
64
- version: 0.6.4
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.6'
76
+ version: '0.7'
72
77
  - - ">="
73
78
  - !ruby/object:Gem::Version
74
- version: 0.6.4
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.1'
86
+ version: '1.5'
82
87
  - - ">="
83
88
  - !ruby/object:Gem::Version
84
- version: 1.1.5
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.1'
96
+ version: '1.5'
92
97
  - - ">="
93
98
  - !ruby/object:Gem::Version
94
- version: 1.1.5
99
+ version: 1.5.0
95
100
  description:
96
- email: james@jamesrobertson.eu
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: 2.1.2
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.0.1
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