From ef3b0ec4b431088e5c7a28e6b04efd4295395c05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=BE=E3=81=A3=E3=81=A1=E3=82=83=E3=81=A8=E3=83=BC?= =?UTF-8?q?=E3=81=AB=E3=82=85?= <17376330+u1-liquid@users.noreply.github.com> Date: Wed, 27 Dec 2023 10:16:48 +0900 Subject: [PATCH 1/8] =?UTF-8?q?=E3=82=B5=E3=82=A6=E3=83=B3=E3=83=89?= =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=81=A7=E3=83=89=E3=83=A9=E3=82=A4=E3=83=96?= =?UTF-8?q?=E3=81=AE=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=92=E5=88=A9?= =?UTF-8?q?=E7=94=A8=E5=8F=AF=E5=90=A6=E3=82=92=E3=83=AD=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E3=81=A7=E5=88=B6=E5=BE=A1=E5=8F=AF=E8=83=BD=E3=81=AB(?= =?UTF-8?q?=E3=83=87=E3=83=95=E3=82=A9=E3=83=AB=E3=83=88=E3=81=A7=E3=82=AA?= =?UTF-8?q?=E3=83=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Author: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com> --- locales/index.d.ts | 1 + locales/ja-JP.yml | 1 + packages/backend/src/core/RoleService.ts | 3 +++ .../backend/src/models/json-schema/role.ts | 1 + .../backend/src/models/json-schema/user.ts | 4 ++++ packages/frontend/src/const.ts | 1 + .../frontend/src/pages/admin/roles.editor.vue | 20 +++++++++++++++++++ packages/frontend/src/pages/admin/roles.vue | 10 +++++++++- packages/frontend/src/scripts/sound.ts | 5 +++-- .../misskey-js/src/autogen/apiClientJSDoc.ts | 3 +-- packages/misskey-js/src/autogen/endpoint.ts | 2 +- packages/misskey-js/src/autogen/entities.ts | 2 +- packages/misskey-js/src/autogen/models.ts | 2 +- packages/misskey-js/src/autogen/types.ts | 10 +++++++--- 14 files changed, 54 insertions(+), 11 deletions(-) diff --git a/locales/index.d.ts b/locales/index.d.ts index 60e88a219240..16ff6795a28e 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -1714,6 +1714,7 @@ export interface Locale { "canHideAds": string; "canSearchNotes": string; "canUseTranslator": string; + "canUseDriveFileInSoundSettings": string; "avatarDecorationLimit": string; }; "_condition": { diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 3d31dcef4954..d62b7adc12e0 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1623,6 +1623,7 @@ _role: canHideAds: "広告の非表示" canSearchNotes: "ノート検索の利用" canUseTranslator: "翻訳機能の利用" + canUseDriveFileInSoundSettings: "サウンド設定でドライブのファイルを利用" avatarDecorationLimit: "アイコンデコレーションの最大取付個数" _condition: isLocal: "ローカルユーザー" diff --git a/packages/backend/src/core/RoleService.ts b/packages/backend/src/core/RoleService.ts index d354faa7c2cd..33d37c50bcbc 100644 --- a/packages/backend/src/core/RoleService.ts +++ b/packages/backend/src/core/RoleService.ts @@ -43,6 +43,7 @@ export type RolePolicies = { canManageAvatarDecorations: boolean; canSearchNotes: boolean; canUseTranslator: boolean; + canUseDriveFileInSoundSettings: boolean; canHideAds: boolean; driveCapacityMb: number; alwaysMarkNsfw: boolean; @@ -70,6 +71,7 @@ export const DEFAULT_POLICIES: RolePolicies = { canManageAvatarDecorations: false, canSearchNotes: false, canUseTranslator: true, + canUseDriveFileInSoundSettings: false, canHideAds: false, driveCapacityMb: 100, alwaysMarkNsfw: false, @@ -331,6 +333,7 @@ export class RoleService implements OnApplicationShutdown, OnModuleInit { canManageAvatarDecorations: calc('canManageAvatarDecorations', vs => vs.some(v => v === true)), canSearchNotes: calc('canSearchNotes', vs => vs.some(v => v === true)), canUseTranslator: calc('canUseTranslator', vs => vs.some(v => v === true)), + canUseDriveFileInSoundSettings: calc('canUseDriveFileInSoundSettings', vs => vs.some(v => v === true)), canHideAds: calc('canHideAds', vs => vs.some(v => v === true)), driveCapacityMb: calc('driveCapacityMb', vs => Math.max(...vs)), alwaysMarkNsfw: calc('alwaysMarkNsfw', vs => vs.some(v => v === true)), diff --git a/packages/backend/src/models/json-schema/role.ts b/packages/backend/src/models/json-schema/role.ts index b0c6804bb8f5..b6be0eedffb3 100644 --- a/packages/backend/src/models/json-schema/role.ts +++ b/packages/backend/src/models/json-schema/role.ts @@ -144,6 +144,7 @@ export const packedRoleSchema = { canManageCustomEmojis: rolePolicyValue, userEachUserListsLimit: rolePolicyValue, canManageAvatarDecorations: rolePolicyValue, + canUseDriveFileInSoundSettings: rolePolicyValue, canUseTranslator: rolePolicyValue, avatarDecorationLimit: rolePolicyValue, }, diff --git a/packages/backend/src/models/json-schema/user.ts b/packages/backend/src/models/json-schema/user.ts index 6a0d43b1ac10..313f6e06febb 100644 --- a/packages/backend/src/models/json-schema/user.ts +++ b/packages/backend/src/models/json-schema/user.ts @@ -635,6 +635,10 @@ export const packedMeDetailedOnlySchema = { type: 'boolean', nullable: false, optional: false, }, + canUseDriveFileInSoundSettings: { + type: 'boolean', + nullable: false, optional: false, + }, canHideAds: { type: 'boolean', nullable: false, optional: false, diff --git a/packages/frontend/src/const.ts b/packages/frontend/src/const.ts index 01c224ae2d8c..20ae78e63c00 100644 --- a/packages/frontend/src/const.ts +++ b/packages/frontend/src/const.ts @@ -83,6 +83,7 @@ export const ROLE_POLICIES = [ 'canManageAvatarDecorations', 'canSearchNotes', 'canUseTranslator', + 'canUseDriveFileInSoundSettings', 'canHideAds', 'driveCapacityMb', 'alwaysMarkNsfw', diff --git a/packages/frontend/src/pages/admin/roles.editor.vue b/packages/frontend/src/pages/admin/roles.editor.vue index 5ded8d6931ce..22a9957f6592 100644 --- a/packages/frontend/src/pages/admin/roles.editor.vue +++ b/packages/frontend/src/pages/admin/roles.editor.vue @@ -319,6 +319,26 @@ SPDX-License-Identifier: AGPL-3.0-only + + + +
+ + + + + + + + + +
+
+