diff --git a/backend/src/middleware/permissionsMiddleware.ts b/backend/src/middleware/permissionsMiddleware.ts index 1a598b972..a775e2fe3 100644 --- a/backend/src/middleware/permissionsMiddleware.ts +++ b/backend/src/middleware/permissionsMiddleware.ts @@ -514,6 +514,7 @@ export default shield( }, Group: { '*': isAuthenticated, // TODO - only those who are allowed to see the group + slug: allow, avatar: allow, name: allow, about: allow, diff --git a/webapp/components/Registration/RegistrationSlideCreate.vue b/webapp/components/Registration/RegistrationSlideCreate.vue index 141db1c4a..9aab5d77a 100644 --- a/webapp/components/Registration/RegistrationSlideCreate.vue +++ b/webapp/components/Registration/RegistrationSlideCreate.vue @@ -269,7 +269,17 @@ export default { setTimeout(async () => { await this.$store.dispatch('auth/login', { email, password }) this.$toast.success(this.$t('login.success')) - this.$router.push('/') + const { validateInviteCode } = this.sliderData.sliders[0].data.response + if ( + validateInviteCode && + validateInviteCode.invitedTo && + validateInviteCode.invitedTo.groupType === 'public' + ) { + const { invitedTo } = validateInviteCode + this.$router.push(`/groups/${invitedTo.slug}`) + } else { + this.$router.push('/') + } this.sliderData.setSliderValuesCallback(null, { sliderSettings: { buttonLoading: false }, }) diff --git a/webapp/graphql/InviteCode.js b/webapp/graphql/InviteCode.js index 99a8ee9f2..10981327d 100644 --- a/webapp/graphql/InviteCode.js +++ b/webapp/graphql/InviteCode.js @@ -5,6 +5,7 @@ export const validateInviteCode = () => gql` validateInviteCode(code: $code) { code invitedTo { + slug groupType name about