Add secure public driver training profiles
This commit is contained in:
@@ -41,7 +41,23 @@ export function normalizeTrainingState(training, { uid }) {
|
||||
.sort((left, right) => left.timestamp - right.timestamp)
|
||||
: [];
|
||||
|
||||
return { goals, ledger };
|
||||
const seenShareDrivers = new Set();
|
||||
const shares = Array.isArray(source.shares)
|
||||
? source.shares
|
||||
.map((share) => ({
|
||||
driverId: String(share?.driverId || ""),
|
||||
token: String(share?.token || "").trim(),
|
||||
enabled: share?.enabled !== false,
|
||||
createdAt: String(share?.createdAt || new Date().toISOString()),
|
||||
}))
|
||||
.filter((share) => {
|
||||
if (!share.driverId || share.token.length < 24 || seenShareDrivers.has(share.driverId)) return false;
|
||||
seenShareDrivers.add(share.driverId);
|
||||
return true;
|
||||
})
|
||||
: [];
|
||||
|
||||
return { goals, ledger, shares };
|
||||
}
|
||||
|
||||
function getPassingSourceKey(sessionId, passing, index) {
|
||||
@@ -82,7 +98,7 @@ export function syncTrainingLedger(training, state, { uid }) {
|
||||
});
|
||||
});
|
||||
|
||||
return normalizeTrainingState({ goals: normalized.goals, ledger: [...retained, ...current] }, { uid });
|
||||
return normalizeTrainingState({ goals: normalized.goals, ledger: [...retained, ...current], shares: normalized.shares }, { uid });
|
||||
}
|
||||
|
||||
export function getDriverTrainingLaps(state, driverId) {
|
||||
|
||||
Reference in New Issue
Block a user