j1_template_mde 2018.4.15 → 2018.4.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +3 -3
  3. data/_includes/themes/j1/layouts/layout_shim_generator.html +4 -0
  4. data/_includes/themes/j1/modules/navigator/generator.html +4 -4
  5. data/_includes/themes/j1/modules/navigator/procedures/sidebar.proc +174 -127
  6. data/lib/j1/version.rb +1 -1
  7. data/lib/j1_app.rb +4 -1
  8. data/lib/j1_app/j1_auth_manager/auth_manager.previous.rb +939 -0
  9. data/lib/j1_app/j1_auth_manager/auth_manager.rb +386 -214
  10. data/lib/j1_app/j1_auth_manager/config.rb +103 -66
  11. data/lib/j1_app/j1_auth_manager/helpers.rb +22 -14
  12. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +7 -2
  13. data/lib/j1_app/omniauth/strategies/_unused/doumart_patreon.rb +75 -0
  14. data/lib/j1_app/omniauth/strategies/_unused/my_patreon.rb +78 -0
  15. data/lib/j1_app/omniauth/strategies/_unused/patreon.v1.rb +50 -0
  16. data/lib/j1_app/omniauth/strategies/_unused/patreon.v2-v1.rb +82 -0
  17. data/lib/j1_app/omniauth/strategies/_unused/patreon.v2.rb +79 -0
  18. data/lib/starter_web/Gemfile +185 -168
  19. data/lib/starter_web/_config.yml +85 -69
  20. data/lib/starter_web/_data/j1_resources.yml +15 -0
  21. data/lib/starter_web/_data/modules/j1_navigator.yml +79 -12
  22. data/lib/starter_web/_rack/Guardfile +75 -0
  23. data/lib/starter_web/assets/data/authclient.html +10 -7
  24. data/lib/starter_web/assets/data/banner.html +127 -127
  25. data/lib/starter_web/assets/images/patreon/premium-content-460x200.png +0 -0
  26. data/lib/starter_web/assets/images/patreon/scalable/{Premium-content.psd → premium-content.psd} +0 -0
  27. data/lib/starter_web/assets/images/patreon/scalable/value-content.psd +0 -0
  28. data/lib/starter_web/assets/images/patreon/value-content-460x200.png +0 -0
  29. data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.css +2 -2
  30. data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  31. data/lib/starter_web/assets/themes/j1/core/css/uno.css +2 -2
  32. data/lib/starter_web/assets/themes/j1/core/css/uno.min.css +1 -1
  33. data/lib/starter_web/assets/themes/j1/core/js/adapter/navigator.js +66 -11
  34. data/lib/starter_web/assets/themes/j1/core/js/adapter/navigator.js.failed +797 -0
  35. data/lib/starter_web/assets/themes/j1/core/js/adapter/template.js +26 -7
  36. data/lib/starter_web/assets/themes/j1/extensions/livereload/LICENSE +20 -0
  37. data/lib/starter_web/assets/themes/j1/extensions/livereload/README.md +249 -0
  38. data/lib/starter_web/assets/themes/j1/extensions/livereload/js/livereload.js +1951 -0
  39. data/lib/starter_web/assets/themes/j1/extensions/livereload/js/livereload.min.js +1 -0
  40. data/lib/starter_web/assets/themes/j1/extensions/patreon/patreon.widget.button.html +21 -0
  41. data/lib/starter_web/package.json +14 -5
  42. data/lib/starter_web/pages/public/about/become_a_patron.adoc +1 -1
  43. data/lib/starter_web/pages/public/blog/navigator/archive.html +0 -1
  44. metadata +19 -4
  45. data/lib/starter_web/assets/images/patreon/premium-content-420x200.png +0 -0
@@ -41,16 +41,16 @@ module J1App
41
41
  # ==========================================================================
42
42
 
43
43
  j1_web_session = {
44
- 'authenticated' => 'false',
45
- 'requested_page' => '/',
46
- 'users_allowed' => 'unknown',
47
- 'user_name' => 'unknown',
48
- 'user_id' => 'unknown',
49
- 'provider' => 'unknown',
50
- 'provider_url' => '/',
51
- 'payment_info' => 'unknown',
52
- 'permissions' => 'unknown',
53
- 'writer' => 'middleware'
44
+ :authenticated => 'false',
45
+ :requested_page => '/',
46
+ :user_name => 'unknown',
47
+ :users_allowed => 'unknown',
48
+ :user_id => 'unknown',
49
+ :provider => 'unknown',
50
+ :provider_url => '/',
51
+ :payment_info => 'unknown',
52
+ :permissions => 'unknown',
53
+ :writer => 'middleware'
54
54
  }
55
55
 
56
56
  # Enable SSL for the rack session if configured
@@ -120,55 +120,55 @@ module J1App
120
120
  # up the session cookie (as it is limited to 4K)
121
121
  skip_extra = true
122
122
 
123
- if J1App.provider.include? 'patreon'
124
- scope = J1App.provider_scope 'patreon'
125
- data_collection = J1App.provider_data 'patreon'
123
+ if J1App.active_providers.include? 'patreon'
124
+ scope = J1App.auth_config['providers']['patreon']['scope'].join(',')
125
+ data_collection = J1App.auth_config['providers']['patreon']['data_fields'].join(',')
126
126
  skip_extra = false if data_collection =~ /raw/i
127
127
  provider :patreon,
128
- ENV['PATREON_CLIENT_ID'],
129
- ENV['PATREON_CLIENT_SECRET'],
130
- scope: "#{scope}",
131
- skip_extra: skip_extra
128
+ ENV['PATREON_CLIENT_ID'],
129
+ ENV['PATREON_CLIENT_SECRET'],
130
+ scope: "#{scope}",
131
+ skip_extra: skip_extra
132
132
  end
133
- if J1App.provider.include? 'disqus'
134
- scope = J1App.provider_scope 'disqus'
135
- data_collection = J1App.provider_data 'disqus'
133
+ if J1App.active_providers.include? 'disqus'
134
+ scope = J1App.auth_config['providers']['disqus']['scope'].join(',')
135
+ data_collection = J1App.auth_config['providers']['disqus']['data_fields'].join(',')
136
136
  skip_extra = false if data_collection =~ /raw/i
137
137
  provider :disqus,
138
- ENV['DISQUS_CLIENT_ID'],
139
- ENV['DISQUS_CLIENT_SECRET'],
140
- scope: "#{scope}",
141
- skip_extra: skip_extra
138
+ ENV['DISQUS_CLIENT_ID'],
139
+ ENV['DISQUS_CLIENT_SECRET'],
140
+ scope: "#{scope}",
141
+ skip_extra: skip_extra
142
142
  end
143
- if J1App.provider.include? 'facebook'
144
- scope = J1App.provider_scope 'facebook'
145
- data_collection = J1App.provider_data 'facebook'
143
+ if J1App.active_providers.include? 'facebook'
144
+ scope = J1App.auth_config['providers']['facebook']['scope'].join(',')
145
+ data_collection = J1App.auth_config['providers']['facebook']['data_fields'].join(',')
146
146
  skip_extra = false if data_collection =~ /raw/i
147
147
  provider :facebook,
148
- ENV['FACEBOOK_CLIENT_ID'],
149
- ENV['FACEBOOK_CLIENT_SECRET'],
150
- scope: "#{scope}",
151
- skip_extra: skip_extra
148
+ ENV['FACEBOOK_CLIENT_ID'],
149
+ ENV['FACEBOOK_CLIENT_SECRET'],
150
+ scope: "#{scope}",
151
+ skip_extra: skip_extra
152
152
  end
153
- if J1App.provider.include? 'github'
154
- scope = J1App.provider_scope 'github'
155
- data_collection = J1App.provider_data 'github'
153
+ if J1App.active_providers.include? 'github'
154
+ scope = J1App.auth_config['providers']['github']['scope'].join(',')
155
+ data_collection = J1App.auth_config['providers']['github']['data_fields'].join(',')
156
156
  skip_extra = false if data_collection =~ /raw/i
157
157
  provider :github,
158
- ENV['GITHUB_CLIENT_ID'],
159
- ENV['GITHUB_CLIENT_SECRET'],
160
- scope: "#{scope}",
161
- skip_extra: skip_extra
158
+ ENV['GITHUB_CLIENT_ID'],
159
+ ENV['GITHUB_CLIENT_SECRET'],
160
+ scope: "#{scope}",
161
+ skip_extra: skip_extra
162
162
  end
163
- if J1App.provider.include? 'twitter'
164
- scope = J1App.provider_scope 'twitter'
165
- data_collection = J1App.provider_data 'twitter'
163
+ if J1App.active_providers.include? 'twitter'
164
+ scope = J1App.auth_config['providers']['twitter']['scope'].join(',')
165
+ data_collection = J1App.auth_config['providers']['twitter']['data_fields'].join(',')
166
166
  skip_extra = false if data_collection =~ /raw/i
167
167
  provider :twitter,
168
- ENV['TWITTER_CLIENT_ID'],
169
- ENV['TWITTER_CLIENT_SECRET'],
170
- scope: "#{scope}",
171
- skip_extra: skip_extra
168
+ ENV['TWITTER_CLIENT_ID'],
169
+ ENV['TWITTER_CLIENT_SECRET'],
170
+ scope: "#{scope}",
171
+ skip_extra: skip_extra
172
172
  end
173
173
  end
174
174
 
@@ -184,11 +184,9 @@ module J1App
184
184
 
185
185
  # Load user profiles, permissions, conditions and strategies
186
186
  # --------------------------------------------------------------------------
187
- # provider_permission = J1App.get_provider_permissions "disqus"
188
- users = J1App.users
187
+
188
+ providers = J1App.auth_config['providers']
189
189
  permissions = J1App.permissions
190
- conditions = J1App.conditions
191
- strategies = J1App.strategies
192
190
 
193
191
 
194
192
  # ==========================================================================
@@ -198,7 +196,8 @@ module J1App
198
196
  # Prepare root (index) page for app detection
199
197
  #
200
198
  before '/' do
201
- logger.info "ROOT PAGE: Prepare J1 web session data"
199
+ log_info! "RootPage", "PrepareCookie", 'j1.web.session'
200
+ #logger.info "ROOT PAGE: Prepare J1 web session data"
202
201
 
203
202
  # read existing/current cookie 'j1.web.session' to update all data
204
203
  # of j1_web_session (hash) otherwise set initial data
@@ -217,35 +216,37 @@ module J1App
217
216
  # Create|Initialize the J1 web session cookie
218
217
  # ------------------------------------------------------------------------
219
218
  if warden.authenticated?
219
+ log_info! "RootPage", 'UpdateCookie', 'Set current user data'
220
+
220
221
  user = warden.user
221
- logger.info "ROOT PAGE: User detected as signed in at provider: #{user[:provider]}"
222
+ log_info! "RootPage", 'AuthCheck', 'User detected as signed in', "#{user[:provider]}"
222
223
  j1_web_session['authenticated'] = 'true'
223
224
  j1_web_session['requested_page'] = '/'
224
- j1_web_session['users_allowed'] = users["#{user[:provider]}"]
225
+ j1_web_session['users_allowed'] = providers["#{user[:provider]}"]['users']
225
226
  j1_web_session['user_name'] = user[:info]['nickname']
226
227
  j1_web_session['user_id'] = user[:uid]
227
228
  j1_web_session['provider'] = user[:provider]
228
- j1_web_session['provider_url'] = J1App.provider_url user[:provider]
229
- j1_web_session['permissions'] = J1App.get_provider_permissions "#{user[:provider]}"
229
+ j1_web_session['provider_url'] = providers["#{user[:provider]}"]['home_url']
230
+ j1_web_session['permissions'] = providers["#{user[:provider]}"]['permissions']
230
231
  j1_web_session['payment_info'] = user[:info]['payment_info']['attributes'] unless user[:info]['payment_info'].nil?
231
232
  else
232
- logger.info "ROOT PAGE: User detected as signed out"
233
+ log_info! "RootPage", 'AuthCheck', 'User detected', 'signed out'
233
234
  j1_web_session['authenticated'] = 'false'
234
235
  j1_web_session['requested_page'] = '/'
235
236
  j1_web_session['users_allowed'] = 'all'
236
237
  j1_web_session['user_name'] = 'unknown'
237
238
  j1_web_session['user_id'] = 'unknown'
238
239
  j1_web_session['payment_info'] = 'unknown'
239
- j1_web_session['provider'] = 'unknown'
240
+ j1_web_session['provider'] = 'unknown'
240
241
  j1_web_session['provider_url'] = 'unknown'
241
242
  j1_web_session['permissions'] = 'unknown'
242
243
  end
243
244
  j1_web_session['writer'] = 'middleware'
244
245
 
245
246
  session_json = j1_web_session.to_json
247
+ log_info! "RootPage", 'WriteCookie', 'j1.web.session' # "#{session_json}"
248
+
246
249
  session_encoded = Base64.encode64(session_json)
247
- logger.info "ROOT PAGE: Write J1 web session data to cookie"
248
- #logger.info "ROOT PAGE: write J1 web session data as: #{session_json}"
249
250
  response.set_cookie(
250
251
  'j1.web.session',
251
252
  domain: false,
@@ -265,115 +266,185 @@ module J1App
265
266
  # if request.warden.user.respond_to?(:info)
266
267
  # ------------------------------------------------------------------------
267
268
  if env['HTTP_COOKIE'].include? 'j1.web.session'
268
- session_encoded = request.cookies['j1.web.session']
269
- session_decoded = Base64.decode64(session_encoded)
270
- logger.info "BEFORE AUTHENTICATION: Read J1 web session data"
271
- #logger.info "BEFORE AUTHENTICATION: Read J1 web session data as: #{session_decoded}"
272
- j1_web_session = JSON.parse(session_decoded)
269
+ session_encoded = request.cookies['j1.web.session']
270
+ session_decoded = Base64.decode64(session_encoded)
271
+ j1_web_session = JSON.parse(session_decoded)
272
+
273
+ log_info! 'Authorisation', 'ReadCookie', 'j1.web.session' # "#{session_decoded}"
273
274
  else
274
- requested_page = env['REQUEST_URI']
275
+ requested_page = env['REQUEST_URI']
275
276
  j1_web_session['requested_page'] = "#{env['REQUEST_URI']}"
276
277
  end
277
278
 
278
279
  # Create|Initialize the J1 web session cookie
279
280
  # ------------------------------------------------------------------------
280
281
  if warden.authenticated?
282
+ log_info! 'Authorisation', 'UpdateCookie', 'Set current user data'
283
+
281
284
  user = warden.user
282
285
  j1_web_session['authenticated'] = 'true'
283
286
  j1_web_session['user_name'] = user[:info]['nickname']
284
287
  j1_web_session['user_id'] = user[:uid]
285
288
  j1_web_session['provider'] = user[:provider]
286
- j1_web_session['provider_url'] = J1App.provider_url user[:provider]
287
- j1_web_session['users_allowed'] = users["#{user[:provider]}"]
288
- j1_web_session['permissions'] = J1App.get_provider_permissions "#{user[:provider]}"
289
+ j1_web_session['provider_url'] = providers["#{user[:provider]}"]['home_url']
290
+ j1_web_session['users_allowed'] = providers["#{user[:provider]}"]['users']#
291
+ j1_web_session['permissions'] = providers["#{user[:provider]}"]['permissions']
289
292
  j1_web_session['payment_info'] = user[:info]['payment_info']['attributes'] unless user[:info]['payment_info'].nil?
290
293
  j1_web_session['writer'] = 'middleware'
291
- end
292
294
 
293
- session_json = j1_web_session.to_json
294
- session_encoded = Base64.encode64(session_json)
295
- logger.info "INITIALISATION: Write J1 web session data to cookie"
296
- response.set_cookie(
297
- 'j1.web.session',
298
- domain: false,
299
- value: session_encoded.to_s,
300
- path: '/'
301
- )
295
+ session_json = j1_web_session.to_json
296
+ log_info! 'Authorisation', 'WriteCookie', 'j1.web.session' # "#{session_json}"
297
+
298
+ session_encoded = Base64.encode64(session_json)
299
+ response.set_cookie(
300
+ 'j1.web.session',
301
+ domain: false,
302
+ value: session_encoded.to_s,
303
+ path: '/'
304
+ )
305
+ end
302
306
 
303
307
  # User state|content detection for implicit authentication
304
308
  # ------------------------------------------------------------------------
309
+ log_info! 'Authorisation', 'CheckConfig', 'Authentication enabled', "false" if authentication_enabled? == false
310
+ log_info! 'Authorisation', 'CheckConfig', 'Pass for all pages' if authentication_enabled? == false
305
311
  pass if authentication_enabled? == false
306
- logger.info "AUTORISATION: Authentication enabled. Check for public content."
312
+ log_info! 'Authorisation', 'CheckConfig', 'Authentication enabled', "true"
313
+ log_info! 'Authorisation', 'DetectContent', 'Check for public content' if public_content?
314
+ log_info! 'Authorisation', 'DetectContent', 'Pass all public content' if public_content?
307
315
  pass if public_content?
308
- logger.info "AUTORISATION: Protected content detected. Check for authorisation."
316
+ log_info! 'Authorisation', 'DetectContent', 'Check for protected content'
309
317
 
310
- env['REQUEST_URI'].scan(/(private|premium)/) do |match|
318
+ requested_page = env['REQUEST_URI']
319
+
320
+ requested_page.scan(/(private|premium)/) do |match|
311
321
 
312
322
  category = match[0]
313
- logger.info "AUTORISATION: Content category detected: #{category}"
323
+ log_info! 'Authorisation', 'DetectContent', 'Content detected', "#{category}"
314
324
 
315
325
  if warden.authenticated?
316
- logger.info "AUTORISATION: User detected as signed in."
317
-
318
- current_provider = warden.user[:provider]
319
- provider_strategy = strategies["#{current_provider}"]
320
- provider_url = J1App.provider_url current_provider
321
- j1_web_session['provider_url'] = provider_url
322
- j1_web_session['users_allowed'] = users["#{current_provider}"]
323
- j1_web_session['permissions'] = J1App.get_provider_permissions "#{user[:provider]}"
324
-
325
- logger.info "AUTORISATION: Current provider detected: #{current_provider}"
326
- if permissions[category].include? current_provider
327
- logger.info "AUTORISATION: Current provider #{current_provider} support category: #{category}"
326
+ log_info! 'Authorisation', 'UpdateCookie', 'Set current user data'
327
+
328
+ user_name = user[:info]['nickname']
329
+ log_info! 'Authorisation', 'AuthCheck', 'User detected', "#{user_name}"
330
+
331
+ current_provider = warden.user[:provider]
332
+
333
+ # provider_strategy = strategies["#{default_provider}"]
334
+ strategy = providers["#{current_provider}"]['strategy']
335
+ provider_strategy = :"#{strategy}"
336
+
337
+ j1_web_session['user_name'] = user_name
338
+ j1_web_session['provider_url'] = providers["#{current_provider}"]['home_url']
339
+ j1_web_session['users_allowed'] = providers["#{current_provider}"]['users']
340
+ j1_web_session['permissions'] = providers["#{user[:provider]}"]['permissions']
341
+ j1_web_session['requested_page'] = requested_page
342
+
343
+ if permissions[:"#{category}"].include? current_provider
344
+ log_info! 'Authorisation', 'ContentCheck', 'Provider detected', "#{current_provider}"
345
+ log_info! 'Authorisation', 'ContentCheck', 'Category supported', "yes - #{category}"
346
+ # Check permissions
347
+ #
348
+ log_info! 'Authorisation', 'ConditionCheck', 'Check permissions for provider', "#{current_provider}"
349
+ conditions = J1App.conditions current_provider
350
+ if conditions["#{category}"]
351
+ log_info! 'Authorisation', 'ConditionCheck', 'Conditions detected for', "#{category}"
352
+ conditions["#{category}"].each do |k, v|
353
+ case k
354
+ when 'enabled'
355
+ log_info! 'Authorisation', 'ConditionCheck', "#{k}", "#{v}"
356
+ when 'users'
357
+ log_info! 'Authorisation', 'ConditionCheck', 'users'
358
+ v.each do |k, v|
359
+ log_info! 'Authorisation', 'ConditionCheck', "users - #{k}", "#{v}"
360
+ end
361
+ when 'payment'
362
+ log_info! 'Authorisation', 'ConditionCheck', 'payment'
363
+ v.each do |k, v|
364
+ case k
365
+ when 'tiers'
366
+ log_info! 'Authorisation', 'ConditionCheck', "payment - #{k}", "#{v}"
367
+ when 'tier'
368
+ v.each do |k, v|
369
+ log_info! 'Authorisation', 'ConditionCheck', 'payment - tiers - tier : ' "#{k}", "#{v}"
370
+ end
371
+ end
372
+ end
373
+ end
374
+ end
375
+ end
328
376
  else
329
- logger.info "AUTORISATION: SignIn to provider #{permissions[category][0]} for category: #{category}"
377
+ provider = permissions[:"#{category}"][0]
378
+ log_info! 'Authorisation', 'ContentCheck', 'Provider detected', "#{current_provider}"
379
+ log_info! 'Authorisation', 'ContentCheck', 'Category supported', "no - #{category}"
380
+ log_info! 'Authorisation', 'SignIn', 'Provider', "#{provider}"
330
381
  warden.logout
331
382
  session.clear
332
383
 
333
- allowed_users = users["#{current_provider}"].join(',')
384
+ session_json = j1_web_session.to_json
385
+ log_info! 'Authorisation', 'WriteCookie', 'j1.web.session' # "#{session_json}"
386
+
387
+ session_encoded = Base64.encode64(session_json)
388
+ response.set_cookie(
389
+ 'j1.web.session',
390
+ domain: false,
391
+ value: session_encoded.to_s,
392
+ path: '/'
393
+ )
334
394
 
335
- redirect "/access_protected_content?provider=#{permissions[category][0]}&category=#{category}&page=#{env['REQUEST_URI']}&allowed_users=#{allowed_users}"
336
- # warden.authenticate! :"omni_#{permissions[category][0]}"
395
+ log_info! 'Authorisation', 'AuthManager', 'Request for authentication'
396
+
397
+ allowed_users = providers["#{provider}"]['users'].join(',')
398
+ redirect "/access_protected_content?provider=#{provider}&category=#{category}&page=#{requested_page}&allowed_users=#{allowed_users}"
337
399
  end
400
+ log_info! 'Authorisation', 'AuthCheck', 'Pass to requested page', "#{requested_page}"
338
401
  pass
339
402
  else
340
- logger.info "AUTORISATION: User detected as signed out."
341
- default_provider = permissions[category][0]
342
- logger.info "AUTORISATION: Set default provider: #{default_provider}"
403
+ log_info! 'Authentication', 'AuthCheck', 'User detected', 'signed out'
404
+ default_provider = permissions[:"#{category}"][0]
405
+ log_info! 'Authentication', 'ContentCheck', 'Set default provider', "#{default_provider}"
406
+
407
+ # provider_strategy = strategies["#{default_provider}"]
408
+ strategy = providers["#{default_provider}"]['strategy']
409
+ provider_strategy = :"#{strategy}"
343
410
 
344
- authentication_strategy = strategies["#{default_provider}"]
345
- logger.info "AUTHENTICATION: Set authentication strategy: #{authentication_strategy}"
346
- logger.info "AUTHENTICATION: SignIn provider #{permissions[category][0]} for category: #{category}"
411
+ log_info! 'Authentication', 'SignIn', 'Default provider detected', "#{default_provider}"
412
+ log_info! 'Authentication', 'SignIn', 'Set authentication strategy', "#{provider_strategy}"
413
+
414
+ case provider_strategy
347
415
 
348
- case authentication_strategy
349
416
  when :org
350
417
  warden.authenticate!
351
418
  github_organization_authenticate! ENV['GITHUB_ORG_NAME']
352
- logger.info "Hi There, #{j1_web_session[:user_name]}! You have access to the #{params['id']} organization."
419
+ logger.info "Hi There, #{j1_web_session[:user_name]}! You have access to the #{params['id']} organization"
420
+
353
421
  when :team
354
422
  warden.authenticate!
355
423
  github_team_authenticate! ENV['GITHUB_TEAM_ID']
356
- logger.info "Hi There, #{j1_web_session[:user_name]}! You have access to the #{params['id']} team."
424
+ logger.info "Hi There, #{j1_web_session[:user_name]}! You have access to the #{params['id']} team"
425
+
357
426
  when :teams
358
427
  warden.authenticate!
359
428
  github_teams_authenticate! ENV['GITHUB_TEAM_IDS'].split(',')
360
- logger.info "Hi There, #{j1_web_session[:user_name]}! You have access to the #{params['id']} team."
429
+ logger.info "Hi There, #{j1_web_session[:user_name]}! You have access to the #{params['id']} team"
430
+
361
431
  when :member
432
+ log_info! 'Authentication', 'SignIn', "Strategy detected", "member"
362
433
 
363
434
  if env['HTTP_COOKIE'].include? 'j1.web.session'
364
- session_encoded = request.cookies['j1.web.session']
365
- session_decoded = Base64.decode64(session_encoded)
366
- logger.info "BEFORE AUTHENTICATION: Read J1 web session data"
367
- #logger.info "BEFORE AUTHENTICATION: Read J1 web session data as: #{session_decoded}"
368
- j1_web_session = JSON.parse(session_decoded)
435
+ session_encoded = request.cookies['j1.web.session']
436
+ session_decoded = Base64.decode64(session_encoded)
437
+ log_info! 'Authentication', 'ReadCookie', 'j1.web.session' # "#{session_decoded}"
438
+ j1_web_session = JSON.parse(session_decoded)
369
439
  end
370
440
 
371
- # Get access to protected content
441
+ # Update cookie data
372
442
  # ----------------------------------------------------------------------
373
- logger.info "STRATEGY: set redirect to: #{j1_web_session['requested_page']}"
374
- j1_web_session['provider_url'] = J1App.provider_url default_provider
375
- j1_web_session['users_allowed'] = users["#{default_provider}"]
376
- j1_web_session['permissions'] = J1App.get_provider_permissions "#{default_provider}"
443
+ log_info! 'Authentication', 'UpdateCookie', 'Set current user data'
444
+
445
+ j1_web_session['provider_url'] = providers["#{default_provider}"]['home_url']
446
+ j1_web_session['users_allowed'] = providers["#{default_provider}"]['users']
447
+ j1_web_session['permissions'] = providers["#{default_provider}"]['permissions']
377
448
  j1_web_session['requested_page'] = env['REQUEST_URI']
378
449
  j1_web_session['writer'] = 'middleware'
379
450
 
@@ -381,8 +452,8 @@ module J1App
381
452
  #
382
453
  session_json = j1_web_session.to_json
383
454
  session_encoded = Base64.encode64(session_json)
384
- logger.info "STRATEGY: Write J1 web session data to cookie"
385
- #logger.info "STRATEGY: write J1 web session data as: #{session_json}"
455
+ log_info! 'Authentication', 'WriteCookie', 'j1.web.session' # "#{session_json}"
456
+
386
457
  response.set_cookie(
387
458
  'j1.web.session',
388
459
  domain: false,
@@ -390,13 +461,16 @@ module J1App
390
461
  path: '/'
391
462
  )
392
463
 
393
- allowed_users = users["#{default_provider}"].join(',')
394
- redirect "/access_protected_content?provider=#{permissions[category][0]}&category=#{category}&page=#{env['REQUEST_URI']}&allowed_users=#{allowed_users}"
464
+ allowed_users = providers["#{default_provider}"]['users'].join(',')
465
+ requested_page = env['REQUEST_URI']
466
+
467
+ log_info! 'Authorisation', 'AuthManager', 'Request for authentication'
468
+ redirect "/access_protected_content?provider=#{default_provider}&category=#{category}&page=#{requested_page}&allowed_users=#{allowed_users}"
395
469
  else
396
470
  raise J1App::ConfigError
397
471
  end
398
- end
399
472
 
473
+ end
400
474
  end
401
475
  end
402
476
 
@@ -410,13 +484,16 @@ module J1App
410
484
  get '/authentication' do
411
485
  # collect (common) GET parameter|s
412
486
  #
413
- request = params.fetch('request')
414
- provider = params.fetch('provider')
487
+ request = params.fetch('request')
488
+ provider = params.fetch('provider')
415
489
 
416
490
  if request === 'signin'
491
+
492
+ log_info! 'Authentication', 'RestApi', 'Called for SignIn'
493
+
417
494
  # collect (additional) GET parameter|s
418
495
  # ----------------------------------------------------------------------
419
- allowed_users = params.fetch('allowed_users')
496
+ allowed_users = params.fetch('allowed_users')
420
497
 
421
498
  j1_web_session['users_allowed'] = allowed_users
422
499
  j1_web_session['writer'] = 'middleware'
@@ -424,8 +501,9 @@ module J1App
424
501
  # Write updated J1 session data to cookie
425
502
  # --------------------------------------------------------------------
426
503
  session_json = j1_web_session.to_json
504
+ log_info! 'Authentication', 'RestApi', 'Write J1 web session data to cookie' # #{session_json}"
505
+
427
506
  session_encoded = Base64.encode64(session_json)
428
- logger.info "SIGNIN: Write J1 web session data to cookie"
429
507
  response.set_cookie(
430
508
  'j1.web.session',
431
509
  domain: false,
@@ -434,18 +512,21 @@ module J1App
434
512
  )
435
513
 
436
514
  if warden.authenticated?
437
- logger.info "SIGNIN: #{warden.user[:info]['nickname']} already signed in"
515
+ log_info! 'Authentication', 'RestApi', 'Already signed in', "#{warden.user[:info]['nickname']} "
438
516
  else
439
- logger.info "SIGNIN: going for authentication at: #{provider}"
517
+ log_info! 'Authentication', 'RestApi', 'Go for authentication', "#{provider}"
440
518
  # Make (really) sure that old session is cleared before login
441
519
  # --------------------------------------------------------------------
442
520
  warden.logout
443
521
  session.clear
444
522
  warden.authenticate! :"omni_#{provider}"
445
523
  end
446
- logger.info "SIGNIN: redirect to #{j1_web_session['requested_page']}"
524
+ log_info! 'Authentication', 'RestApi', 'Requested page', "#{j1_web_session['requested_page']}"
447
525
  redirect j1_web_session['requested_page']
448
526
  elsif request === 'signout'
527
+
528
+ log_info! 'Authentication', 'RestApi', 'Called for sign out'
529
+
449
530
  # collect (additional) GET parameter|s
450
531
  # ----------------------------------------------------------------------
451
532
  provider_signout = params.fetch('provider_signout')
@@ -462,8 +543,7 @@ module J1App
462
543
  if env['HTTP_COOKIE'].include? 'j1.web.session'
463
544
  session_encoded = env['rack.request.cookie_hash']['j1.web.session']
464
545
  session_decoded = Base64.decode64(session_encoded)
465
- #logger.info "SIGNOUT: read J1 web session data as: #{session_decoded}"
466
- logger.info "SIGNOUT: read J1 web session data"
546
+ log_info! 'Authentication', 'RestApi', 'Read J1 web session data from cookie' # #{session_decoded}"
467
547
  j1_web_session = JSON.parse(session_decoded)
468
548
  else
469
549
  j1_web_session['requested_page'] = env['REQUEST_URI']
@@ -484,8 +564,9 @@ module J1App
484
564
  # Write updated J1 session data to cookie
485
565
  # --------------------------------------------------------------------
486
566
  session_json = j1_web_session.to_json
567
+ log_info! 'Authentication', 'RestApi', 'Write J1 web session data to cookie' # #{session_json}"
568
+
487
569
  session_encoded = Base64.encode64(session_json)
488
- logger.info "SIGNOUT: Write J1 web session data to cookie"
489
570
  response.set_cookie(
490
571
  'j1.web.session',
491
572
  domain: false,
@@ -494,20 +575,26 @@ module J1App
494
575
  )
495
576
 
496
577
  if provider_signout === 'true'
497
- logger.info "SIGNOUT: for #{user} completely at provider: #{provider}"
578
+ log_info! 'Authentication', 'RestApi', 'Sign out user', "#{user}"
579
+ log_info! 'Authentication', 'RestApi', 'Sign out provider', "#{provider}"
580
+ log_info! 'Authentication', 'RestApi', 'Sign out from', "#{provider}"
581
+ log_info! 'Authentication', 'RestApi', 'Redirect to provider', "#{provider_url}"
498
582
  redirect "#{provider_url}"
499
583
  else
500
- logger.info "SIGNOUT: for #{user} from current session at provider: #{provider}"
584
+ log_info! 'Authentication', 'RestApi', 'Sign out user', "#{user}"
585
+ log_info! 'Authentication', 'RestApi', 'Sign out provider', "#{provider}"
586
+ log_info! 'Authentication', 'RestApi', 'Sign out from', "session"
587
+ log_info! 'Authentication', 'RestApi', 'Redirect to page', "#{j1_web_session['requested_page']}"
501
588
 
502
589
  # If signed out, redirect ONLY for PUBLIC pages
503
590
  # ------------------------------------------------------------------
504
591
  if redirect_whitelisted?j1_web_session['requested_page']
505
- logger.info 'SIGNOUT: redirect whitelisted'
506
- logger.info "SIGNOUT: redirect to #{j1_web_session['requested_page']}"
592
+ log_info! 'Authentication', 'RestApi', 'Redirect detetced as', "whitelisted"
593
+ log_info! 'Authentication', 'RestApi', 'Requested page', "#{j1_web_session['requested_page']}"
507
594
  redirect j1_web_session['requested_page']
508
595
  else
509
- logger.info "SIGNOUT: redirect NOT whitelisted: #{j1_web_session['requested_page']}"
510
- logger.info 'SIGNOUT: redirect to web root: /'
596
+ log_info! 'Authentication', 'RestApi', 'Redirect detetced as', "NOT whitelisted"
597
+ log_info! 'Authentication', 'RestApi', 'Redirect to', "/"
511
598
  redirect '/'
512
599
  end
513
600
  end
@@ -516,16 +603,16 @@ module J1App
516
603
  # (modal) is provided by the auth client if a user isn't signed in.
517
604
  # Kept this alternative for cases something went wrong.
518
605
  # --------------------------------------------------------------------
519
- logger.info 'DEAD PATH SIGNOUT: not signed in'
606
+ log_info! 'Authentication', 'RestApi', 'DEAD PATH: Called for sign out', 'NOT signed in'
520
607
 
521
608
  # Read current J1 session cookie
522
609
  # --------------------------------------------------------------------
523
610
  if env['HTTP_COOKIE'].include? 'j1.web.session'
524
- session_encoded = env['rack.request.cookie_hash']['j1.web.session']
525
- session_decoded = Base64.decode64(session_encoded)
526
- # logger.info "DEAD PATH SIGNOUT: read J1 web session data as: #{session_decoded}"
527
- logger.info "DEAD PATH SIGNOUT: read J1 web session data"
528
- j1_web_session = JSON.parse(session_decoded)
611
+ session_encoded = env['rack.request.cookie_hash']['j1.web.session']
612
+ session_decoded = Base64.decode64(session_encoded)
613
+ j1_web_session = JSON.parse(session_decoded)
614
+
615
+ log_info! 'Authentication', 'RestApi', 'DEAD PATH: Read J1 web session data from cookie' # #{session_decoded}"
529
616
  else
530
617
  j1_web_session['requested_page'] = env['REQUEST_URI']
531
618
  end
@@ -545,15 +632,17 @@ module J1App
545
632
  # Write updated J1 session data to cookie
546
633
  # --------------------------------------------------------------------
547
634
  session_json = j1_web_session.to_json
635
+ log_info! 'Authentication', 'RestApi', 'DEAD PATH: Write J1 web session data to cookie' # #{session_json}"
636
+
548
637
  session_encoded = Base64.encode64(session_json)
549
- logger.info "DEAD PATH SIGNOUT: Write J1 web session data to cookie"
550
638
  response.set_cookie(
551
639
  'j1.web.session',
552
640
  domain: false,
553
641
  value: session_encoded.to_s,
554
642
  path: '/'
555
643
  )
556
- logger.info "DEAD PATH SIGNOUT: redirect to #{j1_web_session['requested_page']}"
644
+
645
+ log_info! 'Authentication', 'RestApi', 'DEAD PATH: Redirect to requested page', "#{j1_web_session['requested_page']}"
557
646
  redirect j1_web_session['requested_page']
558
647
  end
559
648
  else
@@ -565,60 +654,112 @@ module J1App
565
654
  # --------------------------------------------------------------------------
566
655
  get '/redirect_after_callback' do
567
656
 
568
- session_encoded = request.cookies['j1.web.session']
569
- session_decoded = Base64.decode64(session_encoded)
570
- j1_web_session = JSON.parse(session_decoded)
657
+ reward = {
658
+ :id => 'unknown',
659
+ :name => 'unknown',
660
+ :link => 'javascript:void(0)'
661
+ }
662
+
663
+ campaign = {
664
+ :id => 'unknown',
665
+ :link => 'javascript:void(0)'
666
+ }
667
+
668
+ session_encoded = request.cookies['j1.web.session']
669
+ session_decoded = Base64.decode64(session_encoded)
670
+ j1_web_session = JSON.parse(session_decoded)
571
671
 
572
- #logger.info "AFTER AUTHENTICATION: read J1 web session data as: #{j1_web_session}"
573
- logger.info "AFTER AUTHENTICATION: read J1 web session data"
672
+ log_info! 'Authentication', 'Callback', 'Update web session data' # "#{j1_web_session}"
673
+
674
+ user = warden.user
675
+ user_json = user.to_json
676
+
677
+ if user[:provider] === 'disqus'
678
+ user[:info][:urls][:site] = "https://disqus.com"
679
+ user[:info][:urls][:home] = user[:info]['urls']['profileUrl']
680
+ user[:info][:urls][:blog] = "https://disqus.com/by/juergen_adams/"
681
+ user[:info][:urls][:member] = user[:info]['urls']['profileUrl']
682
+ end
683
+
684
+ if user[:provider] === 'github'
685
+ user[:info][:urls][:site] = "https://github.com"
686
+ user[:info][:urls][:home] = user[:info]['urls']['GitHub']
687
+ user[:info][:urls][:blog] = "https://github.com/jekyll-one"
688
+ user[:info][:urls][:member] = user[:info]['urls']['Blog']
689
+ end
690
+
691
+ if user[:provider] === 'patreon'
692
+ reward_url = user[:info]['payment_info']['relationships']['reward']['links']['related']
693
+ reward_json = RestClient.get "#{reward_url}", {:content_type => :json, :accept => :json}
694
+ reward_data = JSON.parse(reward_json)
695
+
696
+ user[:info][:urls][:site] = "https://patreon.com"
697
+ user[:info][:urls][:home] = "https://patreon.com/home"
698
+ user[:info][:urls][:blog] = "https://patreon.com/jekyll_one"
699
+ # user[:info][:urls][:member] = reward_data['included'][0]['attributes']['url']
700
+ user[:info][:urls][:member] = "https://patreon.com" + reward_data['data']['attributes']['url']
701
+
702
+ reward[:id] = reward_data['data']['id']
703
+ reward[:name] = reward_data['data']['attributes']['title']
704
+ reward[:link] = "https://patreon.com" + reward_data['data']['attributes']['url']
705
+
706
+ campaign[:id] = reward_data['data']['relationships']['campaign']['data']['id']
707
+ campaign[:link] = reward_data['data']['relationships']['campaign']['links']['related']
708
+ end
709
+
710
+ user[:extra][:reward] = reward
711
+ user[:extra][:campaign] = campaign
712
+
713
+ if user.nil?
714
+ # Collection of session data failed (e.g cookie > 4K)
715
+ #
716
+ log_info! 'Authentication', 'Callback', 'Internal error', 'User authentication failed'
574
717
 
575
- user = warden.user
576
- user_json = user.to_json
718
+ warden.logout
719
+ session.clear
720
+ redirect "/access_denied?provider=unknown&user=unknown&category=unknown"
721
+ else
722
+ log_info! 'Authentication', 'Callback', 'Set current user data'
577
723
 
578
- unless user.nil?
579
724
  j1_web_session['user_name'] = user[:info]['nickname']
580
725
  j1_web_session['user_id'] = user[:uid]
581
726
  j1_web_session['provider'] = user[:provider]
582
- j1_web_session['permissions'] = J1App.get_provider_permissions "#{user[:provider]}"
727
+ j1_web_session['permissions'] = providers["#{user[:provider]}"]['permissions']
583
728
  j1_web_session['authenticated'] = 'true'
584
729
  j1_web_session['payment_info'] = user[:info]['payment_info']['attributes'] unless user[:info]['payment_info'].nil?
585
730
  j1_web_session['writer'] = 'middleware'
586
731
 
587
- current_user = user[:info]['nickname'] = user[:info]['nickname']
588
- current_provider = user[:provider]
732
+ current_user = user[:info]['nickname'] = user[:info]['nickname']
733
+ current_provider = user[:provider]
589
734
 
590
735
  j1_web_session['requested_page'].scan(/(private|premium)/) do |match|
591
736
  category = match[0]
592
737
  unless j1_web_session['users_allowed'].include? 'all'
593
738
  unless j1_web_session['users_allowed'].include? "#{current_user}"
594
- logger.info "AFTER AUTHENTICATION: User #{current_user} not allowed. Allowed users: #{j1_web_session['users_allowed']}"
739
+ log_info! 'Authentication', 'Callback', 'User not allowed', "#{current_user}"
740
+ log_info! 'Authentication', 'Callback', 'Allowed users', "#{j1_web_session['users_allowed']}"
595
741
  warden.logout
596
742
  session.clear
597
- logger.info "AFTER AUTHENTICATION: User #{current_user} signed out."
743
+ log_info! 'Authentication', 'Callback', 'User signed out', "#{current_user}"
598
744
  redirect "/access_denied?provider=#{current_provider}&user=#{current_user}&category=#{category}"
599
745
  end
600
746
  end
601
747
  end
602
- else
603
- # Collection of session data failed (e.g cookie > 4K)
604
- #
605
- logger.info "AFTER AUTHENTICATION: Internal error, user authentication failed.}"
606
- warden.logout
607
- session.clear
608
- redirect "/access_denied?provider=unknown&user=unknown&category=unknown"
748
+
609
749
  end
610
750
 
611
751
  j1_web_session['provider'] = current_provider
612
- j1_web_session['users_allowed'] = users["#{current_provider}"]
752
+ j1_web_session['users_allowed'] = providers["#{current_provider}"]['users']
613
753
 
614
754
  if j1_web_session['requested_page'] == '/'
615
755
  category = 'any protected content'
616
756
  unless j1_web_session['users_allowed'].include? 'all'
617
757
  unless j1_web_session['users_allowed'].include? "#{current_user}"
618
- logger.info "AFTER AUTHENTICATION: User #{current_user} not allowed. Allowed users: #{j1_web_session['users_allowed']}"
758
+ log_info! 'Authentication', 'Callback', 'User not allowed', "#{current_user}"
759
+ log_info! 'Authentication', 'Callback', 'Allowed users', "#{j1_web_session['users_allowed']}"
619
760
  warden.logout
620
761
  session.clear
621
- logger.info "AFTER AUTHENTICATION: User #{current_user} signed out."
762
+ log_info! 'Authentication', 'Callback', 'User signed out', "#{current_user}"
622
763
  redirect "/access_denied?provider=#{current_provider}&user=#{current_user}&category=#{category}"
623
764
  end
624
765
  end
@@ -627,9 +768,9 @@ module J1App
627
768
  # write updated J1 session data to cookie
628
769
  #
629
770
  session_json = j1_web_session.to_json
771
+ log_info! 'Authentication', 'Callback', 'Write J1 web session data to cookie' # "#{session_json}"
772
+
630
773
  session_encoded = Base64.encode64(session_json)
631
- logger.info "AFTER AUTHENTICATION: Write J1 web session data to cookie"
632
- #logger.info "AFTER AUTHENTICATION: Write J1 web session data as: #{session_json}"
633
774
  response.set_cookie(
634
775
  'j1.web.session',
635
776
  domain: false,
@@ -639,62 +780,82 @@ module J1App
639
780
 
640
781
  # redirect to requested page
641
782
  #
642
- logger.info "AFTER AUTHENTICATION: Signed in at provider #{user[:provider]} as user: #{user[:info]['nickname']}"
643
- logger.info "AFTER AUTHENTICATION: Redirect to requested page: #{j1_web_session['requested_page']}"
783
+ log_info! 'Authentication', 'Callback', 'Signed in at provider', "#{user[:provider]}"
784
+ log_info! 'Authentication', 'Callback', 'Signed in as user', "#{user[:info]['nickname']}"
785
+ log_info! 'Authentication', 'Callback', 'Requested page', "#{j1_web_session['requested_page']}"
644
786
  redirect j1_web_session['requested_page']
645
787
  end
646
788
 
647
789
  get '/redirect_requested_page' do
648
- logger.info "AFTER AUTHENTICATION: Redirect to #{j1_web_session['requested_page']}"
790
+ log_info! 'Authentication', 'RedirectPage', 'Requested page', "#{j1_web_session['requested_page']}"
649
791
  redirect j1_web_session['requested_page']
650
792
  end
651
793
 
652
794
  # Status|Info ENDPOINT called from the web to get current state on an user
653
795
  # --------------------------------------------------------------------------
654
796
  get '/status' do
655
- logger.info 'STATUS: info request detected'
656
-
657
- session_encoded = request.cookies['j1.web.session']
658
- session_decoded = Base64.decode64(session_encoded)
659
- j1_web_session = JSON.parse(session_decoded)
797
+ log_info! 'Status', 'RestApi', 'Info request detected'
798
+ session_encoded = request.cookies['j1.web.session']
799
+ session_decoded = Base64.decode64(session_encoded)
800
+ j1_web_session = JSON.parse(session_decoded)
660
801
 
661
802
  # if request.warden.user.respond_to?(:info)
662
803
  #
663
804
  if warden.authenticated?
664
- user_json = warden.user.to_json
665
- user = warden.user[:info]['nickname']
666
- user_id = warden.user[:uid]
667
- user_info = warden.user[:info]
668
- provider = warden.user[:provider]
669
- provider_permissions = j1_web_session['permissions']
670
- # provider_permissions = J1App.get_provider_permissions "#{provider}"
671
- logger.info "Detected #{user} as: signed in"
805
+ user_name = warden.user[:info]['nickname']
806
+ user_id = warden.user[:uid]
807
+ provider = warden.user[:provider]
808
+ provider_permissions = j1_web_session['permissions']
809
+ provider_site_url = warden.user[:info][:urls][:site]
810
+ provider_home_url = warden.user[:info][:urls][:home]
811
+ provider_blog_url = warden.user[:info][:urls][:blog]
812
+ provider_member_url = warden.user[:info][:urls][:member]
813
+
814
+ if provider == 'patreon'
815
+ provider_membership = warden.user[:extra][:reward][:name]
816
+ provider_member_url = warden.user[:extra][:reward][:link]
817
+ else
818
+ provider_membership = 'unknown'
819
+ provider_member_url = 'javascript:void(0)'
820
+ end
821
+
822
+ log_info! 'Status', 'RestApi', 'User detected as signed in', "#{user_name}"
672
823
  else
673
- user = 'unknown'
674
- logger.info 'STATUS: detected user as: signed out'
824
+ user_name = 'unknown'
825
+ log_info! 'Status', 'RestApi', 'User detected', 'signed out'
675
826
  end
676
827
 
677
828
  # if request.warden.authenticated?
678
829
  #
679
- if user != 'unknown'
680
- logger.info 'STATUS: send SIGNED_IN data'
830
+ if user_name != 'unknown'
831
+ log_info! 'Status', 'RestApi', 'Send data for', 'SIGNED_IN'
681
832
  content_type 'application/json'
682
833
  {
683
- provider: provider,
684
- user: user,
685
- user_id: user_id,
686
- permissions: provider_permissions,
687
- status: 'signed in'
834
+ user_name: user_name,
835
+ user_id: user_id,
836
+ provider: provider,
837
+ provider_membership: provider_membership,
838
+ provider_permissions: provider_permissions,
839
+ provider_site_url: provider_site_url,
840
+ provider_home_url: provider_home_url,
841
+ provider_blog_url: provider_blog_url,
842
+ provider_member_url: provider_member_url,
843
+ status: 'signed in'
688
844
  }.to_json
689
845
  else
690
- logger.info 'STATUS: send SIGNED_OUT data'
846
+ log_info! 'Status', 'RestApi', 'Send data for', 'SIGNED_OUT'
691
847
  content_type 'application/json'
692
848
  {
693
- provider: 'unknown',
694
- user: 'unknown',
695
- user_id: 'unknown',
696
- permissions: 'unknown',
697
- status: 'signed out'
849
+ user_name: 'unknown',
850
+ user_id: 'unknown',
851
+ provider: 'unknown',
852
+ provider_membership: 'unknown',
853
+ provider_permissions: 'unknown',
854
+ provider_site_url: 'javascript:void(0)',
855
+ provider_home_url: 'javascript:void(0)',
856
+ provider_blog_url: 'javascript:void(0)',
857
+ provider_member_url: 'javascript:void(0)',
858
+ status: 'signed out'
698
859
  }.to_json
699
860
  end
700
861
  end
@@ -703,13 +864,13 @@ module J1App
703
864
  # --------------------------------------------------------------------------
704
865
  get '/access_denied' do
705
866
 
706
- provider = params.fetch('provider')
707
- category = params.fetch('category')
708
- user = params.fetch('user')
867
+ provider = params.fetch('provider')
868
+ category = params.fetch('category')
869
+ user = params.fetch('user')
709
870
 
710
871
  session_encoded = request.cookies['j1.web.session']
711
872
  session_decoded = Base64.decode64(session_encoded)
712
- j1_web_session = JSON.parse(session_decoded)
873
+ j1_web_session = JSON.parse(session_decoded)
713
874
 
714
875
  # Update J1 web session data
715
876
  # --------------------------------------------------------------------
@@ -725,10 +886,13 @@ module J1App
725
886
 
726
887
  # write updated J1 session data to cookie
727
888
  #
889
+
890
+ log_info! "AccessControl", 'RestApi', 'Exception', 'Access Denied'
891
+
728
892
  session_json = j1_web_session.to_json
893
+ log_info! "AccessControl", 'RestApi', 'Write J1 web session data to cookie' # "#{session_json}"
894
+
729
895
  session_encoded = Base64.encode64(session_json)
730
- logger.info "ACCESS DENIED: Write J1 web session data to cookie"
731
- # logger.info "ACCESS DENIED: Write J1 web session data as: #{session_json}"
732
896
  response.set_cookie(
733
897
  'j1.web.session',
734
898
  domain: false,
@@ -738,6 +902,9 @@ module J1App
738
902
 
739
903
  route = '/'
740
904
 
905
+ # Capitalize first char
906
+ provider = provider.sub(/^./, &:upcase)
907
+
741
908
  @route = route
742
909
  @provider = provider
743
910
  @modal = "centralModalInfo"
@@ -748,17 +915,19 @@ module J1App
748
915
  @modal_description = "<h4>Access denied</h4></br></br> User <b>#{user}</b> from provider <b>#{provider}</b> is not allowed to access <b>#{category}</b> pages."
749
916
 
750
917
  erb :auth_manager_ui
751
-
752
918
  end
753
919
 
754
920
  # access_protected_content ENDPOINT called from the app (auth manager)
755
921
  # --------------------------------------------------------------------------
756
922
  get '/access_protected_content' do
757
923
 
758
- provider = params.fetch('provider')
759
- allowed_users = params.fetch('allowed_users')
760
- page = params.fetch('page')
761
- category = params.fetch('category')
924
+ provider = params.fetch('provider')
925
+ allowed_users = params.fetch('allowed_users')
926
+ page = params.fetch('page')
927
+ category = params.fetch('category')
928
+
929
+ # Capitalize first char
930
+ # provider = provider.sub(/^./, &:upcase)
762
931
 
763
932
  if warden.authenticated?
764
933
  route = page
@@ -766,13 +935,16 @@ module J1App
766
935
  route = "/authentication?request=signin&provider=#{provider}&allowed_users=#{allowed_users}"
767
936
  end
768
937
 
938
+ # Capitalize first char
939
+ provider = provider.sub(/^./, &:upcase)
940
+
769
941
  @provider = provider
770
942
  @route = route
771
943
  @modal = "signInProtectedContent"
772
944
  @modal_icon = "login"
773
945
  @modal_agreed_text = "Yes, please"
774
946
  @modal_disagreed_text = "No, thanks"
775
- @modal_title = "Authentication Manager"
947
+ @modal_title = "SignIn"
776
948
  @modal_image = "/assets/images/master_header/admin-dashboard-bootstrap-1280x600.png"
777
949
  @modal_description = "The page <b>#{page}</b> you requested belongs to <b>#{category}</b> content. You'll be redirected to authenticate with the provider <b>#{provider}</b>. If signed in successfully, you get access to all <b>#{category} pages</b>."
778
950