dscf-core 0.3.6 → 0.3.7
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 140fe172991cc8a918430e1dfe062b715d930c0a6914820d16eec4bc4c7a9a9f
|
|
4
|
+
data.tar.gz: b6bd385bde47d38da59639170d16843c6000db6fc59410a086eb885c7b5e11b1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f2f6606363b0d92186f267d703e29cc608f08f9be092500d94435e83b9ca2b44cc129d8898ceab3cea2933323b8c5a534542d1c75ecbab55ccf16ae3a34dd05e
|
|
7
|
+
data.tar.gz: e26442c83f27198db1e1eb2967838ef518e799d1926e76bb286030da06215e68fde220bd3d3f841bf38be2705a4061639be3b7e1b9faaf88ff8f29c56cbd3fc2
|
|
@@ -3,13 +3,29 @@ module Dscf
|
|
|
3
3
|
module RoleAssignable
|
|
4
4
|
extend ActiveSupport::Concern
|
|
5
5
|
|
|
6
|
-
def assign_default_role(user)
|
|
7
|
-
role = Role.find_or_create_by!(code:
|
|
8
|
-
r.name =
|
|
6
|
+
def assign_default_role(user, role_code = "USER")
|
|
7
|
+
role = Role.find_or_create_by!(code: role_code) do |r|
|
|
8
|
+
r.name = role_code.titleize
|
|
9
|
+
r.active = true
|
|
9
10
|
end
|
|
10
11
|
|
|
12
|
+
copy_user_role_permissions(role) unless role_code == "USER"
|
|
13
|
+
|
|
11
14
|
UserRole.find_or_create_by!(user: user, role: role)
|
|
12
15
|
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def copy_user_role_permissions(role)
|
|
20
|
+
return if role.permissions.any?
|
|
21
|
+
|
|
22
|
+
user_role = Role.find_by(code: "USER")
|
|
23
|
+
return unless user_role
|
|
24
|
+
|
|
25
|
+
user_role.permissions.each do |permission|
|
|
26
|
+
RolePermission.find_or_create_by!(role: role, permission: permission)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
13
29
|
end
|
|
14
30
|
end
|
|
15
31
|
end
|
|
@@ -47,11 +47,18 @@ module Dscf
|
|
|
47
47
|
|
|
48
48
|
ActiveRecord::Base.transaction do
|
|
49
49
|
if user.save
|
|
50
|
-
|
|
50
|
+
role_code = if params[:agent].present?
|
|
51
|
+
"AGENT"
|
|
52
|
+
elsif params[:retailer].present?
|
|
53
|
+
"RETAILER"
|
|
54
|
+
else
|
|
55
|
+
"USER"
|
|
56
|
+
end
|
|
57
|
+
assign_default_role(user, role_code)
|
|
51
58
|
|
|
52
59
|
# Optionally create marketplace records when onboarding via mobile app
|
|
53
|
-
create_agent_from_signup! if params[:agent].present?
|
|
54
|
-
create_retailer_from_signup! if params[:retailer].present?
|
|
60
|
+
create_agent_from_signup!(user) if params[:agent].present?
|
|
61
|
+
create_retailer_from_signup!(user) if params[:retailer].present?
|
|
55
62
|
|
|
56
63
|
user_with_includes = User.includes(roles: :permissions, user_profile: {}).find(user.id)
|
|
57
64
|
render_success(
|
|
@@ -131,26 +138,28 @@ module Dscf
|
|
|
131
138
|
end
|
|
132
139
|
|
|
133
140
|
# Creates an Agent record when included in signup request (mobile onboarding)
|
|
134
|
-
def create_agent_from_signup!
|
|
141
|
+
def create_agent_from_signup!(user)
|
|
135
142
|
return unless defined?(Dscf::Marketplace::Agent)
|
|
136
143
|
|
|
137
144
|
Dscf::Marketplace::Agent.create!(
|
|
138
145
|
name: agent_signup_params[:name],
|
|
139
146
|
phone: agent_signup_params[:phone],
|
|
140
147
|
service_area: agent_signup_params[:service_area],
|
|
141
|
-
fayda_number: agent_signup_params[:fayda_number]
|
|
148
|
+
fayda_number: agent_signup_params[:fayda_number],
|
|
149
|
+
user: user
|
|
142
150
|
)
|
|
143
151
|
end
|
|
144
152
|
|
|
145
153
|
# Creates a Retailer record when included in signup request (mobile onboarding)
|
|
146
|
-
def create_retailer_from_signup!
|
|
154
|
+
def create_retailer_from_signup!(user)
|
|
147
155
|
return unless defined?(Dscf::Marketplace::Retailer)
|
|
148
156
|
|
|
149
157
|
Dscf::Marketplace::Retailer.create!(
|
|
150
158
|
name: retailer_signup_params[:name],
|
|
151
159
|
phone: retailer_signup_params[:phone],
|
|
152
160
|
tin_number: retailer_signup_params[:tin_number],
|
|
153
|
-
location: retailer_signup_params[:location]
|
|
161
|
+
location: retailer_signup_params[:location],
|
|
162
|
+
user: user
|
|
154
163
|
)
|
|
155
164
|
end
|
|
156
165
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Dscf
|
|
2
2
|
module Core
|
|
3
3
|
class UserAuthSerializer < ActiveModel::Serializer
|
|
4
|
-
attributes :id, :email, :phone, :verified_at, :permissions
|
|
4
|
+
attributes :id, :email, :phone, :verified_at, :permissions, :review_status
|
|
5
5
|
|
|
6
6
|
has_one :user_profile, serializer: Dscf::Core::UserProfileSerializer
|
|
7
7
|
has_many :roles, serializer: Dscf::Core::RoleLightSerializer
|
|
@@ -9,6 +9,29 @@ module Dscf
|
|
|
9
9
|
def permissions
|
|
10
10
|
object.active_permissions.to_a
|
|
11
11
|
end
|
|
12
|
+
|
|
13
|
+
def review_status
|
|
14
|
+
return @review_status if defined?(@review_status)
|
|
15
|
+
|
|
16
|
+
@review_status = if defined?(Dscf::Marketplace::Agent) && (agent = Dscf::Marketplace::Agent.find_by(user_id: object.id))
|
|
17
|
+
{ type: "agent", entity_id: agent.id, status: agent.verification_status }
|
|
18
|
+
elsif defined?(Dscf::Marketplace::Supplier) && (supplier = supplier_for_user)
|
|
19
|
+
{ type: "supplier", entity_id: supplier.id, status: supplier.current_status_for(:default) }
|
|
20
|
+
elsif defined?(Dscf::Marketplace::Retailer) && (retailer = Dscf::Marketplace::Retailer.find_by(user_id: object.id))
|
|
21
|
+
{ type: "retailer", entity_id: retailer.id, status: "pending" }
|
|
22
|
+
else
|
|
23
|
+
nil
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def supplier_for_user
|
|
30
|
+
business = Dscf::Core::Business.find_by(user_id: object.id)
|
|
31
|
+
return nil unless business && defined?(Dscf::Marketplace::Supplier)
|
|
32
|
+
|
|
33
|
+
Dscf::Marketplace::Supplier.find_by(business_id: business.id)
|
|
34
|
+
end
|
|
12
35
|
end
|
|
13
36
|
end
|
|
14
37
|
end
|
data/lib/dscf/core/version.rb
CHANGED