summaryrefslogtreecommitdiff
path: root/packages/frontend/src/pages/admin/roles.edit.vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/pages/admin/roles.edit.vue')
-rw-r--r--packages/frontend/src/pages/admin/roles.edit.vue15
1 files changed, 11 insertions, 4 deletions
diff --git a/packages/frontend/src/pages/admin/roles.edit.vue b/packages/frontend/src/pages/admin/roles.edit.vue
index b24b640527..e806f68162 100644
--- a/packages/frontend/src/pages/admin/roles.edit.vue
+++ b/packages/frontend/src/pages/admin/roles.edit.vue
@@ -21,8 +21,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, ref } from 'vue';
import * as Misskey from 'misskey-js';
-import { genId } from '@/utility/id.js';
import XEditor from './roles.editor.vue';
+import { genId } from '@/utility/id.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
@@ -37,8 +37,13 @@ const props = defineProps<{
id?: string;
}>();
+type RoleLike = Pick<Misskey.entities.Role, 'name' | 'description' | 'isAdministrator' | 'isModerator' | 'color' | 'iconUrl' | 'target' | 'isPublic' | 'isExplorable' | 'asBadge' | 'canEditMembersByModerator' | 'displayOrder' | 'preserveAssignmentOnMoveAccount'> & {
+ condFormula: any;
+ policies: any;
+};
+
const role = ref<Misskey.entities.Role | null>(null);
-const data = ref<any>(null);
+const data = ref<RoleLike | null>(null);
if (props.id) {
role.value = await misskeyApi('admin/roles/show', {
@@ -61,11 +66,13 @@ if (props.id) {
asBadge: false,
canEditMembersByModerator: false,
displayOrder: 0,
+ preserveAssignmentOnMoveAccount: false,
policies: {},
};
}
async function save() {
+ if (data.value === null) return;
rolesCache.delete();
if (role.value) {
os.apiWithDialog('admin/roles/update', {
@@ -75,7 +82,7 @@ async function save() {
router.push('/admin/roles/:id', {
params: {
id: role.value.id,
- }
+ },
});
} else {
const created = await os.apiWithDialog('admin/roles/create', {
@@ -84,7 +91,7 @@ async function save() {
router.push('/admin/roles/:id', {
params: {
id: created.id,
- }
+ },
});
}
}