bulk actions and modal details, WIP
This commit is contained in:
parent
ec5dbe1792
commit
8a29bd5fdd
8 changed files with 188 additions and 141 deletions
|
|
@ -140,7 +140,7 @@ const AdminCard = {
|
||||||
fetchStatuses (store, opts) {
|
fetchStatuses (store, opts) {
|
||||||
const u = this.$store.getters.findUser(this.userDetails.id)
|
const u = this.$store.getters.findUser(this.userDetails.id)
|
||||||
const res = store.dispatch('adminListStatuses', { user: u, opts: { pageSize: opts.pageSize, godmode: true, withReblogs: true}})
|
const res = store.dispatch('adminListStatuses', { user: u, opts: { pageSize: opts.pageSize, godmode: true, withReblogs: true}})
|
||||||
return Promise.resolve(res.then(r => r.activities))
|
return res.then(r => r.activities)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -133,13 +133,47 @@
|
||||||
:fetch-page="(store, opts) => fetchStatuses(store, opts)"
|
:fetch-page="(store, opts) => fetchStatuses(store, opts)"
|
||||||
>
|
>
|
||||||
<template #header>
|
<template #header>
|
||||||
<button
|
<Popover
|
||||||
class="button button-default btn"
|
ref="dropdown"
|
||||||
type="button"
|
trigger="click"
|
||||||
@click="deleteSelection"
|
placement="bottom"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.delete') }}
|
<template #trigger>
|
||||||
</button>
|
<button
|
||||||
|
class="button button-default btn"
|
||||||
|
>
|
||||||
|
{{ $t('admin_dash.users.bulk_actions.title') }}
|
||||||
|
</button>
|
||||||
|
</template>
|
||||||
|
<template #content>
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<div class="menu-item dropdown-item">
|
||||||
|
<button
|
||||||
|
class="main-button"
|
||||||
|
@click="confirmSelection('confirmDelete')"
|
||||||
|
>
|
||||||
|
{{ $t('admin_dash.users.delete') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="menu-item dropdown-item">
|
||||||
|
<button
|
||||||
|
class="main-button"
|
||||||
|
@click="confirmSelection('confirmSetSensitive')"
|
||||||
|
>
|
||||||
|
{{ $t('admin_dash.users.set_sensitive') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="menu-item dropdown-item">
|
||||||
|
<button
|
||||||
|
class="main-button"
|
||||||
|
@click="confirmSelection('confirmUnsetSensitive')"
|
||||||
|
>
|
||||||
|
{{ $t('admin_dash.users.unset_sensitive') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</Popover>
|
||||||
</template>
|
</template>
|
||||||
<template #item="{item}">
|
<template #item="{item}">
|
||||||
<AdminStatusCard :status-details="item" />
|
<AdminStatusCard :status-details="item" />
|
||||||
|
|
@ -178,6 +212,55 @@
|
||||||
<pre> {{ JSON.stringify(user_details, null, 2) }} </pre>
|
<pre> {{ JSON.stringify(user_details, null, 2) }} </pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<GenericConfirm
|
||||||
|
ref="confirmDelete"
|
||||||
|
:title="$t('admin_dash.users.bulk_actions.activate')"
|
||||||
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
|
@callback="selectionConfirmed('adminDeleteStatus')"
|
||||||
|
/>
|
||||||
|
<GenericConfirm
|
||||||
|
ref="confirmSetSensitive"
|
||||||
|
:title="$t('admin_dash.users.bulk_actions.change_sensitivity')"
|
||||||
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
|
@callback="selectionConfirmed('adminChangeStatusScope', { sensitive: true })"
|
||||||
|
/>
|
||||||
|
<GenericConfirm
|
||||||
|
ref="confirmUnsetSensitive"
|
||||||
|
:title="$t('admin_dash.users.bulk_actions.unmark_as_sensitive')"
|
||||||
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
|
@callback="selectionConfirmed('adminChangeStatusScope', { sensitive: false })"
|
||||||
|
/>
|
||||||
|
<GenericConfirm
|
||||||
|
ref="confirmSetPublic"
|
||||||
|
:title="$t('admin_dash.users.bulk_actions.mark_as_public')"
|
||||||
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
|
@callback="selectionConfirmed('adminChangeStatusScope', { visiblity: 'public' })"
|
||||||
|
/>
|
||||||
|
<GenericConfirm
|
||||||
|
ref="confirmSetUnlisted"
|
||||||
|
:title="$t('admin_dash.users.bulk_actions.mark_as_unlisted')"
|
||||||
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
|
@callback="selectionConfirmed('adminChangeStatusScope', { visiblity: 'unlisted' })"
|
||||||
|
/>
|
||||||
|
<GenericConfirm
|
||||||
|
ref="confirmSetPrivate"
|
||||||
|
:title="$t('admin_dash.users.bulk_actions.mark_as_private')"
|
||||||
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
|
@callback="selectionConfirmed('adminChangeStatusScope', { visiblity: 'private' })"
|
||||||
|
/>
|
||||||
|
<GenericConfirm
|
||||||
|
ref="confirmSetDirect"
|
||||||
|
:title="$t('admin_dash.users.bulk_actions.mark_as_direct')"
|
||||||
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
|
@callback="selectionConfirmed('adminChangeStatusScope', { visiblity: 'direct' })"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,22 @@ const AdminStatusCard = {
|
||||||
},
|
},
|
||||||
changeVisibility (v) {
|
changeVisibility (v) {
|
||||||
this.$store.dispatch('adminChangeStatusScope', { opts: { id: this.statusDetails.id, visibility: v }}).then(res => parseStatus(res)).then(s => this.statusCache = s)
|
this.$store.dispatch('adminChangeStatusScope', { opts: { id: this.statusDetails.id, visibility: v }}).then(res => parseStatus(res)).then(s => this.statusCache = s)
|
||||||
|
},
|
||||||
|
// show popup
|
||||||
|
confirmSelection(box) {
|
||||||
|
this.$refs[box].show()
|
||||||
|
this.$refs.dropdown.hidePopover()
|
||||||
|
},
|
||||||
|
// do the thing
|
||||||
|
selectionConfirmed(action, opts) {
|
||||||
|
const restricted = []
|
||||||
|
const s = this.$refs.userList.getSelected()
|
||||||
|
s.forEach(u => {
|
||||||
|
if (restricted.includes(action) !== false || u.id !== this.$store.state.users.currentUser.id) {
|
||||||
|
this.$store.dispatch(action, { id: this.statusDetails.id, ...(opts || {}) })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.reset()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -86,123 +86,21 @@ const UsersTab = {
|
||||||
reset () {
|
reset () {
|
||||||
this.$refs.userList.reset()
|
this.$refs.userList.reset()
|
||||||
},
|
},
|
||||||
activateSelection () {
|
// show popup
|
||||||
this.$refs.confirmActivate.show()
|
confirmSelection(box) {
|
||||||
|
this.$refs[box].show()
|
||||||
this.$refs.dropdown.hidePopover()
|
this.$refs.dropdown.hidePopover()
|
||||||
},
|
},
|
||||||
activateSelectionConfirmed () {
|
// do the thing
|
||||||
const s = this.$refs.userList.getSelected()
|
selectionConfirmed(action) {
|
||||||
s.forEach(u => this.$store.dispatch('adminActivateUser', this.$store.getters.findUser(u.id)))
|
const restricted = []
|
||||||
this.reset()
|
|
||||||
},
|
|
||||||
deactivateSelection () {
|
|
||||||
this.$refs.confirmDeactivate.show()
|
|
||||||
this.$refs.dropdown.hidePopover()
|
|
||||||
},
|
|
||||||
deactivateSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
const s = this.$refs.userList.getSelected()
|
||||||
s.forEach(u => {
|
s.forEach(u => {
|
||||||
// avoid deactivating yourself
|
if (restricted.includes(action) !== false || u.id !== this.$store.state.users.currentUser.id) {
|
||||||
if (u.id !== this.$store.state.users.currentUser.id) {
|
this.$store.dispatch(action, this.$store.getters.findUser(u.id))
|
||||||
this.$store.dispatch('adminDeactivateUser', this.$store.getters.findUser(u.id))
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.reset()
|
this.reset()
|
||||||
},
|
|
||||||
deleteSelection () {
|
|
||||||
this.$refs.confirmDelete.show()
|
|
||||||
this.$refs.dropdown.hidePopover()
|
|
||||||
},
|
|
||||||
deleteSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
|
||||||
s.forEach(u => {
|
|
||||||
// avoid deleting yourself
|
|
||||||
if (u.id !== this.$store.state.users.currentUser.id) {
|
|
||||||
this.$store.dispatch('adminDeleteUser', this.$store.getters.findUser(u.id))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.reset()
|
|
||||||
},
|
|
||||||
grantAdminSelection () {
|
|
||||||
this.$refs.confirmGrantAdmin.show()
|
|
||||||
this.$refs.dropdown.hidePopover()
|
|
||||||
},
|
|
||||||
grantAdminSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
|
||||||
s.forEach(u => this.$store.dispatch('adminAddUserToAdminGroup', this.$store.getters.findUser(u.id)))
|
|
||||||
this.reset()
|
|
||||||
},
|
|
||||||
revokeAdminSelection () {
|
|
||||||
this.$refs.confirmRevokeAdminSelection.show()
|
|
||||||
this.$refs.dropdown.hidePopover()
|
|
||||||
},
|
|
||||||
revokeAdminSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
|
||||||
s.forEach(u => {
|
|
||||||
// avoid shooting yourself in the foot
|
|
||||||
if (u.id !== this.$store.state.users.currentUser.id) {
|
|
||||||
this.$store.dispatch('adminRemoveUserToAdminGroup', this.$store.getters.findUser(u.id))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.reset()
|
|
||||||
},
|
|
||||||
grantModeratorSelection () {
|
|
||||||
this.$refs.confirmGrantModeratorSelection.show()
|
|
||||||
this.$refs.dropdown.hidePopover()
|
|
||||||
},
|
|
||||||
grantModeratorSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
|
||||||
s.forEach(u => this.$store.dispatch('adminAddUserToModeratorGroup', this.$store.getters.findUser(u.id)))
|
|
||||||
this.reset()
|
|
||||||
},
|
|
||||||
revokeModeratorSelection () {
|
|
||||||
this.$refs.confirmRevokeModeratorSelection.show()
|
|
||||||
this.$refs.dropdown.hidePopover()
|
|
||||||
},
|
|
||||||
revokeModeratorSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
|
||||||
s.forEach(u => {
|
|
||||||
// you know the drill
|
|
||||||
if (u.id !== this.$store.state.users.currentUser.id) {
|
|
||||||
this.$store.dispatch('adminRemoveUserToModeratorGroup', this.$store.getters.findUser(u.id))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.reset()
|
|
||||||
},
|
|
||||||
approveSelection () {
|
|
||||||
this.$refs.confirmApproveSelection.show()
|
|
||||||
this.$refs.dropdown.hidePopover()
|
|
||||||
},
|
|
||||||
approveSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
|
||||||
s.forEach(u => this.$store.dispatch('adminApproveUser', this.$store.getters.findUser(u.id)))
|
|
||||||
this.reset()
|
|
||||||
},
|
|
||||||
confirmUserSelection () {
|
|
||||||
this.$refs.confirmSelection
|
|
||||||
},
|
|
||||||
confirmUserSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
|
||||||
s.forEach(u => this.$store.dispatch('adminConfirmUser', this.$store.getters.findUser(u.id)))
|
|
||||||
this.reset()
|
|
||||||
},
|
|
||||||
resendEmailSelection () {
|
|
||||||
this.$refs.resendEmailSelection.show()
|
|
||||||
this.$refs.dropdown.hidePopover()
|
|
||||||
},
|
|
||||||
resendEmailSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
|
||||||
s.forEach(u => this.$store.dispatch('adminResendConfirmationEmail', this.$store.getters.findUser(u.id)))
|
|
||||||
this.reset()
|
|
||||||
},
|
|
||||||
requirePasswordChangeSelection () {
|
|
||||||
this.$refs.requirePasswordChangeSelection.show()
|
|
||||||
this.$refs.dropdown.hidePopover()
|
|
||||||
},
|
|
||||||
requirePasswordChangeSelectionConfirmed () {
|
|
||||||
const s = this.$refs.userList.getSelected()
|
|
||||||
s.forEach(u => this.$store.dispatch('adminRequirePasswordChange', this.$store.getters.findUser(u.id)))
|
|
||||||
this.reset()
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,7 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="activateSelection"
|
@click="confirmSelection('confirmActivate')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.activate') }}
|
{{ $t('admin_dash.users.activate') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -144,7 +144,7 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="deactivateSelection"
|
@click="confirmSelection('confirmDeactivate')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.deactivate') }}
|
{{ $t('admin_dash.users.deactivate') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -152,7 +152,7 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="deleteSelection"
|
@click="confirmSelection('confirmDelete')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.delete') }}
|
{{ $t('admin_dash.users.delete') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -160,7 +160,7 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="grantAdminSelection"
|
@click="confirmSelection('confirmGrantAdmin')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.grant_admin') }}
|
{{ $t('admin_dash.users.grant_admin') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -168,7 +168,7 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="revokeAdminSelection"
|
@click="confirmSelection('confirmRevokeAdmin')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.revoke_admin') }}
|
{{ $t('admin_dash.users.revoke_admin') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -176,7 +176,7 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="grantModeratorSelection"
|
@click="confirmSelection('confirmGrantModerator')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.grant_moderator') }}
|
{{ $t('admin_dash.users.grant_moderator') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -184,7 +184,7 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="revokeModeratorSelection"
|
@click="confirmSelection('confirmRevokeModerator')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.revoke_moderator') }}
|
{{ $t('admin_dash.users.revoke_moderator') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -192,7 +192,7 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="approveSelection"
|
@click="confirmSelection('confirmApprove')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.approve') }}
|
{{ $t('admin_dash.users.approve') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -200,7 +200,7 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="confirmUserSelection"
|
@click="confirmSelection('confirmConfirm')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.confirm_user') }}
|
{{ $t('admin_dash.users.confirm_user') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -208,11 +208,27 @@
|
||||||
<div class="menu-item dropdown-item">
|
<div class="menu-item dropdown-item">
|
||||||
<button
|
<button
|
||||||
class="main-button"
|
class="main-button"
|
||||||
@click="requirePasswordChangeSelection"
|
@click="confirmSelection('confirmResendEmail')"
|
||||||
|
>
|
||||||
|
{{ $t('admin_dash.users.resend_confirmation_email') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="menu-item dropdown-item">
|
||||||
|
<button
|
||||||
|
class="main-button"
|
||||||
|
@click="confirmSelection('confirmRequirePasswordChange')"
|
||||||
>
|
>
|
||||||
{{ $t('admin_dash.users.require_password_change') }}
|
{{ $t('admin_dash.users.require_password_change') }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="menu-item dropdown-item">
|
||||||
|
<button
|
||||||
|
class="main-button"
|
||||||
|
@click="confirmSelection('adminDisableMFA')"
|
||||||
|
>
|
||||||
|
{{ $t('admin_dash.users.disable_mfa') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Popover>
|
</Popover>
|
||||||
|
|
@ -227,70 +243,84 @@
|
||||||
:title="$t('admin_dash.users.bulk_actions.activate')"
|
:title="$t('admin_dash.users.bulk_actions.activate')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="activateSelectedConfirmed"
|
@callback="selectionConfirmed('adminActivateUser')"
|
||||||
/>
|
/>
|
||||||
<GenericConfirm
|
<GenericConfirm
|
||||||
ref="confirmDeactivate"
|
ref="confirmDeactivate"
|
||||||
:title="$t('admin_dash.users.bulk_actions.deactivate')"
|
:title="$t('admin_dash.users.bulk_actions.deactivate')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="deactivateSelectionConfirmed"
|
@callback="selectionConfirmed('adminDeactivateUser')"
|
||||||
/>
|
/>
|
||||||
<GenericConfirm
|
<GenericConfirm
|
||||||
ref="confirmDelete"
|
ref="confirmDelete"
|
||||||
:title="$t('admin_dash.users.bulk_actions.delete')"
|
:title="$t('admin_dash.users.bulk_actions.delete')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="deleteSelectionConfirmed"
|
@callback="selectionConfirmed('adminDeleteUser')"
|
||||||
/>
|
/>
|
||||||
<GenericConfirm
|
<GenericConfirm
|
||||||
ref="confirmGrantAdmin"
|
ref="confirmGrantAdmin"
|
||||||
:title="$t('admin_dash.users.bulk_actions.grant_admin')"
|
:title="$t('admin_dash.users.bulk_actions.grant_admin')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="grantAdminSelectionConfirmed"
|
@callback="selectionConfirmed('adminAddUserToAdminGroup')"
|
||||||
/>
|
/>
|
||||||
<GenericConfirm
|
<GenericConfirm
|
||||||
ref="confirmRevokeAdmin"
|
ref="confirmRevokeAdmin"
|
||||||
:title="$t('admin_dash.users.bulk_actions.revoke_admin')"
|
:title="$t('admin_dash.users.bulk_actions.revoke_admin')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="revokeAdminSelectionConfirmed"
|
@callback="selectionConfirmed('adminRemoveUserFromAdminGroup')"
|
||||||
/>
|
/>
|
||||||
<GenericConfirm
|
<GenericConfirm
|
||||||
ref="confirmGrantModerator"
|
ref="confirmGrantModerator"
|
||||||
:title="$t('admin_dash.users.bulk_actions.grant_moderator')"
|
:title="$t('admin_dash.users.bulk_actions.grant_moderator')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="grantModeratorSelectionConfirmed"
|
@callback="selectionConfirmed('adminAddUserToModeratorGroup')"
|
||||||
/>
|
/>
|
||||||
<GenericConfirm
|
<GenericConfirm
|
||||||
ref="confirmRevokeModerator"
|
ref="confirmRevokeModerator"
|
||||||
:title="$t('admin_dash.users.bulk_actions.revoke_moderator')"
|
:title="$t('admin_dash.users.bulk_actions.revoke_moderator')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="revokeModeratorSelectionConfirmed"
|
@callback="selectionConfirmed('adminRemoveUserFromModeratorGroup')"
|
||||||
/>
|
/>
|
||||||
<GenericConfirm
|
<GenericConfirm
|
||||||
ref="confirmConfirmUser"
|
ref="confirmApprove"
|
||||||
:title="$t('admin_dash.users.bulk_actions.confirmUser')"
|
:title="$t('admin_dash.users.bulk_actions.approve')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="confirmUserSelectionConfirmed"
|
@callback="selectionConfirmed('adminApproveUser')"
|
||||||
|
/>
|
||||||
|
<GenericConfirm
|
||||||
|
ref="confirmConfirm"
|
||||||
|
:title="$t('admin_dash.users.bulk_actions.confirm')"
|
||||||
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
|
@callback="selectionConfirmed('adminConfirmUser')"
|
||||||
/>
|
/>
|
||||||
<GenericConfirm
|
<GenericConfirm
|
||||||
ref="confirmResendEmail"
|
ref="confirmResendEmail"
|
||||||
:title="$t('admin_dash.users.bulk_actions.resend_confirmation_email')"
|
:title="$t('admin_dash.users.bulk_actions.resend_confirmation_email')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="resendEmailSelectionConfirmed"
|
@callback="selectionConfirmed('adminResendConfirmationEmail')"
|
||||||
/>
|
/>
|
||||||
<GenericConfirm
|
<GenericConfirm
|
||||||
ref="confirmRequirePasswordChange"
|
ref="confirmRequirePasswordChange"
|
||||||
:title="$t('admin_dash.users.bulk_actions.require_password_change')"
|
:title="$t('admin_dash.users.bulk_actions.require_password_change')"
|
||||||
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
@callback="requirePasswordChangeSelectionConfirmed"
|
@callback="selectionConfirmed('adminRequirePasswordChange')"
|
||||||
|
/>
|
||||||
|
<GenericConfirm
|
||||||
|
ref="confirmDisableMFA"
|
||||||
|
:title="$t('admin_dash.users.bulk_actions.disable_mfa')"
|
||||||
|
:cancel-text="$t('admin_dash.users.bulk_actions.no')"
|
||||||
|
:confirm-text="$t('admin_dash.users.bulk_actions.yes')"
|
||||||
|
@callback="selectionConfirmed('adminDisableMFA')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1173,7 +1173,9 @@
|
||||||
"revoke_moderator": "Revoke Moderator Privileges From Selected Users?",
|
"revoke_moderator": "Revoke Moderator Privileges From Selected Users?",
|
||||||
"approve": "Approve Selected Users?",
|
"approve": "Approve Selected Users?",
|
||||||
"confirm": "Confirm Selected Users?",
|
"confirm": "Confirm Selected Users?",
|
||||||
"require_password_change": "Require Password Change For Selected Users?"
|
"require_password_change": "Require Password Change For Selected Users?",
|
||||||
|
"resend_confirmation_email": "Resend Confirmation Email For Selected Users?",
|
||||||
|
"disable_mfa": "Disable MFA For Selected Users?"
|
||||||
},
|
},
|
||||||
"activate": "Activate",
|
"activate": "Activate",
|
||||||
"deactivate": "Deactivate",
|
"deactivate": "Deactivate",
|
||||||
|
|
@ -1186,6 +1188,7 @@
|
||||||
"confirm_user": "Confirm",
|
"confirm_user": "Confirm",
|
||||||
"resend_confirmation_email": "Resend Confirmation Email",
|
"resend_confirmation_email": "Resend Confirmation Email",
|
||||||
"require_password_change": "Require Password Change",
|
"require_password_change": "Require Password Change",
|
||||||
|
"disable_mfa": "Disable MFA",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"loading_user": "Loading user...",
|
"loading_user": "Loading user...",
|
||||||
"delete_user": "Delete User",
|
"delete_user": "Delete User",
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,9 @@ const adminSettingsStorage = {
|
||||||
adminChangeStatusScope (store, { opts }) {
|
adminChangeStatusScope (store, { opts }) {
|
||||||
return store.rootState.api.backendInteractor.adminChangeStatusScope({ opts })
|
return store.rootState.api.backendInteractor.adminChangeStatusScope({ opts })
|
||||||
},
|
},
|
||||||
|
adminDisableMFA (store, { opts }) {
|
||||||
|
return store.rootState.api.backendInteractor.adminDisableMFA({ opts })
|
||||||
|
},
|
||||||
loadFrontendsStuff ({ rootState, commit }) {
|
loadFrontendsStuff ({ rootState, commit }) {
|
||||||
rootState.api.backendInteractor.fetchAvailableFrontends()
|
rootState.api.backendInteractor.fetchAvailableFrontends()
|
||||||
.then(frontends => commit('setAvailableFrontends', { frontends }))
|
.then(frontends => commit('setAvailableFrontends', { frontends }))
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,7 @@ const PLEROMA_ADMIN_APPROVE_URL = '/api/v1/pleroma/admin/users/approve'
|
||||||
const PLEROMA_ADMIN_LIST_STATUSES_URL = (id, pageSize, godmode, withReblogs) => `/api/v1/pleroma/admin/users/${id}/statuses?page_size=${pageSize}&godmode=${godmode}&with_reblogs=${withReblogs}`
|
const PLEROMA_ADMIN_LIST_STATUSES_URL = (id, pageSize, godmode, withReblogs) => `/api/v1/pleroma/admin/users/${id}/statuses?page_size=${pageSize}&godmode=${godmode}&with_reblogs=${withReblogs}`
|
||||||
const PLEROMA_ADMIN_CHANGE_STATUS_SCOPE_URL = (id) => `/api/v1/pleroma/admin/statuses/${id}`
|
const PLEROMA_ADMIN_CHANGE_STATUS_SCOPE_URL = (id) => `/api/v1/pleroma/admin/statuses/${id}`
|
||||||
const PLEROMA_ADMIN_REQUIRE_PASSWORD_CHANGE_URL = '/api/v1/pleroma/admin/users/force_password_reset'
|
const PLEROMA_ADMIN_REQUIRE_PASSWORD_CHANGE_URL = '/api/v1/pleroma/admin/users/force_password_reset'
|
||||||
|
const PLEROMA_ADMIN_DISABLE_MFA_URL = '/api/v1/pleroma/admin/users/disable_mfa'
|
||||||
const PLEROMA_EMOJI_RELOAD_URL = '/api/pleroma/admin/reload_emoji'
|
const PLEROMA_EMOJI_RELOAD_URL = '/api/pleroma/admin/reload_emoji'
|
||||||
const PLEROMA_EMOJI_IMPORT_FS_URL = '/api/pleroma/emoji/packs/import'
|
const PLEROMA_EMOJI_IMPORT_FS_URL = '/api/pleroma/emoji/packs/import'
|
||||||
const PLEROMA_EMOJI_PACKS_URL = (page, pageSize) => `/api/v1/pleroma/emoji/packs?page=${page}&page_size=${pageSize}`
|
const PLEROMA_EMOJI_PACKS_URL = (page, pageSize) => `/api/v1/pleroma/emoji/packs?page=${page}&page_size=${pageSize}`
|
||||||
|
|
@ -1600,6 +1601,18 @@ const adminRequirePasswordChange = ({ user: { screen_name: nickname }, credentia
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const adminDisableMFA = ({ user : { screen_name: nickname }, credentials }) => {
|
||||||
|
const url = PLEROMA_ADMIN_DISABLE_MFA_URL
|
||||||
|
return promisedRequest({
|
||||||
|
url,
|
||||||
|
credentials,
|
||||||
|
method: 'PUT',
|
||||||
|
payload: {
|
||||||
|
nickname
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const announcementToPayload = ({ content, startsAt, endsAt, allDay }) => {
|
const announcementToPayload = ({ content, startsAt, endsAt, allDay }) => {
|
||||||
const payload = { content }
|
const payload = { content }
|
||||||
|
|
||||||
|
|
@ -2282,7 +2295,8 @@ const apiService = {
|
||||||
adminApproveUser,
|
adminApproveUser,
|
||||||
adminListStatuses,
|
adminListStatuses,
|
||||||
adminChangeStatusScope,
|
adminChangeStatusScope,
|
||||||
adminRequirePasswordChange
|
adminRequirePasswordChange,
|
||||||
|
adminDisableMFA
|
||||||
}
|
}
|
||||||
|
|
||||||
export default apiService
|
export default apiService
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue