diff --git a/CHANGELOG.md b/CHANGELOG.md index a2f8d43cc786c28f16396f551589149d72d2cb5b..658ec70d2196503480ab3b8ecc23914734250ef8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,8 +15,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Filter users by actor type: Person, Bot or Application - Add ability to configure Media Preview Proxy, User Backup, Websocket based federation and Pleroma.Web.Endpoint.MetricsExporter settings - Mobile and Tablet UI for Single Report show page + ### Changed +- *Breaking*: AdminAPI changed User field `confirmation_pending` to `is_confirmed` - Hide Tag actions on Users tab if MRF TagPolicy is disabled. Add ability to enable TagPolicy from Moderation menu - Move `:restrict_unauthenticated` settings from Authentication tab to Instance tab - Replace regular inputs with textareas for setting welcome messages in the Settings section diff --git a/src/api/__mocks__/chat.js b/src/api/__mocks__/chat.js index 946673b18f35ce9b15c7d60eb655cd56a13b34f3..75692ea73c9d08b803246d6c9a8c0417891eead3 100644 --- a/src/api/__mocks__/chat.js +++ b/src/api/__mocks__/chat.js @@ -44,7 +44,7 @@ export const userChats = [ accepts_chat_messages: true, ap_id: 'http://localhost:4000/users/test10', background_image: null, - confirmation_pending: false, + is_confirmed: true, favicon: null, hide_favorites: true, hide_followers: false, @@ -99,7 +99,7 @@ export const userChats = [ accepts_chat_messages: true, ap_id: 'https://localhost/users/mk', background_image: null, - confirmation_pending: false, + is_confirmed: true, favicon: null, hide_favorites: true, hide_followers: false, @@ -168,7 +168,7 @@ export const userChats = [ accepts_chat_messages: true, ap_id: 'http://localhost:4000/users/user2', background_image: null, - confirmation_pending: true, + is_confirmed: false, favicon: null, hide_favorites: true, hide_followers: false, @@ -222,7 +222,7 @@ export const userChats = [ accepts_chat_messages: true, ap_id: 'https://localhost/users/mk', background_image: null, - confirmation_pending: false, + is_confirmed: true, favicon: null, hide_favorites: true, hide_followers: false, @@ -286,7 +286,7 @@ export const userChats = [ accepts_chat_messages: true, ap_id: 'https://localhost/users/mk', background_image: null, - confirmation_pending: false, + is_confirmed: true, favicon: null, hide_favorites: true, hide_followers: false, @@ -344,7 +344,7 @@ export const userChats = [ accepts_chat_messages: true, ap_id: 'https://localhost/users/mk', background_image: null, - confirmation_pending: false, + is_confirmed: true, favicon: null, hide_favorites: true, hide_followers: false, diff --git a/src/api/__mocks__/login.js b/src/api/__mocks__/login.js index a980f88b25530ef8b58503c11ebd7122134a2047..31591f7be6f14f9a7da33ee368d76d98f55b4ee4 100644 --- a/src/api/__mocks__/login.js +++ b/src/api/__mocks__/login.js @@ -43,7 +43,7 @@ export function getUserInfo(token, authHost) { 'statuses_count': 0, 'cover_photo': '', 'hide_follows': false, - 'pleroma': { 'confirmation_pending': false, 'deactivated': false, 'tags': ['force_nsfw'], 'is_admin': true }, + 'pleroma': { 'is_confirmed': true, 'deactivated': false, 'tags': ['force_nsfw'], 'is_admin': true }, 'profile_image_url_original': '', 'created_at': 'Fri Mar 01 15:15:19 +0000 2019', 'fields': [], diff --git a/src/api/__mocks__/users.js b/src/api/__mocks__/users.js index a389d7f4a8622c64541871c87c4fb7423c882896..c06bff678a35dfe7957c7c5bec477dfc7b62162e 100644 --- a/src/api/__mocks__/users.js +++ b/src/api/__mocks__/users.js @@ -1,12 +1,12 @@ import userChats from './chat' export let users = [ - { active: true, approval_pending: false, deactivated: false, id: '2', nickname: 'allis', local: true, external: false, roles: { admin: true, moderator: false }, tags: [], actor_type: 'Person' }, - { active: true, approval_pending: false, deactivated: false, id: '10', nickname: 'bob', local: true, external: false, roles: { admin: false, moderator: false }, tags: ['mrf_tag:sandbox'], actor_type: 'Person' }, - { active: true, approval_pending: true, deactivated: false, id: '567', nickname: 'ded', local: false, external: true, roles: { admin: false, moderator: false }, tags: [], actor_type: 'Person' }, - { active: false, approval_pending: false, deactivated: true, id: 'abc', nickname: 'john', local: true, external: false, roles: { admin: false, moderator: false }, tags: ['mrf_tag:media-strip'], actor_type: 'Person' }, - { active: true, approval_pending: true, deactivated: false, id: '100', nickname: 'sally', local: true, external: false, roles: { admin: false, moderator: false }, tags: [], actor_type: 'Service' }, - { active: true, approval_pending: true, deactivated: false, id: '123', nickname: 'bot', local: true, external: false, roles: { admin: false, moderator: false }, tags: [], actor_type: 'Application' } + { active: true, is_confirmed: true, approval_pending: false, deactivated: false, id: '2', nickname: 'allis', local: true, external: false, roles: { admin: true, moderator: false }, tags: [], actor_type: 'Person' }, + { active: true, is_confirmed: true, approval_pending: false, deactivated: false, id: '10', nickname: 'bob', local: true, external: false, roles: { admin: false, moderator: false }, tags: ['mrf_tag:sandbox'], actor_type: 'Person' }, + { active: true, is_confirmed: true, approval_pending: true, deactivated: false, id: '567', nickname: 'ded', local: false, external: true, roles: { admin: false, moderator: false }, tags: [], actor_type: 'Person' }, + { active: false, is_confirmed: true, approval_pending: false, deactivated: true, id: 'abc', nickname: 'john', local: true, external: false, roles: { admin: false, moderator: false }, tags: ['mrf_tag:media-strip'], actor_type: 'Person' }, + { active: true, is_confirmed: true, approval_pending: true, deactivated: false, id: '100', nickname: 'sally', local: true, external: false, roles: { admin: false, moderator: false }, tags: [], actor_type: 'Service' }, + { active: true, is_confirmed: true, approval_pending: true, deactivated: false, id: '123', nickname: 'bot', local: true, external: false, roles: { admin: false, moderator: false }, tags: [], actor_type: 'Application' } ] const userProfile = { avatar: 'avatar.jpg', nickname: 'allis', id: '2', tags: [], roles: { admin: true, moderator: false }, local: true, external: false } diff --git a/src/store/modules/users.js b/src/store/modules/users.js index 29b98fcf4d5fa040a90246b7e0631d817e1af9e0..a9477323710315adf6f02cd30b33ca3f2ae88dce 100644 --- a/src/store/modules/users.js +++ b/src/store/modules/users.js @@ -149,7 +149,7 @@ const users = { }, async ConfirmUsersEmail({ dispatch, getters }, { users, _userId, _statusId }) { const updatedUsers = users.map(user => { - return { ...user, confirmation_pending: false } + return { ...user, is_confirmed: true } }) const nicknames = users.map(user => user.nickname) const callApiFn = async() => await confirmUserEmail(nicknames, getters.authHost, getters.token) diff --git a/src/views/users/components/ModerationDropdown.vue b/src/views/users/components/ModerationDropdown.vue index d54efe4344d06a524fdd58d818fae3de4dc517dc..64aa75f6eb1310a5b250c22899f48145a07925cf 100644 --- a/src/views/users/components/ModerationDropdown.vue +++ b/src/views/users/components/ModerationDropdown.vue @@ -57,13 +57,13 @@ {{ $t('users.rejectAccount') }} </el-dropdown-item> <el-dropdown-item - v-if="user.local && user.confirmation_pending" + v-if="user.local && !user.is_confirmed" divided @click.native="handleEmailConfirmation(user)"> {{ $t('users.confirmAccount') }} </el-dropdown-item> <el-dropdown-item - v-if="user.local && user.confirmation_pending" + v-if="user.local && !user.is_confirmed" @click.native="handleConfirmationResend(user)"> {{ $t('users.resendConfirmation') }} </el-dropdown-item> diff --git a/src/views/users/components/MultipleUsersMenu.vue b/src/views/users/components/MultipleUsersMenu.vue index bdf65006c94d24aa69ebcf0820a0e6e27e8697be..8446bbb0fd4ea4dbe98713af832de092f77a1f84 100644 --- a/src/views/users/components/MultipleUsersMenu.vue +++ b/src/views/users/components/MultipleUsersMenu.vue @@ -244,13 +244,13 @@ export default { applyAction(filtered, approveAccountFn) }, confirmAccounts: () => { - const filtered = this.selectedUsers.filter(user => this.isLocalUser(user) && user.confirmation_pending) + const filtered = this.selectedUsers.filter(user => this.isLocalUser(user) && !user.is_confirmed) const confirmAccountFn = async(users) => await this.$store.dispatch('ConfirmUsersEmail', { users }) applyAction(filtered, confirmAccountFn) }, resendConfirmation: () => { - const filtered = this.selectedUsers.filter(user => this.isLocalUser(user) && user.confirmation_pending) + const filtered = this.selectedUsers.filter(user => this.isLocalUser(user) && !user.is_confirmed) const resendConfirmationFn = async(users) => await this.$store.dispatch('ResendConfirmationEmail', users) applyAction(filtered, resendConfirmationFn) diff --git a/src/views/users/index.vue b/src/views/users/index.vue index 4baaed01890fb793f89608ed6d211c59fe963d41..d20161b481d933467973d2ccd897e31cd542ae80 100644 --- a/src/views/users/index.vue +++ b/src/views/users/index.vue @@ -77,7 +77,7 @@ <span>{{ isDesktop ? $t('users.moderator') : getFirstLetter($t('users.moderator')) }}</span> </el-tag> <el-tooltip :content="$t('users.unconfirmedEmail')" effect="dark"> - <el-tag v-if="scope.row.confirmation_pending" type="info"> + <el-tag v-if="!scope.row.is_confirmed" type="info"> {{ isDesktop ? $t('users.unconfirmed') : getFirstLetter($t('users.unconfirmed')) }} </el-tag> </el-tooltip>