fix: Add checks for users in keys

This commit is contained in:
Yarmo Mackenbach 2023-03-01 15:51:52 +01:00
parent 01389957fb
commit f418b6cf8f
2 changed files with 43 additions and 21 deletions

View file

@ -196,6 +196,11 @@ const doVerification = async (data) => {
} }
} }
// Return early if no users in key
if (!data.keyData.users) {
return data
}
for (let iUser = 0; iUser < data.keyData.users.length; iUser++) { for (let iUser = 0; iUser < data.keyData.users.length; iUser++) {
const user = data.keyData.users[iUser] const user = data.keyData.users[iUser]
@ -225,31 +230,33 @@ const doVerification = async (data) => {
const sanitize = (data) => { const sanitize = (data) => {
const dataClone = JSON.parse(JSON.stringify(data)) const dataClone = JSON.parse(JSON.stringify(data))
for (let iUser = 0; iUser < dataClone.keyData.users.length; iUser++) { if (dataClone.keyData.users) {
const user = dataClone.keyData.users[iUser] for (let iUser = 0; iUser < dataClone.keyData.users.length; iUser++) {
const user = dataClone.keyData.users[iUser]
for (let iClaim = 0; iClaim < user.claims.length; iClaim++) { for (let iClaim = 0; iClaim < user.claims.length; iClaim++) {
const claim = user.claims[iClaim] const claim = user.claims[iClaim]
// TODO Fix upstream // TODO Fix upstream
for (let iMatch = 0; iMatch < claim.matches.length; iMatch++) { for (let iMatch = 0; iMatch < claim.matches.length; iMatch++) {
const match = claim.matches[iMatch] const match = claim.matches[iMatch]
if (Array.isArray(match.claim)) { if (Array.isArray(match.claim)) {
match.claim = match.claim[0] match.claim = match.claim[0]
}
} }
} // TODO Fix upstream
// TODO Fix upstream if (!claim.verification) {
if (!claim.verification) { claim.verification = {}
claim.verification = {} }
} // TODO Fix upstream
// TODO Fix upstream claim.matches.forEach(match => {
claim.matches.forEach(match => { match.proof.request.access = ['generic', 'nocors', 'granted', 'server'][match.proof.request.access]
match.proof.request.access = ['generic', 'nocors', 'granted', 'server'][match.proof.request.access] match.claim.format = ['uri', 'fingerprint', 'message'][match.claim.format]
match.claim.format = ['uri', 'fingerprint', 'message'][match.claim.format] match.claim.relation = ['contains', 'equals', 'oneof'][match.claim.relation]
match.claim.relation = ['contains', 'equals', 'oneof'][match.claim.relation] })
})
data.keyData.users[iUser].claims[iClaim] = claim data.keyData.users[iUser].claims[iClaim] = claim
}
} }
} }
@ -262,6 +269,11 @@ const sanitize = (data) => {
} }
const addSummaryToClaims = (data) => { const addSummaryToClaims = (data) => {
// Return early if no users in key
if (!data.keyData.users) {
return data
}
// To be removed when data is added by DOIP library // To be removed when data is added by DOIP library
for (let userIndex = 0; userIndex < data.keyData.users.length; userIndex++) { for (let userIndex = 0; userIndex < data.keyData.users.length; userIndex++) {
const user = data.keyData.users[userIndex] const user = data.keyData.users[userIndex]

View file

@ -199,6 +199,11 @@ const doVerification = async (data) => {
} }
} }
// Return early if no users in key
if (!data.keyData.users) {
return data
}
for (let iUser = 0; iUser < data.keyData.users.length; iUser++) { for (let iUser = 0; iUser < data.keyData.users.length; iUser++) {
const user = data.keyData.users[iUser] const user = data.keyData.users[iUser]
@ -235,6 +240,11 @@ const sanitize = (data) => {
} }
const addSummaryToClaims = (data) => { const addSummaryToClaims = (data) => {
// Return early if no users in key
if (!data.keyData.users) {
return data
}
// To be removed when data is added by DOIP library // To be removed when data is added by DOIP library
for (let userIndex = 0; userIndex < data.keyData.users.length; userIndex++) { for (let userIndex = 0; userIndex < data.keyData.users.length; userIndex++) {
const user = data.keyData.users[userIndex] const user = data.keyData.users[userIndex]