dscf-payment 0.2.0 → 0.2.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/bypass/bypass.rb +42 -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 +12 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9b5116a4b95714fdf6a96b3f228adee2b18b4de5e79f25758114a0350752e476
|
|
4
|
+
data.tar.gz: 562407c99ff44e1d93531ed2f1d3cf77b498fc22571af1835d150cc24e7346ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 90fcef25348fe02e322c5074302d7322c7be0bbf71d8fe1161d478ef074498c62ed325a44a5532de7ae2150f2f55c69f377f937c81cd297a57688c8f3ca840e8
|
|
7
|
+
data.tar.gz: 315d96e31c7f0f70d7fc87c7c58bbcbc681e6dee2b30500449d6e8b83308cfc87a7c081ff7564ef099d7da4cd5db06582589bd94b3dbe046fed5ac9cfa377914
|
|
@@ -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
|
|
@@ -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.1
|
|
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
|
-
version: 0.
|
|
38
|
+
version: 0.2.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
|
-
version: 0.
|
|
45
|
+
version: 0.2.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,7 @@ files:
|
|
|
466
460
|
- MIT-LICENSE
|
|
467
461
|
- README.md
|
|
468
462
|
- Rakefile
|
|
463
|
+
- app/bypass/bypass.rb
|
|
469
464
|
- app/controllers/dscf/payment/application_controller.rb
|
|
470
465
|
- app/controllers/dscf/payment/payment_requests_controller.rb
|
|
471
466
|
- app/controllers/dscf/payment/payments_controller.rb
|
|
@@ -512,7 +507,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
512
507
|
- !ruby/object:Gem::Version
|
|
513
508
|
version: '0'
|
|
514
509
|
requirements: []
|
|
515
|
-
rubygems_version: 3.6.
|
|
510
|
+
rubygems_version: 3.6.2
|
|
516
511
|
specification_version: 4
|
|
517
512
|
summary: An Engine for Supply Chain Financing
|
|
518
513
|
test_files: []
|