diff --git a/js/src/views/Discussions/Discussion.vue b/js/src/views/Discussions/Discussion.vue index 56618e6c2..da3b1e9f3 100644 --- a/js/src/views/Discussions/Discussion.vue +++ b/js/src/views/Discussions/Discussion.vue @@ -18,7 +18,7 @@ }" >{{ discussion.actor.name }} - +
  • {{ $t("Discussions") }} - +
  • + + {{ error }} +

    @@ -60,8 +63,16 @@

    - -
    + +
    {{ $t("Fetch more") }} - + @@ -217,6 +228,7 @@ export default class discussion extends mixins(GroupMixin) { RouteName = RouteName; usernameWithDomain = usernameWithDomain; + error: string | null = null; async reply(): Promise { if (this.newComment === "") return; @@ -422,6 +434,11 @@ export default class discussion extends mixins(GroupMixin) { if (errors[0].message.includes("No such discussion")) { await this.$router.push({ name: RouteName.PAGE_NOT_FOUND }); } + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + if (errors[0].code === "unauthorized") { + this.error = errors[0].message; + } } mounted(): void { diff --git a/lib/graphql/resolvers/discussion.ex b/lib/graphql/resolvers/discussion.ex index 328b0d718..fe7ba3c02 100644 --- a/lib/graphql/resolvers/discussion.ex +++ b/lib/graphql/resolvers/discussion.ex @@ -60,6 +60,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do {:ok, discussion} else nil -> {:error, dgettext("errors", "Discussion not found")} + {:member, false} -> {:error, :unauthorized} end end