mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-24 05:05:20 -04:00
(fix) congruent roles for /admin/translations/awaiting
only translations can accept, reject or unapprove only code can marke translation proposals as done
This commit is contained in:
parent
52f305cbf5
commit
8257173dbe
@ -209,15 +209,36 @@
|
||||
]"
|
||||
/>
|
||||
<AdminDashboardCard
|
||||
v-if="$isGranted('translations', locale) && (stats[locale].translations.missing > 0 || stats[locale].translations.awaitingApproval > 0 || stats[locale].translations.awaitingMerge > 0)"
|
||||
v-if="$isGranted('translations', locale) && (stats[locale].translations.missing > 0 || stats[locale].translations.awaitingApproval > 0) || $isGranted('code') && stats[locale].translations.awaitingMerge > 0"
|
||||
v-show="!filterAttention || stats[locale].translations.missing || stats[locale].translations.awaitingApproval || stats[locale].translations.awaitingMerge"
|
||||
:base-url="url"
|
||||
icon="language"
|
||||
header="Translations"
|
||||
:counts="[
|
||||
{ name: 'missing', link: '/admin/translations/missing', count: stats[locale].translations.missing, warning: 1, danger: 16 },
|
||||
{ name: 'proposed', link: '/admin/translations/awaiting', count: stats[locale].translations.awaitingApproval, warning: 1, danger: 16 },
|
||||
{ name: 'not merged', link: '/admin/translations/awaiting', count: stats[locale].translations.awaitingMerge, warning: 1, danger: 16, enabled: $isGranted('code') },
|
||||
{
|
||||
name: 'missing',
|
||||
link: '/admin/translations/missing',
|
||||
count: stats[locale].translations.missing,
|
||||
warning: 1,
|
||||
danger: 16,
|
||||
enabled: $isGranted('translations'),
|
||||
},
|
||||
{
|
||||
name: 'proposed',
|
||||
link: '/admin/translations/awaiting',
|
||||
count: stats[locale].translations.awaitingApproval,
|
||||
warning: 1,
|
||||
danger: 16,
|
||||
enabled: $isGranted('translations'),
|
||||
},
|
||||
{
|
||||
name: 'not merged',
|
||||
link: '/admin/translations/awaiting',
|
||||
count: stats[locale].translations.awaitingMerge,
|
||||
warning: 1,
|
||||
danger: 16,
|
||||
enabled: $isGranted('code'),
|
||||
},
|
||||
]"
|
||||
/>
|
||||
</div>
|
||||
|
@ -38,16 +38,28 @@
|
||||
<br>
|
||||
<template v-if="tp.status === 0">
|
||||
<span class="badge bg-warning text-white">Awaiting approval</span>
|
||||
<button class="btn btn-sm btn-outline-success" @click="acceptTranslationProposal(tp.id)">
|
||||
<button
|
||||
v-if="$isGranted('translations')"
|
||||
class="btn btn-sm btn-outline-success"
|
||||
@click="acceptTranslationProposal(tp.id)"
|
||||
>
|
||||
Accept
|
||||
</button>
|
||||
<button class="btn btn-sm btn-outline-danger" @click="rejectTranslationProposal(tp.id)">
|
||||
<button
|
||||
v-if="$isGranted('translations')"
|
||||
class="btn btn-sm btn-outline-danger"
|
||||
@click="rejectTranslationProposal(tp.id)"
|
||||
>
|
||||
Reject
|
||||
</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<span class="badge bg-success text-white">Approved</span>
|
||||
<button class="btn btn-sm btn-outline-danger" @click="unapproveTranslationProposal(tp.id)">
|
||||
<button
|
||||
v-if="$isGranted('translations')"
|
||||
class="btn btn-sm btn-outline-danger"
|
||||
@click="unapproveTranslationProposal(tp.id)"
|
||||
>
|
||||
Unapprove
|
||||
</button>
|
||||
</template>
|
||||
|
@ -116,7 +116,7 @@ router.post('/translations/unapprove-proposal', handleErrorAsync(async (req, res
|
||||
|
||||
|
||||
router.post('/translations/proposals-done', handleErrorAsync(async (req, res) => {
|
||||
if (!req.isGranted('translations')) {
|
||||
if (!req.isGranted('code')) {
|
||||
return res.status(401).json({ error: 'Unauthorised' });
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user