dandelion_s0 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ea07472ecc55020d0fd33111c2a197752c1a7cc8
4
+ data.tar.gz: 1d6548aef2f772a42ddc9843956856f2df28aa43
5
+ SHA512:
6
+ metadata.gz: 3a170091fc8b3ed02e3e5a2e712e258cbbd1b09896b843defd17c94b42f6b7655446dd744e4742eacae16329bbbc93f6e6d52216f321a10192ab5c0ba112055a
7
+ data.tar.gz: e55a5f140077567d69ef1e0b783b581448a27fffb1470fa7387c113939ff9ce8ccc68e463bdca112974e18e5259d5478d67bc25a72a624670c70f3f169c07177
@@ -0,0 +1,2 @@
1
+ �K=$/Jq�Eh'�p�L��N��9h��}g4��rP\���k��'T�?�bԇ� �"��\R< ؊?X���،��#�K��Ʉ.2�P��5�ﰳD�a�w��ǿm��g�8*��qHu�=0[���d�x�q!L����+0fG&�]Zur2�һ�
2
+ �Ǿ����z��P�@g����X����VW�toPs�N9_�G����O.����!���w>r1m�'��I8�.]�Š�+��i�a���Ѐ�Û
@@ -0,0 +1,3 @@
1
+ 9���wZ���nc؃A
2
+ ��^/�vPq �+����f�Ia�:��hZw�$�f�^�������~,�d�������α�+Z��MY~�=�U���$$�s31��b��x1p�Z/�?U�,m*�| ��Uu,:�~<�`�
3
+ ,�,B�Z��mj�|P�p��%3���
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: dandelion_s0.rb
4
+
5
+ require 'rack-rscript'
6
+ require 'simple-config'
7
+
8
+
9
+ class DandelionS0 < RackRscript
10
+
11
+ def initialize(opts={})
12
+
13
+ h = {root: 'www'}.merge(opts)
14
+
15
+ access_list = h[:access]
16
+ @app_root = Dir.pwd
17
+
18
+ #@access_list = {'/do/r/hello3' => 'user'}
19
+
20
+ h2 = SimpleConfig.new(access_list).to_h
21
+ conf_access = h2[:body] || h2
22
+ @access_list = conf_access.inject({}) \
23
+ {|r,x| k,v = x; r.merge(k.to_s => v.split)}
24
+
25
+ h3 = %i(log pkg_src rsc_host rsc_package_src root static debug)\
26
+ .inject({}) {|r,x| r.merge(x => h[x])}
27
+
28
+ super(h3)
29
+ end
30
+
31
+ def call(e)
32
+
33
+ request = e['REQUEST_PATH']
34
+ r = @access_list.detect {|k,v| request =~ Regexp.new(k)}
35
+ private_user = r ? r.last : nil
36
+
37
+ if private_user.nil? then
38
+ super(e)
39
+ elsif private_user.is_a? String and private_user == e['REMOTE_USER']
40
+ super(e)
41
+ elsif private_user.is_a? Array and
42
+ private_user.any? {|x| x == e['REMOTE_USER']}
43
+ super(e)
44
+ else
45
+ request = '/unauthorised/'
46
+ content, content_type, status_code = run_route(request)
47
+ content_type ||= 'text/html'
48
+ [status_code=401, {"Content-Type" => content_type}, [content]]
49
+ end
50
+
51
+ end
52
+
53
+ def default_routes(env, params)
54
+
55
+ super(env, params)
56
+
57
+ get '/unauthorised/' do
58
+ 'unauthorised user'
59
+ end
60
+
61
+ end
62
+
63
+ end
64
+
metadata ADDED
@@ -0,0 +1,107 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dandelion_s0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwNzIyMTIzNDQ4WhcN
15
+ MTkwNzIyMTIzNDQ4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLaRo9
17
+ bTSLif/gcvOc+TiDHePSGT9BLqAIIfv7I6ehOmhEEUM7tKTdw5MnxvaCQEuB5bEQ
18
+ I+dbLIjoH83EdxktJaZ2NXUDfH9hV6Eo2QN++fRf+xRt3wINThMrRDPtxOLFk3jS
19
+ D8bI0hVMUE80fE2BMe3VbFKYPPGWvDGrgUIY4kYfNu+oTSNlO+/6BxnIncesRlXA
20
+ br9NbBFrojmH28dFJja7YTsh2e4j234qiM14UUCyVQ78MSCDWQeSOajyXStMNwaA
21
+ SblWVx+BFkROoxaATpsy3SKMU9edJp2UrRWl61CF/MLyWio6i9dXJNYqZ9zBgGdG
22
+ IP4hMeah4Ic46ia3AgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
+ HQYDVR0OBBYEFHIlYmOvp6a/X38jWBDzueoE0OvgMCYGA1UdEQQfMB2BG2dlbW1h
24
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
+ ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAKiNifwuWZ+X9Tx00UJm
26
+ 01r4p9lVMJjPS1oCrxQBtklrZPTY0PF1nurvleBoCKyq4umsjCQdBVzJ39cnImHU
27
+ epg5CqZTpEfcHSqxKi/E2W55tkKmnlzDxSibEX09BZI/xSuHB1oqjTYfpop+NiVN
28
+ TUQeM2WduCYy0jFvTpnwmY4wH49kQyVkdD09fvX5F0VYMZoWPyb2RKW3d2+FIH4w
29
+ xVHn1B64M8zz47/guE2myBiuXnImEa/GfRPp+68FxhfVDoz5T0AnBm6SMni5tN0X
30
+ qdy1qHpF86UlLNBmmx73PgTZ8V0DzOHK+RC4mOtNtBOHuA4W5KKw5VeLMVSH/vlx
31
+ BbU=
32
+ -----END CERTIFICATE-----
33
+ date: 2018-07-22 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rack-rscript
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.1'
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 1.1.2
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - "~>"
50
+ - !ruby/object:Gem::Version
51
+ version: '1.1'
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 1.1.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: simple-config
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.6'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 0.6.4
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '0.6'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 0.6.4
75
+ description:
76
+ email: james@jamesrobertson.eu
77
+ executables: []
78
+ extensions: []
79
+ extra_rdoc_files: []
80
+ files:
81
+ - lib/dandelion_s0.rb
82
+ homepage: https://github.com/jrobertson/dandelion_s0
83
+ licenses:
84
+ - MIT
85
+ metadata: {}
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 2.6.13
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: A kind of Rack-Rscript web server which facilitates static files, basic authentication,
106
+ and private pages.
107
+ test_files: []
@@ -0,0 +1 @@
1
+ (3�FDF�ؗ��