2020-02-18 08:57:00 +01:00
|
|
|
import { NavigationGuard } from "vue-router";
|
|
|
|
import { CONFIG } from "../../graphql/config";
|
|
|
|
import { ErrorCode } from "../../types/error-code.model";
|
|
|
|
import apolloProvider from "../../vue-apollo";
|
2019-04-01 11:49:54 +02:00
|
|
|
|
2020-02-18 08:57:00 +01:00
|
|
|
// eslint-disable-next-line import/prefer-default-export
|
|
|
|
export const beforeRegisterGuard: NavigationGuard = async (to, from, next) => {
|
2019-04-01 11:49:54 +02:00
|
|
|
const { data } = await apolloProvider.defaultClient.query({
|
|
|
|
query: CONFIG,
|
|
|
|
});
|
|
|
|
|
2020-02-18 08:57:00 +01:00
|
|
|
const { config } = data;
|
2019-04-01 11:49:54 +02:00
|
|
|
|
2019-12-17 12:09:24 +01:00
|
|
|
if (!config.registrationsOpen && !config.registrationsWhitelist) {
|
2019-04-01 11:49:54 +02:00
|
|
|
return next({
|
2020-02-18 08:57:00 +01:00
|
|
|
name: "Error",
|
2019-04-01 11:49:54 +02:00
|
|
|
query: { code: ErrorCode.REGISTRATION_CLOSED },
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return next();
|
|
|
|
};
|