From 598e3217ba60ebec6b60b57813d9dbb626ceadba Mon Sep 17 00:00:00 2001 From: Andrea Maria Piana Date: Mon, 12 Feb 2024 17:23:58 +0000 Subject: [PATCH] Signal user if the networks are not supported --- .../communities/check_permissions_response.go | 25 +++++++++++-------- protocol/communities/permission_checker.go | 1 + 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/protocol/communities/check_permissions_response.go b/protocol/communities/check_permissions_response.go index c8c784580..ac7d1568d 100644 --- a/protocol/communities/check_permissions_response.go +++ b/protocol/communities/check_permissions_response.go @@ -9,9 +9,10 @@ import ( ) type CheckPermissionsResponse struct { - Satisfied bool `json:"satisfied"` - Permissions map[string]*PermissionTokenCriteriaResult `json:"permissions"` - ValidCombinations []*AccountChainIDsCombination `json:"validCombinations"` + Satisfied bool `json:"satisfied"` + Permissions map[string]*PermissionTokenCriteriaResult `json:"permissions"` + ValidCombinations []*AccountChainIDsCombination `json:"validCombinations"` + NetworksNotSupported bool `json:"networksNotSupported"` } type CheckPermissionToJoinResponse = CheckPermissionsResponse @@ -93,17 +94,19 @@ func calculateRolesAndHighestRole(permissions map[string]*PermissionTokenCriteri func (c *CheckPermissionsResponse) MarshalJSON() ([]byte, error) { type CheckPermissionsTypeAlias struct { - Satisfied bool `json:"satisfied"` - Permissions map[string]*PermissionTokenCriteriaResult `json:"permissions"` - ValidCombinations []*AccountChainIDsCombination `json:"validCombinations"` - Roles []*HighestRoleResponse `json:"roles"` - HighestRole *HighestRoleResponse `json:"highestRole"` + Satisfied bool `json:"satisfied"` + Permissions map[string]*PermissionTokenCriteriaResult `json:"permissions"` + ValidCombinations []*AccountChainIDsCombination `json:"validCombinations"` + Roles []*HighestRoleResponse `json:"roles"` + HighestRole *HighestRoleResponse `json:"highestRole"` + NetworksNotSupported bool `json:"networksNotSupported"` } c.calculateSatisfied() item := &CheckPermissionsTypeAlias{ - Satisfied: c.Satisfied, - Permissions: c.Permissions, - ValidCombinations: c.ValidCombinations, + Satisfied: c.Satisfied, + Permissions: c.Permissions, + ValidCombinations: c.ValidCombinations, + NetworksNotSupported: c.NetworksNotSupported, } rolesAndHighestRole := calculateRolesAndHighestRole(c.Permissions) diff --git a/protocol/communities/permission_checker.go b/protocol/communities/permission_checker.go index c19d5a4e0..914a4d960 100644 --- a/protocol/communities/permission_checker.go +++ b/protocol/communities/permission_checker.go @@ -236,6 +236,7 @@ func (p *DefaultPermissionChecker) CheckPermissions(permissions []*CommunityToke // if there are no chain IDs that match token criteria chain IDs // we aren't able to check balances on selected networks if len(erc20ChainIDsMap) > 0 && len(chainIDsForERC20) == 0 { + response.NetworksNotSupported = true return response, nil }