diff --git a/backend/api/routes/invitations_api.py b/backend/api/routes/invitations_api.py index 9b1525464..2bc7c5f85 100644 --- a/backend/api/routes/invitations_api.py +++ b/backend/api/routes/invitations_api.py @@ -82,7 +82,7 @@ class InvitationsVerifyAPI(Resource): @api.response(500, "Internal server error") def get(self, invite_code): # Select the invite from the database - invitation = Invitations.get_or_none(Invitations.code == invite_code) + invitation: Invitations = Invitations.get_or_none(Invitations.code == invite_code) if not invitation: return {"message": "Invitation not found"}, 404 @@ -90,7 +90,8 @@ def get(self, invite_code): if invitation.used is True and invitation.unlimited is not True: return {"message": "Invitation has already been used"}, 400 - if invitation.expires and invitation.expires <= datetime.now(): + print(invitation.expires, datetime.utcnow()) + if invitation.expires and invitation.expires <= datetime.utcnow(): return {"message": "Invitation has expired"}, 400 return {"message": "Invitation is valid"}, 200 diff --git a/frontend/src/components/Forms/InviteForm.vue b/frontend/src/components/Forms/InviteForm.vue index 8eddbf714..a08dfcaad 100644 --- a/frontend/src/components/Forms/InviteForm.vue +++ b/frontend/src/components/Forms/InviteForm.vue @@ -75,6 +75,7 @@ import DefaultInput from "@/components/Inputs/DefaultInput.vue"; import SelectInput from "@/components/Inputs/SelectInput.vue"; import DateInput from "@/components/Inputs/DateInput.vue"; import DefaultButton from "../Buttons/DefaultButton.vue"; + import type { ToastID } from "vue-toastification/dist/types/types"; export default defineComponent({ @@ -91,8 +92,9 @@ export default defineComponent({ clipboard: useClipboard(), created: false, failed: false, + inviteCode: "", inviteData: { - inviteCode: customAlphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZ")(6), + inviteCode: "", expiration: 1440 as number | null | "custom", customExpiration: "" as string, options: [] as string[], @@ -220,6 +222,7 @@ export default defineComponent({ // Show the invite this.created = true; + this.inviteCode = this.inviteData.inviteCode; this.$formkit.reset("inviteForm"); this.inviteData.inviteCode = customAlphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZ")(6); }, @@ -247,7 +250,7 @@ export default defineComponent({ }); }, inviteLink() { - return `${window.location.origin}/j/${this.inviteData.inviteCode}`; + return `${window.location.origin}/j/${this.inviteCode}`; }, }, watch: { @@ -276,6 +279,7 @@ export default defineComponent({ }, async mounted() { this.getLibraries(); + this.inviteData.inviteCode = customAlphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZ")(6); this.inviteData.libraries = this.libraries.map((library) => library.id); }, }); diff --git a/frontend/src/components/InvitationList/InvitationItem.vue b/frontend/src/components/InvitationList/InvitationItem.vue index 97341c629..db588c5a9 100644 --- a/frontend/src/components/InvitationList/InvitationItem.vue +++ b/frontend/src/components/InvitationList/InvitationItem.vue @@ -1,8 +1,8 @@