chook 1.1.0 → 1.1.1

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.
@@ -30,7 +30,7 @@ module Chook
30
30
 
31
31
  post '/handle_webhook_event' do
32
32
  # enforce http basic auth if needed
33
- protected!
33
+ protect_via_basic_auth!
34
34
 
35
35
  # rewind to ensure read-pointer is at the start
36
36
  request.body.rewind #
@@ -30,7 +30,6 @@ module Chook
30
30
 
31
31
  # reload the handlers
32
32
  get '/reload_handlers' do
33
- protected!
34
33
  logger.info 'Reloading handlers'
35
34
  Chook::HandledEvent::Handlers.load_handlers reload: true
36
35
  'Handlers reloaded'
@@ -38,7 +37,6 @@ module Chook
38
37
 
39
38
  # used by javascript to fetch the content of a handler
40
39
  get '/handler_code/:file' do
41
- protected!
42
40
  file = Chook.config.handler_dir + params[:file]
43
41
  if file.file?
44
42
  body file.read
@@ -29,7 +29,6 @@ module Chook
29
29
  class Server < Sinatra::Base
30
30
 
31
31
  get '/' do
32
- protected!
33
32
 
34
33
  # a list of current handlers for the admin page
35
34
  @handlers_for_admin_page = []
@@ -41,7 +41,8 @@ module Chook
41
41
  # https://user:passwd@chookserver.myorg.org:443/log
42
42
  #
43
43
  post '/log' do
44
- protected!
44
+ protect_via_basic_auth!
45
+
45
46
  request.body.rewind # in case someone already read it
46
47
  raw = request.body.read
47
48
 
@@ -72,7 +73,6 @@ module Chook
72
73
  #
73
74
  #
74
75
  get '/subscribe_to_log_stream', provides: 'text/event-stream' do
75
- protected!
76
76
  content_type 'text/event-stream'
77
77
  cache_control 'no-cache'
78
78
 
@@ -97,7 +97,6 @@ module Chook
97
97
 
98
98
  # get the log level via the admin page.
99
99
  get '/current_log_level' do
100
- protected!
101
100
  Chook::Server::Log::LOG_LEVELS.invert[Chook.logger.level].to_s
102
101
  end
103
102
 
@@ -0,0 +1,48 @@
1
+ ### Copyright 2017 Pixar
2
+
3
+ ###
4
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
5
+ ### with the following modification; you may not use this file except in
6
+ ### compliance with the Apache License and the following modification to it:
7
+ ### Section 6. Trademarks. is deleted and replaced with:
8
+ ###
9
+ ### 6. Trademarks. This License does not grant permission to use the trade
10
+ ### names, trademarks, service marks, or product names of the Licensor
11
+ ### and its affiliates, except as required to comply with Section 4(c) of
12
+ ### the License and to reproduce the content of the NOTICE file.
13
+ ###
14
+ ### You may obtain a copy of the Apache License at
15
+ ###
16
+ ### http://www.apache.org/licenses/LICENSE-2.0
17
+ ###
18
+ ### Unless required by applicable law or agreed to in writing, software
19
+ ### distributed under the Apache License with the above modification is
20
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
+ ### KIND, either express or implied. See the Apache License for the specific
22
+ ### language governing permissions and limitations under the Apache License.
23
+ ###
24
+ ###
25
+
26
+ module Chook
27
+
28
+ # see server.rb
29
+ class Server < Sinatra::Base
30
+
31
+ # reload the handlers
32
+ get '/logout' do
33
+ session[:authed_admin] = nil
34
+ session[:auth_failed] = nil
35
+ redirect '/'
36
+ end # get /
37
+
38
+ # reload the handlers
39
+ post '/login' do
40
+ Chook.logger.debug "Attempting to log in #{params[:username]}"
41
+ session[:auth_failed] = !authenticate_admin(params[:username], params[:password])
42
+ redirect '/'
43
+ end # get /
44
+
45
+
46
+ end # class
47
+
48
+ end # module
@@ -34,6 +34,26 @@
34
34
  %span.def_dialect Australian/NZ informal
35
35
  %br/
36
36
  %span.def_definition a chicken or fowl
37
+ %hr/
38
+ - if Chook.config.admin_user
39
+ #login_logout_div
37
40
 
41
+ - if session[:authed_admin]
42
+ %a{ href: '/logout' }
43
+ %button#logout_btn{ type: 'button' } Log Out
44
+ = yield
38
45
 
39
- = yield
46
+ - else
47
+ %form#login_form{ name: 'login_form', method: 'POST', action: '/login' }
48
+ - if Chook.config.admin_user == Chook::Server::Auth::USE_JAMF_ADMIN_USER
49
+ Jamf Pro
50
+ Username:
51
+ %input#username{ type: :text, name: 'username' }
52
+ Password:
53
+ %input#password{ type: :password, name: 'password' }
54
+ %input#login_btn{ type: :submit, value: 'Log In' }
55
+ - if session[:auth_failed]
56
+ %span#login_incorrect &nbsp;&nbsp;&nbsp; Login Incorrect!
57
+
58
+ - else
59
+ = yield
@@ -27,6 +27,6 @@
27
27
  module Chook
28
28
 
29
29
  ### The version of the Chook framework
30
- VERSION = '1.1.0'.freeze
30
+ VERSION = '1.1.1'.freeze
31
31
 
32
32
  end # module
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chook
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Lasell
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-10-13 00:00:00.000000000 Z
12
+ date: 2018-10-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
@@ -124,6 +124,7 @@ files:
124
124
  - lib/chook/handled_subjects.rb
125
125
  - lib/chook/procs.rb
126
126
  - lib/chook/server.rb
127
+ - lib/chook/server/auth.rb
127
128
  - lib/chook/server/log.rb
128
129
  - lib/chook/server/public/css/chook.css
129
130
  - lib/chook/server/public/imgs/ChookLogoAlMcWhiggin.png
@@ -134,6 +135,7 @@ files:
134
135
  - lib/chook/server/routes/handlers.rb
135
136
  - lib/chook/server/routes/home.rb
136
137
  - lib/chook/server/routes/log.rb
138
+ - lib/chook/server/routes/login_logout.rb
137
139
  - lib/chook/server/views/admin.haml
138
140
  - lib/chook/server/views/bak.haml
139
141
  - lib/chook/server/views/config.haml