Skip to content

Commit b1cffdd

Browse files
authored
[CLOUDTRUST-7783] Add auxiliary physical identification endpoints (#709)
1 parent c5c5e2e commit b1cffdd

14 files changed

Lines changed: 422 additions & 127 deletions

File tree

api/common/api-profile.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ var allowAnnotation = map[string]bool{
1616
"values": true,
1717
"account": false,
1818
"kyc": false,
19+
"aux-kyc": false,
1920
"management": false,
2021
"register": false,
2122
}

api/common/api-profile_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ func TestAttributeAnnotationsToAPI(t *testing.T) {
142142
"dummy": "value",
143143
"account": "true",
144144
"kyc": "true",
145+
"aux-kyc": "true",
145146
"management": "true",
146147
"register": "true",
147148
}), 0)

api/management/api.go

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,10 @@ type RealmAdminConfiguration struct {
317317
RegisterTheme *string `json:"register_theme"`
318318
SignerTheme *string `json:"signer_theme"`
319319
NeedVerifiedContact *bool `json:"need_verified_contact"`
320+
NeedVerifiedContactAuxiliary *bool `json:"need_verified_contact_auxiliary"`
320321
ConsentRequiredSocial *bool `json:"consent_required_social"`
321322
ConsentRequiredCorporate *bool `json:"consent_required_corporate"`
323+
ConsentRequiredCorporateAuxiliary *bool `json:"consent_required_corporate_auxiliary"`
322324
VideoIdentificationVoucherEnabled *bool `json:"video_identification_voucher_enabled"`
323325
VideoIdentificationAccountingEnabled *bool `json:"video_identification_accounting_enabled"`
324326
VideoIdentificationPrepaymentRequired *bool `json:"video_identification_prepayment_required"`
@@ -332,6 +334,7 @@ type RealmAdminConfiguration struct {
332334
AuxiliaryVideoIdentificationAllowedRoles []string `json:"auxiliary_video_identification_allowed_roles"`
333335
AutoIdentificationAllowedRoles []string `json:"auto_identification_allowed_roles"`
334336
PhysicalIdentificationAllowedRoles []string `json:"physical_identification_allowed_roles"`
337+
AuxiliaryPhysicalIdentificationAllowedRoles []string `json:"auxiliary_physical_identification_allowed_roles"`
335338
OnboardingStatusEnabled *bool `json:"onboarding_status_enabled"`
336339
AutoGeneratedUsernameEnabled *bool `json:"auto_generated_username_enabled"`
337340
AutoGeneratedUsernameToggleEnabled *bool `json:"auto_generated_username_toggle_enabled"`
@@ -883,19 +886,21 @@ func ConvertRealmAdminConfigurationFromDBStruct(conf configuration.RealmAdminCon
883886
}
884887
var emptyArray = []string{}
885888
return RealmAdminConfiguration{
886-
Mode: defaultString(conf.Mode, "corporate"),
887-
AvailableChecks: checks,
888-
SelfRegisterEnabled: defaultBool(conf.SelfRegisterEnabled, false),
889-
BoTheme: conf.BoTheme,
890-
SseTheme: conf.SseTheme,
891-
RegisterTheme: conf.RegisterTheme,
892-
SignerTheme: conf.SignerTheme,
893-
NeedVerifiedContact: defaultBool(conf.NeedVerifiedContact, true),
894-
ConsentRequiredSocial: defaultBool(conf.ConsentRequiredSocial, false),
895-
ConsentRequiredCorporate: defaultBool(conf.ConsentRequiredCorporate, false),
896-
VideoIdentificationVoucherEnabled: defaultBool(conf.VideoIdentificationVoucherEnabled, false),
897-
VideoIdentificationAccountingEnabled: defaultBool(conf.VideoIdentificationAccountingEnabled, false),
898-
VideoIdentificationPrepaymentRequired: defaultBool(conf.VideoIdentificationPrepaymentRequired, false),
889+
Mode: defaultString(conf.Mode, "corporate"),
890+
AvailableChecks: checks,
891+
SelfRegisterEnabled: defaultBool(conf.SelfRegisterEnabled, false),
892+
BoTheme: conf.BoTheme,
893+
SseTheme: conf.SseTheme,
894+
RegisterTheme: conf.RegisterTheme,
895+
SignerTheme: conf.SignerTheme,
896+
NeedVerifiedContact: defaultBool(conf.NeedVerifiedContact, true),
897+
NeedVerifiedContactAuxiliary: defaultBool(conf.NeedVerifiedContactAuxiliary, true),
898+
ConsentRequiredSocial: defaultBool(conf.ConsentRequiredSocial, false),
899+
ConsentRequiredCorporate: defaultBool(conf.ConsentRequiredCorporate, false),
900+
ConsentRequiredCorporateAuxiliary: defaultBool(conf.ConsentRequiredCorporateAuxiliary, false),
901+
VideoIdentificationVoucherEnabled: defaultBool(conf.VideoIdentificationVoucherEnabled, false),
902+
VideoIdentificationAccountingEnabled: defaultBool(conf.VideoIdentificationAccountingEnabled, false),
903+
VideoIdentificationPrepaymentRequired: defaultBool(conf.VideoIdentificationPrepaymentRequired, false),
899904
AuxiliaryVideoIdentificationVoucherEnabled: defaultBool(conf.AuxiliaryVideoIdentificationVoucherEnabled, false),
900905
AuxiliaryVideoIdentificationAccountingEnabled: defaultBool(conf.AuxiliaryVideoIdentificationAccountingEnabled, false),
901906
AuxiliaryVideoIdentificationPrepaymentRequired: defaultBool(conf.AuxiliaryVideoIdentificationPrepaymentRequired, false),
@@ -906,6 +911,7 @@ func ConvertRealmAdminConfigurationFromDBStruct(conf configuration.RealmAdminCon
906911
AuxiliaryVideoIdentificationAllowedRoles: defaultStringArray(conf.AuxiliaryVideoIdentificationAllowedRoles, emptyArray),
907912
AutoIdentificationAllowedRoles: defaultStringArray(conf.AutoIdentificationAllowedRoles, emptyArray),
908913
PhysicalIdentificationAllowedRoles: defaultStringArray(conf.PhysicalIdentificationAllowedRoles, emptyArray),
914+
AuxiliaryPhysicalIdentificationAllowedRoles: defaultStringArray(conf.AuxiliaryPhysicalIdentificationAllowedRoles, emptyArray),
909915
OnboardingStatusEnabled: defaultBool(conf.OnboardingStatusEnabled, false),
910916
AutoGeneratedUsernameEnabled: defaultBool(conf.AutoGeneratedUsernameEnabled, false),
911917
AutoGeneratedUsernameToggleEnabled: defaultBool(conf.AutoGeneratedUsernameToggleEnabled, false),
@@ -916,19 +922,21 @@ func ConvertRealmAdminConfigurationFromDBStruct(conf configuration.RealmAdminCon
916922
// ConvertToDBStruct converts a realm admin configuration into its database version
917923
func (rac RealmAdminConfiguration) ConvertToDBStruct() configuration.RealmAdminConfiguration {
918924
return configuration.RealmAdminConfiguration{
919-
Mode: rac.Mode,
920-
AvailableChecks: rac.AvailableChecks,
921-
SelfRegisterEnabled: rac.SelfRegisterEnabled,
922-
BoTheme: rac.BoTheme,
923-
SseTheme: rac.SseTheme,
924-
RegisterTheme: rac.RegisterTheme,
925-
SignerTheme: rac.SignerTheme,
926-
NeedVerifiedContact: rac.NeedVerifiedContact,
927-
ConsentRequiredSocial: rac.ConsentRequiredSocial,
928-
ConsentRequiredCorporate: rac.ConsentRequiredCorporate,
929-
VideoIdentificationVoucherEnabled: rac.VideoIdentificationVoucherEnabled,
930-
VideoIdentificationAccountingEnabled: rac.VideoIdentificationAccountingEnabled,
931-
VideoIdentificationPrepaymentRequired: rac.VideoIdentificationPrepaymentRequired,
925+
Mode: rac.Mode,
926+
AvailableChecks: rac.AvailableChecks,
927+
SelfRegisterEnabled: rac.SelfRegisterEnabled,
928+
BoTheme: rac.BoTheme,
929+
SseTheme: rac.SseTheme,
930+
RegisterTheme: rac.RegisterTheme,
931+
SignerTheme: rac.SignerTheme,
932+
NeedVerifiedContact: rac.NeedVerifiedContact,
933+
NeedVerifiedContactAuxiliary: rac.NeedVerifiedContactAuxiliary,
934+
ConsentRequiredSocial: rac.ConsentRequiredSocial,
935+
ConsentRequiredCorporate: rac.ConsentRequiredCorporate,
936+
ConsentRequiredCorporateAuxiliary: rac.ConsentRequiredCorporateAuxiliary,
937+
VideoIdentificationVoucherEnabled: rac.VideoIdentificationVoucherEnabled,
938+
VideoIdentificationAccountingEnabled: rac.VideoIdentificationAccountingEnabled,
939+
VideoIdentificationPrepaymentRequired: rac.VideoIdentificationPrepaymentRequired,
932940
AuxiliaryVideoIdentificationVoucherEnabled: rac.AuxiliaryVideoIdentificationVoucherEnabled,
933941
AuxiliaryVideoIdentificationAccountingEnabled: rac.AuxiliaryVideoIdentificationAccountingEnabled,
934942
AuxiliaryVideoIdentificationPrepaymentRequired: rac.AuxiliaryVideoIdentificationPrepaymentRequired,
@@ -939,6 +947,7 @@ func (rac RealmAdminConfiguration) ConvertToDBStruct() configuration.RealmAdminC
939947
AuxiliaryVideoIdentificationAllowedRoles: rac.AuxiliaryVideoIdentificationAllowedRoles,
940948
AutoIdentificationAllowedRoles: rac.AutoIdentificationAllowedRoles,
941949
PhysicalIdentificationAllowedRoles: rac.PhysicalIdentificationAllowedRoles,
950+
AuxiliaryPhysicalIdentificationAllowedRoles: rac.AuxiliaryPhysicalIdentificationAllowedRoles,
942951
OnboardingStatusEnabled: rac.OnboardingStatusEnabled,
943952
AutoGeneratedUsernameEnabled: rac.AutoGeneratedUsernameEnabled,
944953
AutoGeneratedUsernameToggleEnabled: rac.AutoGeneratedUsernameToggleEnabled,

api/management/api_test.go

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,11 @@ func TestConvertRealmAdminConfiguration(t *testing.T) {
665665
assert.Nil(t, res.SseTheme)
666666
assert.Nil(t, res.RegisterTheme)
667667
assert.Nil(t, res.SignerTheme)
668+
assert.True(t, *res.NeedVerifiedContact)
669+
assert.True(t, *res.NeedVerifiedContactAuxiliary)
670+
assert.False(t, *res.ConsentRequiredSocial)
671+
assert.False(t, *res.ConsentRequiredCorporate)
672+
assert.False(t, *res.ConsentRequiredCorporateAuxiliary)
668673
assert.False(t, *res.VideoIdentificationVoucherEnabled)
669674
assert.False(t, *res.VideoIdentificationAccountingEnabled)
670675
assert.False(t, *res.VideoIdentificationPrepaymentRequired)
@@ -675,26 +680,29 @@ func TestConvertRealmAdminConfiguration(t *testing.T) {
675680
assert.Equal(t, []string{}, res.AuxiliaryVideoIdentificationAllowedRoles)
676681
assert.Equal(t, []string{}, res.AutoIdentificationAllowedRoles)
677682
assert.Equal(t, []string{}, res.PhysicalIdentificationAllowedRoles)
683+
assert.Equal(t, []string{}, res.AuxiliaryVideoIdentificationAllowedRoles)
678684
assert.False(t, *res.OnboardingStatusEnabled)
679685
assert.False(t, *res.AutoGeneratedUsernameEnabled)
680686
assert.False(t, *res.AutoGeneratedUsernameToggleEnabled)
681687
})
682688
t.Run("Non-empty values", func(t *testing.T) {
683689
var mode = "mode"
684690
var config = configuration.RealmAdminConfiguration{
685-
Mode: &mode,
686-
AvailableChecks: map[string]bool{"true": true, "false": false},
687-
SelfRegisterEnabled: boolPtr(true),
688-
BoTheme: ptr("trustid1"),
689-
SseTheme: ptr("trustid2"),
690-
RegisterTheme: ptr("trustid3"),
691-
SignerTheme: ptr("trustid4"),
692-
NeedVerifiedContact: boolPtr(false),
693-
ConsentRequiredSocial: boolPtr(true),
694-
ConsentRequiredCorporate: boolPtr(false),
695-
VideoIdentificationVoucherEnabled: boolPtr(true),
696-
VideoIdentificationAccountingEnabled: boolPtr(true),
697-
VideoIdentificationPrepaymentRequired: boolPtr(true),
691+
Mode: &mode,
692+
AvailableChecks: map[string]bool{"true": true, "false": false},
693+
SelfRegisterEnabled: boolPtr(true),
694+
BoTheme: ptr("trustid1"),
695+
SseTheme: ptr("trustid2"),
696+
RegisterTheme: ptr("trustid3"),
697+
SignerTheme: ptr("trustid4"),
698+
NeedVerifiedContact: boolPtr(false),
699+
NeedVerifiedContactAuxiliary: boolPtr(false),
700+
ConsentRequiredSocial: boolPtr(true),
701+
ConsentRequiredCorporate: boolPtr(false),
702+
ConsentRequiredCorporateAuxiliary: boolPtr(false),
703+
VideoIdentificationVoucherEnabled: boolPtr(true),
704+
VideoIdentificationAccountingEnabled: boolPtr(true),
705+
VideoIdentificationPrepaymentRequired: boolPtr(true),
698706
AuxiliaryVideoIdentificationVoucherEnabled: boolPtr(true),
699707
AuxiliaryVideoIdentificationAccountingEnabled: boolPtr(true),
700708
AuxiliaryVideoIdentificationPrepaymentRequired: boolPtr(true),
@@ -705,6 +713,7 @@ func TestConvertRealmAdminConfiguration(t *testing.T) {
705713
AuxiliaryVideoIdentificationAllowedRoles: []string{"role2"},
706714
AutoIdentificationAllowedRoles: []string{"role3"},
707715
PhysicalIdentificationAllowedRoles: []string{"role4"},
716+
AuxiliaryPhysicalIdentificationAllowedRoles: []string{"role5"},
708717
OnboardingStatusEnabled: boolPtr(true),
709718
AutoGeneratedUsernameEnabled: boolPtr(true),
710719
AutoGeneratedUsernameToggleEnabled: boolPtr(true),
@@ -722,7 +731,10 @@ func TestConvertRealmAdminConfiguration(t *testing.T) {
722731
assert.Equal(t, config.RegisterTheme, res.RegisterTheme)
723732
assert.Equal(t, config.SignerTheme, res.SignerTheme)
724733
assert.False(t, *res.NeedVerifiedContact)
734+
assert.False(t, *res.NeedVerifiedContactAuxiliary)
725735
assert.True(t, *res.ConsentRequiredSocial)
736+
assert.False(t, *res.ConsentRequiredCorporate)
737+
assert.False(t, *res.ConsentRequiredCorporateAuxiliary)
726738
assert.True(t, *res.VideoIdentificationVoucherEnabled)
727739
assert.True(t, *res.VideoIdentificationAccountingEnabled)
728740
assert.True(t, *res.VideoIdentificationPrepaymentRequired)
@@ -733,6 +745,7 @@ func TestConvertRealmAdminConfiguration(t *testing.T) {
733745
assert.Equal(t, []string{"role2"}, res.AuxiliaryVideoIdentificationAllowedRoles)
734746
assert.Equal(t, []string{"role3"}, res.AutoIdentificationAllowedRoles)
735747
assert.Equal(t, []string{"role4"}, res.PhysicalIdentificationAllowedRoles)
748+
assert.Equal(t, []string{"role5"}, res.AuxiliaryPhysicalIdentificationAllowedRoles)
736749
assert.True(t, *res.OnboardingStatusEnabled)
737750
assert.True(t, *res.AutoGeneratedUsernameEnabled)
738751
assert.True(t, *res.AutoGeneratedUsernameToggleEnabled)

0 commit comments

Comments
 (0)