dscf-payment 0.2.0 → 0.2.2
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/bypass/bypass.rb +42 -0
- data/app/controllers/concerns/bypass.rb +44 -0
- data/app/controllers/dscf/payment/application_controller.rb +33 -0
- data/app/controllers/dscf/payment/payment_requests_controller.rb +1 -0
- data/app/controllers/dscf/payment/payments_controller.rb +1 -0
- data/lib/dscf/payment/engine.rb +11 -3
- data/lib/dscf/payment/version.rb +1 -1
- metadata +11 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b0d9c2c2ffad319b66d7d0bc41dfe3b5d6a3f13ade5bf2765c38385bf69b56da
|
|
4
|
+
data.tar.gz: c5575f58634a64d7122fb1c332d882dd7700c85df82f0fc219c087e258614066
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c2547690bba901299ffdeb7687e5292fc2fdef75c4226c694f85f6d69a06f357cdf03f66d3ce872cd3dfff1869296163855782d3dd988ba21d7aa01e696fdb04
|
|
7
|
+
data.tar.gz: e746b57c91029a9e8b7cd90580c33c58e21b0b6749d5dc206fc2e50c9270ef53d24aa11f2d9ffdf18449670dce46134e918a41a295584d48cc89bfa6a380e466
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module Dscf
|
|
2
|
+
module Banking
|
|
3
|
+
class ApplicationController < ActionController::API
|
|
4
|
+
include Dscf::Core::Authenticatable
|
|
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
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module Dscf
|
|
2
|
+
module Payment
|
|
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
|
|
@@ -8,6 +8,23 @@ module Dscf
|
|
|
8
8
|
# Handle CORS for authentication
|
|
9
9
|
before_action :set_cors_headers
|
|
10
10
|
|
|
11
|
+
before_action :authenticate_user
|
|
12
|
+
before_action :demo_bypass_permissions!
|
|
13
|
+
|
|
14
|
+
# TEMPORARY DEMO BYPASS:
|
|
15
|
+
# Bypass payment authorization checks for authenticated users only.
|
|
16
|
+
# Remove after the demo.
|
|
17
|
+
def bypass_permissions_for_demo?
|
|
18
|
+
true
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def pundit_user
|
|
22
|
+
user = current_user
|
|
23
|
+
return nil unless user
|
|
24
|
+
|
|
25
|
+
bypass_permissions_on_user!(user)
|
|
26
|
+
end
|
|
27
|
+
|
|
11
28
|
private
|
|
12
29
|
|
|
13
30
|
def set_cors_headers
|
|
@@ -17,6 +34,22 @@ module Dscf
|
|
|
17
34
|
headers["Access-Control-Allow-Credentials"] = "false"
|
|
18
35
|
end
|
|
19
36
|
|
|
37
|
+
def demo_bypass_permissions!
|
|
38
|
+
skip_authorization if respond_to?(:skip_authorization, true)
|
|
39
|
+
skip_policy_scope if respond_to?(:skip_policy_scope, true)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def bypass_permissions_on_user!(user)
|
|
43
|
+
return user if user.instance_variable_defined?(:@_payment_demo_permission_bypass)
|
|
44
|
+
|
|
45
|
+
user.define_singleton_method(:has_permission?) { |_permission_code| true }
|
|
46
|
+
user.define_singleton_method(:can?) { |permission_code| has_permission?(permission_code) }
|
|
47
|
+
user.define_singleton_method(:super_admin?) { true }
|
|
48
|
+
user.instance_variable_set(:@_payment_demo_permission_bypass, true)
|
|
49
|
+
|
|
50
|
+
user
|
|
51
|
+
end
|
|
52
|
+
|
|
20
53
|
def authentication_required?
|
|
21
54
|
false # Override in specific controllers
|
|
22
55
|
end
|
data/lib/dscf/payment/engine.rb
CHANGED
|
@@ -13,9 +13,17 @@ module Dscf
|
|
|
13
13
|
require "dscf/credit"
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
# Ensure dependent engine migrations are available in test environment
|
|
17
|
+
initializer :append_dependent_migrations, after: :load_dependent_engines do |app|
|
|
18
|
+
# Append migrations from dependent engines
|
|
19
|
+
if defined?(Dscf::Core::Engine)
|
|
20
|
+
app.config.paths["db/migrate"].concat(Dscf::Core::Engine.config.paths["db/migrate"].expanded)
|
|
21
|
+
end
|
|
22
|
+
if defined?(Dscf::Banking::Engine)
|
|
23
|
+
app.config.paths["db/migrate"].concat(Dscf::Banking::Engine.config.paths["db/migrate"].expanded)
|
|
24
|
+
end
|
|
25
|
+
if defined?(Dscf::Credit::Engine)
|
|
26
|
+
app.config.paths["db/migrate"].concat(Dscf::Credit::Engine.config.paths["db/migrate"].expanded)
|
|
19
27
|
end
|
|
20
28
|
end
|
|
21
29
|
end
|
data/lib/dscf/payment/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dscf-payment
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Asrat
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-04-28 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: rails
|
|
@@ -33,23 +33,20 @@ dependencies:
|
|
|
33
33
|
name: dscf-core
|
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
|
35
35
|
requirements:
|
|
36
|
-
- - "
|
|
36
|
+
- - ">="
|
|
37
37
|
- !ruby/object:Gem::Version
|
|
38
38
|
version: 0.3.0
|
|
39
39
|
type: :runtime
|
|
40
40
|
prerelease: false
|
|
41
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
42
42
|
requirements:
|
|
43
|
-
- - "
|
|
43
|
+
- - ">="
|
|
44
44
|
- !ruby/object:Gem::Version
|
|
45
45
|
version: 0.3.0
|
|
46
46
|
- !ruby/object:Gem::Dependency
|
|
47
47
|
name: dscf-banking
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
49
49
|
requirements:
|
|
50
|
-
- - "~>"
|
|
51
|
-
- !ruby/object:Gem::Version
|
|
52
|
-
version: '0.2'
|
|
53
50
|
- - ">="
|
|
54
51
|
- !ruby/object:Gem::Version
|
|
55
52
|
version: 0.2.1
|
|
@@ -57,9 +54,6 @@ dependencies:
|
|
|
57
54
|
prerelease: false
|
|
58
55
|
version_requirements: !ruby/object:Gem::Requirement
|
|
59
56
|
requirements:
|
|
60
|
-
- - "~>"
|
|
61
|
-
- !ruby/object:Gem::Version
|
|
62
|
-
version: '0.2'
|
|
63
57
|
- - ">="
|
|
64
58
|
- !ruby/object:Gem::Version
|
|
65
59
|
version: 0.2.1
|
|
@@ -67,16 +61,16 @@ dependencies:
|
|
|
67
61
|
name: dscf-credit
|
|
68
62
|
requirement: !ruby/object:Gem::Requirement
|
|
69
63
|
requirements:
|
|
70
|
-
- - "
|
|
64
|
+
- - ">="
|
|
71
65
|
- !ruby/object:Gem::Version
|
|
72
|
-
version: 0.
|
|
66
|
+
version: 0.2.8
|
|
73
67
|
type: :runtime
|
|
74
68
|
prerelease: false
|
|
75
69
|
version_requirements: !ruby/object:Gem::Requirement
|
|
76
70
|
requirements:
|
|
77
|
-
- - "
|
|
71
|
+
- - ">="
|
|
78
72
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: 0.
|
|
73
|
+
version: 0.2.8
|
|
80
74
|
- !ruby/object:Gem::Dependency
|
|
81
75
|
name: active_model_serializers
|
|
82
76
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -466,6 +460,8 @@ files:
|
|
|
466
460
|
- MIT-LICENSE
|
|
467
461
|
- README.md
|
|
468
462
|
- Rakefile
|
|
463
|
+
- app/bypass/bypass.rb
|
|
464
|
+
- app/controllers/concerns/bypass.rb
|
|
469
465
|
- app/controllers/dscf/payment/application_controller.rb
|
|
470
466
|
- app/controllers/dscf/payment/payment_requests_controller.rb
|
|
471
467
|
- app/controllers/dscf/payment/payments_controller.rb
|
|
@@ -512,7 +508,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
512
508
|
- !ruby/object:Gem::Version
|
|
513
509
|
version: '0'
|
|
514
510
|
requirements: []
|
|
515
|
-
rubygems_version: 3.6.
|
|
511
|
+
rubygems_version: 3.6.2
|
|
516
512
|
specification_version: 4
|
|
517
513
|
summary: An Engine for Supply Chain Financing
|
|
518
514
|
test_files: []
|