Merge pull request #6530 from Ocelot-Social-Community/fix-backend-room-with-self

fix(backend): chat - do not allow to create room with self
This commit is contained in:
Ulf Gebhardt 2023-07-11 13:29:35 +02:00 committed by GitHub
commit ab5b7a0b8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 25 additions and 4 deletions

View File

@ -92,6 +92,21 @@ describe('Room', () => {
})
})
describe('user id is self', () => {
it('throws error', async () => {
await expect(
mutate({
mutation: createRoomMutation(),
variables: {
userId: 'chatting-user',
},
}),
).resolves.toMatchObject({
errors: [{ message: 'Cannot create a room with self' }],
})
})
})
describe('user id exists', () => {
it('returns the id of the room', async () => {
const result = await mutate({

View File

@ -32,6 +32,9 @@ export default {
const {
user: { id: currentUserId },
} = context
if (userId === currentUserId) {
throw new Error('Cannot create a room with self')
}
const session = context.driver.session()
const writeTxResultPromise = session.writeTransaction(async (transaction) => {
const createRoomCypher = `

View File

@ -37,7 +37,7 @@ describe('default.vue', () => {
getters: {
'auth/isLoggedIn': () => true,
'chat/showChat': () => {
return { showChat: false, roomID: 'u0' }
return { showChat: false, roomID: null }
},
},
})

View File

@ -16,7 +16,7 @@
<div v-if="$store.getters['chat/showChat'].showChat" class="chat-modul">
<ds-text align="right" class="close">
RoomID: {{ $store.getters['chat/showChat'].roomID }}
<ds-button @click="$store.commit('chat/SET_OPEN_CHAT', { showChat: false, roomID: 'u0' })">
<ds-button @click="$store.commit('chat/SET_OPEN_CHAT', { showChat: false, roomID: null })">
x
</ds-button>
</ds-text>
@ -41,6 +41,9 @@ export default {
ChatModule,
},
mixins: [seo, mobile()],
beforeCreate() {
this.$store.commit('chat/SET_OPEN_CHAT', { showChat: false, roomID: null })
},
}
</script>

View File

@ -1,14 +1,14 @@
export const state = () => {
return {
showChat: false,
roomID: 'u0',
roomID: null,
}
}
export const mutations = {
SET_OPEN_CHAT(state, ctx) {
state.showChat = ctx.showChat || false
state.roomID = ctx.roomID || 'u0'
state.roomID = ctx.roomID || null
},
}