dscf-banking 0.5.0 → 0.5.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.
- checksums.yaml +4 -4
- data/app/controllers/concerns/dscf/banking/demo_permission_bypass.rb +44 -0
- data/app/controllers/dscf/banking/accounts_controller.rb +1 -0
- data/app/controllers/dscf/banking/application_controller.rb +34 -0
- data/app/controllers/dscf/banking/applications_controller.rb +6 -0
- data/app/controllers/dscf/banking/documents_controller.rb +1 -0
- data/app/controllers/dscf/banking/interest_configurations_controller.rb +1 -0
- data/app/controllers/dscf/banking/interest_rate_tiers_controller.rb +1 -0
- data/app/controllers/dscf/banking/interest_rate_types_controller.rb +1 -0
- data/app/controllers/dscf/banking/product_approvals_controller.rb +1 -0
- data/app/controllers/dscf/banking/product_categories_controller.rb +1 -0
- data/app/controllers/dscf/banking/transaction_types_controller.rb +1 -0
- data/app/controllers/dscf/banking/transactions_controller.rb +1 -0
- data/app/controllers/dscf/banking/virtual_account_products_controller.rb +6 -0
- data/app/controllers/dscf/banking/vouchers_controller.rb +1 -0
- data/lib/dscf/banking/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f558728cc00fd36f502cc21c0f342a1db0102f7c2b08b92b4fdc224e7a3a4839
|
|
4
|
+
data.tar.gz: 47c41262ad655e43365f13a974cd253474e3dbf4ac0abdb46e03564288f20b42
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c2c57799b26eb5bbe257e20c9a044298021268e55689fbb62e32157dc1b674595b0406f603f95e82356bc865c63a313a662d1266588d967700846579341ae465
|
|
7
|
+
data.tar.gz: 8d04ca7ec5e9ead3fa0d026999962fd5026a1cfb98825465ee455ba961f4606b406175bfe9152943cb5c2dbc19b1579ea5301b235e642116a34dc2eb0759da47
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module Dscf
|
|
2
|
+
module Banking
|
|
3
|
+
module DemoPermissionBypass
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
|
|
6
|
+
included do
|
|
7
|
+
before_action :demo_bypass_permissions!
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def bypass_permissions_for_demo?
|
|
11
|
+
true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def pundit_user
|
|
15
|
+
user = current_user
|
|
16
|
+
return nil unless user
|
|
17
|
+
|
|
18
|
+
bypass_permissions_on_user!(user)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def authorize_review_action!
|
|
22
|
+
skip_authorization if respond_to?(:skip_authorization, true)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def demo_bypass_permissions!
|
|
28
|
+
skip_authorization if respond_to?(:skip_authorization, true)
|
|
29
|
+
skip_policy_scope if respond_to?(:skip_policy_scope, true)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def bypass_permissions_on_user!(user)
|
|
33
|
+
return user if user.instance_variable_defined?(:@_banking_demo_permission_bypass)
|
|
34
|
+
|
|
35
|
+
user.define_singleton_method(:has_permission?) { |_permission_code| true }
|
|
36
|
+
user.define_singleton_method(:can?) { |permission_code| has_permission?(permission_code) }
|
|
37
|
+
user.define_singleton_method(:super_admin?) { true }
|
|
38
|
+
user.instance_variable_set(:@_banking_demo_permission_bypass, true)
|
|
39
|
+
|
|
40
|
+
user
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -3,6 +3,40 @@ module Dscf
|
|
|
3
3
|
class ApplicationController < ActionController::API
|
|
4
4
|
include Dscf::Core::Authenticatable
|
|
5
5
|
include Dscf::Core::JsonResponse
|
|
6
|
+
before_action :authenticate_user
|
|
7
|
+
before_action :demo_bypass_permissions!
|
|
8
|
+
|
|
9
|
+
# TEMPORARY DEMO BYPASS:
|
|
10
|
+
# Bypass banking authorization checks for authenticated users only.
|
|
11
|
+
# Remove after the demo.
|
|
12
|
+
def bypass_permissions_for_demo?
|
|
13
|
+
true
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def pundit_user
|
|
17
|
+
user = current_user
|
|
18
|
+
return nil unless user
|
|
19
|
+
|
|
20
|
+
bypass_permissions_on_user!(user)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def demo_bypass_permissions!
|
|
26
|
+
skip_authorization if respond_to?(:skip_authorization, true)
|
|
27
|
+
skip_policy_scope if respond_to?(:skip_policy_scope, true)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def bypass_permissions_on_user!(user)
|
|
31
|
+
return user if user.instance_variable_defined?(:@_banking_demo_permission_bypass)
|
|
32
|
+
|
|
33
|
+
user.define_singleton_method(:has_permission?) { |_permission_code| true }
|
|
34
|
+
user.define_singleton_method(:can?) { |permission_code| has_permission?(permission_code) }
|
|
35
|
+
user.define_singleton_method(:super_admin?) { true }
|
|
36
|
+
user.instance_variable_set(:@_banking_demo_permission_bypass, true)
|
|
37
|
+
|
|
38
|
+
user
|
|
39
|
+
end
|
|
6
40
|
end
|
|
7
41
|
end
|
|
8
42
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
module Dscf::Banking
|
|
2
2
|
class ApplicationsController < ApplicationController
|
|
3
3
|
include Dscf::Core::Common
|
|
4
|
+
include Dscf::Banking::DemoPermissionBypass
|
|
4
5
|
include Dscf::Core::ReviewableController
|
|
5
6
|
|
|
6
7
|
# Custom default context for applications
|
|
@@ -22,6 +23,11 @@ module Dscf::Banking
|
|
|
22
23
|
resubmit: { status: "submitted", update_model: true }
|
|
23
24
|
}
|
|
24
25
|
|
|
26
|
+
# TEMPORARY DEMO BYPASS: remove after demo.
|
|
27
|
+
def authorize_review_action!
|
|
28
|
+
skip_authorization
|
|
29
|
+
end
|
|
30
|
+
|
|
25
31
|
private
|
|
26
32
|
|
|
27
33
|
def application_data(application)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
module Dscf::Banking
|
|
2
2
|
class VirtualAccountProductsController < ApplicationController
|
|
3
3
|
include Dscf::Core::Common
|
|
4
|
+
include Dscf::Banking::DemoPermissionBypass
|
|
4
5
|
include Dscf::Core::ReviewableController
|
|
5
6
|
|
|
6
7
|
# Custom default context with request_modification status
|
|
@@ -20,6 +21,11 @@ module Dscf::Banking
|
|
|
20
21
|
resubmit: { status: "pending_approval", update_model: true }
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
# TEMPORARY DEMO BYPASS: remove after demo.
|
|
25
|
+
def authorize_review_action!
|
|
26
|
+
skip_authorization
|
|
27
|
+
end
|
|
28
|
+
|
|
23
29
|
def audit_logs
|
|
24
30
|
product = Dscf::Banking::VirtualAccountProduct.find(params[:id])
|
|
25
31
|
audit_logs = Dscf::Banking::ProductAuditLog.by_product(product.id).recent
|
data/lib/dscf/banking/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dscf-banking
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Asrat Efrem
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-03-
|
|
10
|
+
date: 2026-03-14 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: rails
|
|
@@ -425,6 +425,7 @@ files:
|
|
|
425
425
|
- MIT-LICENSE
|
|
426
426
|
- README.md
|
|
427
427
|
- Rakefile
|
|
428
|
+
- app/controllers/concerns/dscf/banking/demo_permission_bypass.rb
|
|
428
429
|
- app/controllers/dscf/banking/accounts_controller.rb
|
|
429
430
|
- app/controllers/dscf/banking/application_controller.rb
|
|
430
431
|
- app/controllers/dscf/banking/applications_controller.rb
|