dandelion_s1 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 742f9d5aa097f2f2d5063ef9a719c393dbcb47d8d57631e766f0b6e021b842ea
4
- data.tar.gz: 545c3ebdad0f17c382f64f81b849df7d4cbfeeafd9cbdcb67b84937d8324a871
3
+ metadata.gz: 1c59a8096fccc922ca6c3100e5e393282995c5a482d173330ddcb85f8e3490d7
4
+ data.tar.gz: 3e47b63dc991f237c69e3c6c9a90a84fa6b1d4b767569a2304ac1b33751f09c5
5
5
  SHA512:
6
- metadata.gz: 1ce3f848f51b192e2504def32c99981c540088517196d3b739fa425e608284d8867a0892e519b69e6d1857947da8c4da02716722bbc2bb09325989a02da20abb
7
- data.tar.gz: 9bc34f279f800a4f5c57391ef866832fed6f02ee2268c0c44ab568f67c03f1e2dac17a9bc87707361b7f51ef56c8b76ae2abc3b32dd7ec5ed59a711b973d16ca
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 rsc_package_src root static debug)\
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
- #@log.debug 'user: ' + user.inspect if @log
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.3.2
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
- 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-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.1'
46
+ version: '1.2'
42
47
  - - ">="
43
48
  - !ruby/object:Gem::Version
44
- version: 1.1.4
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.1'
56
+ version: '1.2'
52
57
  - - ">="
53
58
  - !ruby/object:Gem::Version
54
- version: 1.1.4
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.6'
66
+ version: '0.7'
62
67
  - - ">="
63
68
  - !ruby/object:Gem::Version
64
- version: 0.6.4
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.6'
76
+ version: '0.7'
72
77
  - - ">="
73
78
  - !ruby/object:Gem::Version
74
- version: 0.6.4
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.1'
86
+ version: '1.4'
82
87
  - - ">="
83
88
  - !ruby/object:Gem::Version
84
- version: 1.1.5
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.1'
96
+ version: '1.4'
92
97
  - - ">="
93
98
  - !ruby/object:Gem::Version
94
- version: 1.1.5
99
+ version: 1.4.6
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,15 @@ 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
+ 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
- ��tb�����|1���r|�`BXyk�/i3ڭ�v� P����Ĺ�Rځ��:j���K]�ec4��\�1�$7A���:(�(�ANܠ��t��>������Q����cx ]���O��?z�#‚�Zo���B� !%�
2
- hc���f{<.4l����T���$�� N������(9�!�bF�
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���