fix(CommunityPermissions): Fix token criteria updates in the permissions model
Re-create the token criteria and include all items whenever the model changes. The previous perf optimisation fix filtered the items where the criteriaMet doesn't change.
This commit is contained in:
parent
75e1d3151f
commit
a9a83df301
|
@ -933,12 +933,13 @@ proc updateTokenPermissionModel*(self: Module, permissions: Table[string, CheckP
|
||||||
|
|
||||||
var updatedTokenCriteriaItems: seq[TokenCriteriaItem] = @[]
|
var updatedTokenCriteriaItems: seq[TokenCriteriaItem] = @[]
|
||||||
var permissionSatisfied = true
|
var permissionSatisfied = true
|
||||||
|
var aCriteriaChanged = false
|
||||||
|
|
||||||
for index, tokenCriteriaItem in tokenPermissionItem.getTokenCriteria().getItems():
|
for index, tokenCriteriaItem in tokenPermissionItem.getTokenCriteria().getItems():
|
||||||
let criteriaMet = criteriaResult.criteria[index]
|
let criteriaMet = criteriaResult.criteria[index]
|
||||||
|
|
||||||
if tokenCriteriaItem.criteriaMet == criteriaMet:
|
if tokenCriteriaItem.criteriaMet != criteriaMet:
|
||||||
continue
|
aCriteriaChanged = true
|
||||||
|
|
||||||
let updatedTokenCriteriaItem = initTokenCriteriaItem(
|
let updatedTokenCriteriaItem = initTokenCriteriaItem(
|
||||||
tokenCriteriaItem.symbol,
|
tokenCriteriaItem.symbol,
|
||||||
|
@ -954,7 +955,7 @@ proc updateTokenPermissionModel*(self: Module, permissions: Table[string, CheckP
|
||||||
|
|
||||||
updatedTokenCriteriaItems.add(updatedTokenCriteriaItem)
|
updatedTokenCriteriaItems.add(updatedTokenCriteriaItem)
|
||||||
|
|
||||||
if updatedTokenCriteriaItems.len == 0:
|
if not aCriteriaChanged:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
thereWasAnUpdate = true
|
thereWasAnUpdate = true
|
||||||
|
|
|
@ -899,13 +899,13 @@ proc applyPermissionResponse*(self: Module, communityId: string, permissions: Ta
|
||||||
|
|
||||||
var updatedTokenCriteriaItems: seq[TokenCriteriaItem] = @[]
|
var updatedTokenCriteriaItems: seq[TokenCriteriaItem] = @[]
|
||||||
var permissionSatisfied = true
|
var permissionSatisfied = true
|
||||||
|
var aCriteriaChanged = false
|
||||||
|
|
||||||
for index, tokenCriteriaItem in tokenPermissionItem.getTokenCriteria().getItems():
|
for index, tokenCriteriaItem in tokenPermissionItem.getTokenCriteria().getItems():
|
||||||
let criteriaMet = criteriaResult.criteria[index]
|
let criteriaMet = criteriaResult.criteria[index]
|
||||||
|
|
||||||
if tokenCriteriaItem.criteriaMet == criteriaMet:
|
if tokenCriteriaItem.criteriaMet != criteriaMet:
|
||||||
continue
|
aCriteriaChanged = true
|
||||||
|
|
||||||
|
|
||||||
let updatedTokenCriteriaItem = initTokenCriteriaItem(
|
let updatedTokenCriteriaItem = initTokenCriteriaItem(
|
||||||
tokenCriteriaItem.symbol,
|
tokenCriteriaItem.symbol,
|
||||||
|
@ -921,8 +921,9 @@ proc applyPermissionResponse*(self: Module, communityId: string, permissions: Ta
|
||||||
|
|
||||||
updatedTokenCriteriaItems.add(updatedTokenCriteriaItem)
|
updatedTokenCriteriaItems.add(updatedTokenCriteriaItem)
|
||||||
|
|
||||||
if updatedTokenCriteriaItems.len == 0:
|
if not aCriteriaChanged:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
let updatedTokenPermissionItem = initTokenPermissionItem(
|
let updatedTokenPermissionItem = initTokenPermissionItem(
|
||||||
tokenPermissionItem.id,
|
tokenPermissionItem.id,
|
||||||
tokenPermissionItem.`type`,
|
tokenPermissionItem.`type`,
|
||||||
|
|
Loading…
Reference in New Issue