atomic_admin 0.2.0 → 1.1.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: 1da63f4d8a28afb38eb29f1cd355f7bf60ce16c3dc242db8d7466124a9675012
4
- data.tar.gz: 77291046495aaec1f9952da7fc91d4e7760f99cb0f28c70b3bf2f57d7798d493
3
+ metadata.gz: 9fdbae3728b9807bc8477641ebd88b83a1dfb8e54dfacdbbf345c9b3eea15fea
4
+ data.tar.gz: c4a95263554cd8519ecc77629e51c1e62d54ef2f3daef0360e7b8e397cff7b11
5
5
  SHA512:
6
- metadata.gz: 5402d08f0cd92d4721ace8bc07bc30a110153b5a13c9d69dfe85f5a779b5149df32143819f5daec659e5a7f11a1443429be783581dfe9e5dc6588e962e0dacd0
7
- data.tar.gz: 4411b3bd84e9e0d22181a449debeb5f9d814220a6412c4e83e98ca935f715a8076a1059be06a2158ca03126c4cee79cb578dc3a58ddf5fe0f7db275acebb015d
6
+ metadata.gz: 58ae7a7f756d6f1f1189b29450fb5871a363eaae04af8edb72ea03da96c18bd9226b7bb2f789b1331e314cecf3c9376686927d2b39a74e10b6fac24000a7cf2e
7
+ data.tar.gz: 97b98e1fc0dac3dc691b0b095d4d74f4923e231d4786b35734a931ba59b89e356a9761b297172e9a9d7013e3be4a28e6d3b94689d68e541b17a008df87ce3380
@@ -1,20 +1,10 @@
1
1
  module AtomicAdmin
2
- class ApplicationController < ActionController::API
3
- include AtomicAdmin::JwtToken
4
- # before_action :authenticate_user! # Use validate_token instead for now
5
- before_action :validate_token
6
- before_action :only_admins!
7
-
8
- private
9
-
10
- def only_admins!
11
- user_not_authorized unless current_user.admin?
12
- end
13
-
14
-
15
- def user_not_authorized(message = "Not Authorized")
16
- render json: { message: message, }, status: 401
17
- end
2
+ BASE_CONTROLLER = if AtomicAdmin.authenticating_base_controller_class
3
+ AtomicAdmin.authenticating_base_controller_class.constantize
4
+ else
5
+ AtomicAdmin::AuthenticatingApplicationController
6
+ end
18
7
 
8
+ class ApplicationController < BASE_CONTROLLER
19
9
  end
20
10
  end
@@ -1,5 +1,10 @@
1
1
  module AtomicAdmin
2
2
  class AtomicTenantClientIdStrategyController < ApplicationController
3
+
4
+ if AtomicAdmin.client_id_strategy_before_action.present?
5
+ before_action AtomicAdmin.client_id_strategy_before_action, only: [:create, :update]
6
+ end
7
+
3
8
  def pinned_client_id_params
4
9
  params.permit(:iss, :client_id, :application_instance_id)
5
10
  end
@@ -8,7 +13,7 @@ module AtomicAdmin
8
13
  AtomicTenant::PinnedClientId.find_by(id: params[:id])
9
14
  end
10
15
 
11
- def search
16
+ def search
12
17
  page = AtomicTenant::PinnedClientId
13
18
  .where(application_instance_id: params[:application_instance_id])
14
19
  .order(:id).paginate(page: params[:page], per_page: 30)
@@ -1,5 +1,9 @@
1
1
  module AtomicAdmin
2
2
  class AtomicTenantPlatformGuidStrategyController < ApplicationController
3
+ if AtomicAdmin.platform_guid_strategy_before_action.present?
4
+ before_action AtomicAdmin.platform_guid_strategy_before_action, only: [:create, :update]
5
+ end
6
+
3
7
  def pinned_platform_guid_params
4
8
  params.permit(:iss, :platform_guid, :application_id, :application_instance_id)
5
9
  end
@@ -8,7 +12,7 @@ module AtomicAdmin
8
12
  AtomicTenant::PinnedPlatformGuid.find(params[:id])
9
13
  end
10
14
 
11
- def search
15
+ def search
12
16
  page = AtomicTenant::PinnedPlatformGuid
13
17
  .where(application_instance_id: params[:application_instance_id])
14
18
  .order(:id).paginate(page: params[:page], per_page: 30)
@@ -19,7 +23,7 @@ module AtomicAdmin
19
23
  }
20
24
  end
21
25
 
22
- # def index
26
+ # def index
23
27
  # page = AtomicTenant::PinnedPlatformGuid.all.order(:id).paginate(page: params[:page], per_page: 30)
24
28
  # render json: {
25
29
  # pinned_platform_guids: page,
@@ -0,0 +1,18 @@
1
+ module AtomicAdmin
2
+ class AuthenticatingApplicationController < ActionController::API
3
+ include AtomicAdmin::JwtToken
4
+ # before_action :authenticate_user! # Use validate_token instead for now
5
+ before_action :validate_token
6
+ before_action :only_admins!
7
+
8
+ private
9
+
10
+ def only_admins!
11
+ user_not_authorized unless current_user.admin?
12
+ end
13
+
14
+ def user_not_authorized(message = "Not Authorized")
15
+ render json: { message: message, }, status: 401
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module AtomicAdmin
2
- VERSION = "0.2.0"
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/atomic_admin.rb CHANGED
@@ -3,5 +3,11 @@ require "atomic_admin/engine"
3
3
  require "atomic_admin/jwt_token"
4
4
 
5
5
  module AtomicAdmin
6
- # Your code goes here...
6
+ # Base controller class to inherit from. If this is set it is responsible for
7
+ # all authentication
8
+ mattr_accessor :authenticating_base_controller_class, default: nil
9
+
10
+ # Before action hooks to allow custom validation
11
+ mattr_accessor :client_id_strategy_before_action, default: nil
12
+ mattr_accessor :platform_guid_strategy_before_action, default: nil
7
13
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atomic_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Benoit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-08 00:00:00.000000000 Z
11
+ date: 2024-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '7.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '9.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '7.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '9.0'
27
33
  description: Engine to provide apis that power the atomic jolt admin app
28
34
  email:
29
35
  - nick.benoit@atomicjolt.com
@@ -40,6 +46,7 @@ files:
40
46
  - app/controllers/atomic_admin/atomic_tenant_client_id_strategy_controller.rb
41
47
  - app/controllers/atomic_admin/atomic_tenant_deployment_controller.rb
42
48
  - app/controllers/atomic_admin/atomic_tenant_platform_guid_strategy_controller.rb
49
+ - app/controllers/atomic_admin/authenticating_application_controller.rb
43
50
  - app/jobs/atomic_admin/application_job.rb
44
51
  - app/mailers/atomic_admin/application_mailer.rb
45
52
  - app/models/atomic_admin/application_record.rb
@@ -71,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
78
  - !ruby/object:Gem::Version
72
79
  version: '0'
73
80
  requirements: []
74
- rubygems_version: 3.3.7
81
+ rubygems_version: 3.4.10
75
82
  signing_key:
76
83
  specification_version: 4
77
84
  summary: Engine to provide apis that power the atomic jolt admin app