chook 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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