diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index 55e4165b7..cbdc683e8 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -255,7 +255,7 @@ export default { 'MATCH (this)-[:BLOCKED]-(u:User {id: $cypherParams.currentUserId}) RETURN COUNT(u) >= 1', isMuted: 'MATCH (this)<-[:MUTED]-(u:User {id: $cypherParams.currentUserId}) RETURN COUNT(u) >= 1', - hasBlocked: + isBlocked: 'MATCH (this)<-[:BLOCKED]-(u:User {id: $cypherParams.currentUserId}) RETURN COUNT(u) >= 1', }, count: { diff --git a/backend/src/schema/types/type/User.gql b/backend/src/schema/types/type/User.gql index ec9bfeba7..baefc9d29 100644 --- a/backend/src/schema/types/type/User.gql +++ b/backend/src/schema/types/type/User.gql @@ -68,7 +68,7 @@ type User { RETURN COUNT(u) >= 1 """ ) - hasBlocked: Boolean! @cypher( + isBlocked: Boolean! @cypher( statement: """ MATCH (this)<-[:BLOCKED]-(user:User {id: $cypherParams.currentUserId}) RETURN COUNT(user) >= 1 diff --git a/cypress/integration/common/steps.js b/cypress/integration/common/steps.js index 52e8d7bba..c51290537 100644 --- a/cypress/integration/common/steps.js +++ b/cypress/integration/common/steps.js @@ -591,13 +591,18 @@ Then("I should see no users in my blocked users list", () => { .should('contain', "So far, you have not blocked anybody.") }) -Then("I should not see {string} from the content menu in the user info box", link => { +Then("I {string} see {string} from the content menu in the user info box", (condition, link) => { cy.get(".user-content-menu .base-button").click() cy.get(".popover .ds-menu-item-link") - .should('not.contain', link) + .should(condition === 'should' ? 'contain' : 'not.contain', link) }) Then('I should not see {string} button', button => { - cy.get('.ds-card-content') - .should('not.contain', '.action-buttons') + cy.get('.ds-card-content .action-buttons') + .should('have.length', 1) +}) + +Then('I should see the {string} button', button => { + cy.get('.ds-card-content .action-buttons .base-button') + .should('contain', button) }) diff --git a/cypress/integration/user_profile/BlockUser.feature b/cypress/integration/user_profile/BlockUser.feature index bf56e2b02..256d79dfb 100644 --- a/cypress/integration/user_profile/BlockUser.feature +++ b/cypress/integration/user_profile/BlockUser.feature @@ -11,6 +11,7 @@ Feature: Block a User Scenario: Block a user Given I am on the profile page of the annoying user When I click on "Block user" from the content menu in the user info box + And I "should" see "Unblock user" from the content menu in the user info box And I navigate to my "Blocked users" settings page Then I can see the following table: | Avatar | Name | @@ -28,6 +29,7 @@ Feature: Block a User When I visit the profile page of the annoying user And I click on "Block user" from the content menu in the user info box And I get removed from his follower collection + And I "should" see "Unblock user" from the content menu in the user info box Scenario: Posts of blocked users are not filtered from search results Given "Harassing User" wrote a post "You can still see my posts" @@ -53,5 +55,6 @@ Feature: Block a User Scenario: Blocked users should not see link or button to unblock, only blocking users Given a user has blocked me When I visit the profile page of the annoying user - And I should not see "Unblock user" from the content menu in the user info box + And I "should not" see "Unblock user" from the content menu in the user info box + And I should see the "Follow" button And I should not see "Unblock user" button \ No newline at end of file diff --git a/webapp/components/ContentMenu/ContentMenu.vue b/webapp/components/ContentMenu/ContentMenu.vue index 2be51c6ac..cee8a6f5c 100644 --- a/webapp/components/ContentMenu/ContentMenu.vue +++ b/webapp/components/ContentMenu/ContentMenu.vue @@ -172,7 +172,7 @@ export default { icon: 'microphone-slash', }) } - if (this.resource.hasBlocked) { + if (this.resource.isBlocked) { routes.push({ label: this.$t(`settings.blocked-users.unblock`), callback: () => { diff --git a/webapp/graphql/User.js b/webapp/graphql/User.js index a73941794..c36383a95 100644 --- a/webapp/graphql/User.js +++ b/webapp/graphql/User.js @@ -24,6 +24,7 @@ export default i18n => { createdAt followedByCurrentUser isMuted + isBlocked blocked following(first: 7) { ...user diff --git a/webapp/pages/post/_id/_slug/index.vue b/webapp/pages/post/_id/_slug/index.vue index 1d107941a..8115294c5 100644 --- a/webapp/pages/post/_id/_slug/index.vue +++ b/webapp/pages/post/_id/_slug/index.vue @@ -97,7 +97,7 @@ :post="post" @createComment="createComment" /> - + {{ $t('settings.blocked-users.explanation.commenting-disabled') }}
{{ $t('settings.blocked-users.explanation.commenting-explanation') }} diff --git a/webapp/pages/profile/_id/_slug.vue b/webapp/pages/profile/_id/_slug.vue index 4d9653dcb..372b73b40 100644 --- a/webapp/pages/profile/_id/_slug.vue +++ b/webapp/pages/profile/_id/_slug.vue @@ -67,14 +67,14 @@
- + {{ $t('settings.blocked-users.unblock') }} {{ $t('settings.muted-users.unmute') }}