From 4782221ef43f6b38d96e167ee845cb8d7c95e0e1 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Thu, 20 Aug 2020 10:54:58 +0200 Subject: [PATCH] Allow to update a member role Signed-off-by: Thomas Citharel --- js/src/graphql/member.ts | 9 ++ js/src/i18n/en_US.json | 4 +- js/src/i18n/fr_FR.json | 4 +- js/src/views/Group/GroupMembers.vue | 44 +++++- lib/federation/activity_pub/activity_pub.ex | 9 +- lib/federation/activity_pub/fetcher.ex | 4 - lib/federation/activity_pub/preloader.ex | 4 +- lib/federation/activity_pub/transmogrifier.ex | 21 +++ lib/federation/activity_pub/types/entity.ex | 8 +- lib/federation/activity_pub/types/members.ex | 54 +++++++ lib/graphql/resolvers/member.ex | 26 ++- lib/graphql/schema/actors/member.ex | 7 + test/graphql/resolvers/member_test.exs | 149 ++++++++++++++++++ 13 files changed, 321 insertions(+), 22 deletions(-) create mode 100644 lib/federation/activity_pub/types/members.ex diff --git a/js/src/graphql/member.ts b/js/src/graphql/member.ts index fe2e704bf..59e5cf23c 100644 --- a/js/src/graphql/member.ts +++ b/js/src/graphql/member.ts @@ -81,6 +81,15 @@ export const GROUP_MEMBERS = gql` } `; +export const UPDATE_MEMBER = gql` + mutation UpdateMember($memberId: ID!, $role: MemberRoleEnum!) { + updateMember(memberId: $memberId, role: $role) { + id + role + } + } +`; + export const REMOVE_MEMBER = gql` mutation RemoveMember($groupId: ID!, $memberId: ID!) { removeMember(groupId: $groupId, memberId: $memberId) { diff --git a/js/src/i18n/en_US.json b/js/src/i18n/en_US.json index 2eca592ef..9da515b2e 100644 --- a/js/src/i18n/en_US.json +++ b/js/src/i18n/en_US.json @@ -764,5 +764,7 @@ "Update": "Update", "Search…": "Search…", "Edited {ago}": "Edited {ago}", - "[This comment has been deleted by it's author]": "[This comment has been deleted by it's author]" + "[This comment has been deleted by it's author]": "[This comment has been deleted by it's author]", + "Promote": "Promote", + "Demote": "Demote" } diff --git a/js/src/i18n/fr_FR.json b/js/src/i18n/fr_FR.json index e8442adf8..9c2a07a26 100644 --- a/js/src/i18n/fr_FR.json +++ b/js/src/i18n/fr_FR.json @@ -765,5 +765,7 @@ "Update": "Éditer", "Search…": "Rechercher…", "Edited {ago}": "Édité {ago}", - "[This comment has been deleted by it's author]": "[Ce commentaire a été supprimé par son auteur]" + "[This comment has been deleted by it's author]": "[Ce commentaire a été supprimé par son auteur]", + "Promote": "Promouvoir", + "Demote": "Rétrograder" } diff --git a/js/src/views/Group/GroupMembers.vue b/js/src/views/Group/GroupMembers.vue index 9996a9444..e6fa34c04 100644 --- a/js/src/views/Group/GroupMembers.vue +++ b/js/src/views/Group/GroupMembers.vue @@ -134,12 +134,24 @@ - {{ $t("Remove") }} +
+ {{ $t("Promote") }} + {{ $t("Demote") }} + {{ $t("Remove") }} +