mirror of
https://codeberg.org/keyoxide/keyoxide-web.git
synced 2024-12-22 23:09:29 -07:00
fix: Add checks for users in keys
This commit is contained in:
parent
01389957fb
commit
f418b6cf8f
2 changed files with 43 additions and 21 deletions
|
@ -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]
|
||||||
|
|
|
@ -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]
|
||||||
|
|
Loading…
Reference in a new issue