fix: handle uppercase and missing user verification (#44444)

* fix: hotfix for isHonest null

* fix: early return if no user?

* fix: handle invalid input on api

Also lowerCases the username it receives since the client could send any
case.

* fix: report errors to user when verification fails

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
This commit is contained in:
Nicholas Carrigan (he/him)
2021-12-10 03:23:26 -08:00
committed by GitHub
parent fd0a140c8a
commit 42acc542b7
4 changed files with 43 additions and 9 deletions

View File

@@ -91,12 +91,22 @@ const CertChallenge = ({
void (async () => {
try {
const data = await getVerifyCanClaimCert(username, superBlock);
const { status, result } = data?.response?.message;
setCanClaimCert(status);
setCertVerificationMessage(result);
setVerificationComplete(true);
if (data?.message) {
setCanClaimCert(false);
createFlashMessage(data.message);
} else {
const { status, result } = data?.response?.message;
setCanClaimCert(status);
setCertVerificationMessage(result);
}
} catch (e) {
// TODO: How do we handle errors...?
console.error(e);
createFlashMessage({
type: 'danger',
message: FlashMessages.ReallyWeird
});
} finally {
setVerificationComplete(true);
}
})();
}

View File

@@ -1,5 +1,6 @@
import cookies from 'browser-cookies';
import envData from '../../../config/env.json';
import { FlashMessageArg } from '../components/Flash/redux';
import type {
ChallengeFile,
@@ -172,6 +173,7 @@ export interface GetVerifyCanClaimCert {
};
isCertMap: ClaimedCertifications;
completedChallenges: CompletedChallenge[];
message?: FlashMessageArg;
}
export function getVerifyCanClaimCert(