audiences 1.3.1 → 1.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: 319c6d5a55900512c509f3e27ac9e03489734e0a618c31414cb7cd57981fc916
4
- data.tar.gz: 2a117b18cd56209481ead18fafccb7ba9b57b673b5cdfa5c0f03152184704e25
3
+ metadata.gz: 596d4d408b2fc406d8f3dcf10bdd5c29dfe311ab5691fbc3b6140df37d8bcaed
4
+ data.tar.gz: f2dd143d3faa6a0e59d20f2af39a0dd7e429d5343f6f63081c2cd9df54b57697
5
5
  SHA512:
6
- metadata.gz: d08f9b199ae6ca61caeaff91606bb4a9cf21a171f17486a2919631a7b791ad37995a9645527199704d6ec8eb24ca4a1fba8543829dbd97f47c73174c9ba766f5
7
- data.tar.gz: b1d6cc6305467c94bddb4abab023e451de05e2d9177f19c0a358da81429c6930c8381a6066afa6703f1826f4f6e0cb2bd5afed94a0cbba97c3816325b540e29b
6
+ metadata.gz: 3db42cfb3a01581e4cb9d30ed00fba7921fe0a801d1719351c106fe41966ab565ae1dbdd3d639e3f9681abf92b94d46b8e43f318689389ec90f7d0e984ea3535
7
+ data.tar.gz: d59bbf57891e89dd7ccb9515399913e80a5b2cd1580afceef7683aa02c977cdc75b2452f1cd7fcd5520f7508b00dbcf2066fb88cc27e1767ff56437a8596e696
@@ -2,5 +2,14 @@
2
2
 
3
3
  module Audiences
4
4
  class ApplicationController < ActionController::API
5
+ before_action unless: :authenticate! do
6
+ render json: { error: "Unauthorized" }, status: :unauthorized
7
+ end
8
+
9
+ private
10
+
11
+ def authenticate!
12
+ instance_exec(request, &Audiences.config.authenticate)
13
+ end
5
14
  end
6
15
  end
data/docs/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Unreleased
2
2
 
3
+ # Version 1.4.0 (2024-11-01)
4
+
5
+ - Add authentication hooks for Audiences controllers [#438](https://github.com/powerhome/audiences/pull/438)
6
+
3
7
  # Version 1.3.1 (2024-10-11)
4
8
 
5
9
  - Forward pagination parameters to SCIM on proxy [#397](https://github.com/powerhome/audiences/pull/397)
@@ -5,6 +5,34 @@ module Audiences
5
5
 
6
6
  # Configuration options
7
7
 
8
+ #
9
+ # Authentication configuration. This defaults to true, meaning that the audiences
10
+ # endpoints are open to the public.
11
+ #
12
+ # To authenticate requests, set this configuration to a lambda that will receive
13
+ # the request and return true if the request is authenticated.
14
+ #
15
+ # Raising an exception will also prevent the execution of the request, but the
16
+ # exception will not be caught and should be handled by the application middlewares.
17
+ #
18
+ # I.e.:
19
+ #
20
+ # Audiences.configure do |config|
21
+ # config.authentication = ->(*) { authenticate_request }
22
+ # end
23
+ #
24
+ # I.e:
25
+ #
26
+ # Audiences.configure do |config|
27
+ # config.authentication = ->(request) do
28
+ # request.env["warden"].authenticate!
29
+ # end
30
+ # end
31
+ #
32
+ config_accessor :authentication do
33
+ ->(*) { true }
34
+ end
35
+
8
36
  #
9
37
  # Identity model representing a SCIM User in the current application. I.e.: "User"
10
38
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Audiences
4
- VERSION = "1.3.1"
4
+ VERSION = "1.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: audiences
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Palhares
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-14 00:00:00.000000000 Z
11
+ date: 2024-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails