tweak 0491042d
This commit is contained in:
parent
0491042d95
commit
42cc15d7f8
|
@ -47,6 +47,7 @@
|
||||||
- 이벤트 기능 (misskey-dev/misskey#10628)
|
- 이벤트 기능 (misskey-dev/misskey#10628)
|
||||||
- Play에 API Token을 요청할 수 있는 기능 추가 (misskey-dev/misskey#10949)
|
- Play에 API Token을 요청할 수 있는 기능 추가 (misskey-dev/misskey#10949)
|
||||||
- 절대 시간 표기 (sakura-tel/milkey#69)
|
- 절대 시간 표기 (sakura-tel/milkey#69)
|
||||||
|
- 초대 코드 해지 기능 ([atsu1125/groundpolis@2da90e7](https://github.com/atsu1125/groundpolis/commit/2da90e7241d2f88390a7713e76a86f26e158248e))
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
- (Friendly) 일부 페이지를 제외하고 플로팅 버튼을 표시하지 않음
|
- (Friendly) 일부 페이지를 제외하고 플로팅 버튼을 표시하지 않음
|
||||||
|
|
2
locales/index.d.ts
vendored
2
locales/index.d.ts
vendored
|
@ -1118,6 +1118,8 @@ export interface Locale {
|
||||||
"doYouWantToAllowThisPlayToAccessYourAccount": string;
|
"doYouWantToAllowThisPlayToAccessYourAccount": string;
|
||||||
"translateProfile": string;
|
"translateProfile": string;
|
||||||
"enableAbsoluteTime": string;
|
"enableAbsoluteTime": string;
|
||||||
|
"inviteRevoke": string;
|
||||||
|
"inviteRevokeConfirm": string;
|
||||||
"_group": {
|
"_group": {
|
||||||
"leader": string;
|
"leader": string;
|
||||||
"banish": string;
|
"banish": string;
|
||||||
|
|
|
@ -1115,6 +1115,8 @@ thisFlashRequiresTheFollowingPermissions: "이 Play는 다음 권한을 요구
|
||||||
doYouWantToAllowThisPlayToAccessYourAccount: "이 Play가 계정에 접근하도록 허용할까요?"
|
doYouWantToAllowThisPlayToAccessYourAccount: "이 Play가 계정에 접근하도록 허용할까요?"
|
||||||
translateProfile: "프로필 번역하기"
|
translateProfile: "프로필 번역하기"
|
||||||
enableAbsoluteTime: "절대 시간 표기 사용"
|
enableAbsoluteTime: "절대 시간 표기 사용"
|
||||||
|
inviteRevoke: "모든 초대 코드 무효화"
|
||||||
|
inviteRevokeConfirm: "정말로 모든 초대 코드를 무효화 할까요?"
|
||||||
_group:
|
_group:
|
||||||
leader: "그룹 주인"
|
leader: "그룹 주인"
|
||||||
banish: "추방"
|
banish: "추방"
|
||||||
|
|
|
@ -39,6 +39,7 @@ import * as ep___admin_getIndexStats from './endpoints/admin/get-index-stats.js'
|
||||||
import * as ep___admin_getTableStats from './endpoints/admin/get-table-stats.js';
|
import * as ep___admin_getTableStats from './endpoints/admin/get-table-stats.js';
|
||||||
import * as ep___admin_getUserIps from './endpoints/admin/get-user-ips.js';
|
import * as ep___admin_getUserIps from './endpoints/admin/get-user-ips.js';
|
||||||
import * as ep___invite from './endpoints/invite.js';
|
import * as ep___invite from './endpoints/invite.js';
|
||||||
|
import * as ep___inviteRevoke from './endpoints/invite-revoke.js';
|
||||||
import * as ep___admin_promo_create from './endpoints/admin/promo/create.js';
|
import * as ep___admin_promo_create from './endpoints/admin/promo/create.js';
|
||||||
import * as ep___admin_queue_clear from './endpoints/admin/queue/clear.js';
|
import * as ep___admin_queue_clear from './endpoints/admin/queue/clear.js';
|
||||||
import * as ep___admin_queue_deliverDelayed from './endpoints/admin/queue/deliver-delayed.js';
|
import * as ep___admin_queue_deliverDelayed from './endpoints/admin/queue/deliver-delayed.js';
|
||||||
|
@ -402,6 +403,7 @@ const $admin_getIndexStats: Provider = { provide: 'ep:admin/get-index-stats', us
|
||||||
const $admin_getTableStats: Provider = { provide: 'ep:admin/get-table-stats', useClass: ep___admin_getTableStats.default };
|
const $admin_getTableStats: Provider = { provide: 'ep:admin/get-table-stats', useClass: ep___admin_getTableStats.default };
|
||||||
const $admin_getUserIps: Provider = { provide: 'ep:admin/get-user-ips', useClass: ep___admin_getUserIps.default };
|
const $admin_getUserIps: Provider = { provide: 'ep:admin/get-user-ips', useClass: ep___admin_getUserIps.default };
|
||||||
const $invite: Provider = { provide: 'ep:invite', useClass: ep___invite.default };
|
const $invite: Provider = { provide: 'ep:invite', useClass: ep___invite.default };
|
||||||
|
const $inviteRevoke: Provider = { provide: 'ep:invite-revoke', useClass: ep___inviteRevoke.default };
|
||||||
const $admin_promo_create: Provider = { provide: 'ep:admin/promo/create', useClass: ep___admin_promo_create.default };
|
const $admin_promo_create: Provider = { provide: 'ep:admin/promo/create', useClass: ep___admin_promo_create.default };
|
||||||
const $admin_queue_clear: Provider = { provide: 'ep:admin/queue/clear', useClass: ep___admin_queue_clear.default };
|
const $admin_queue_clear: Provider = { provide: 'ep:admin/queue/clear', useClass: ep___admin_queue_clear.default };
|
||||||
const $admin_queue_deliverDelayed: Provider = { provide: 'ep:admin/queue/deliver-delayed', useClass: ep___admin_queue_deliverDelayed.default };
|
const $admin_queue_deliverDelayed: Provider = { provide: 'ep:admin/queue/deliver-delayed', useClass: ep___admin_queue_deliverDelayed.default };
|
||||||
|
@ -769,6 +771,7 @@ const $retention: Provider = { provide: 'ep:retention', useClass: ep___retention
|
||||||
$admin_getTableStats,
|
$admin_getTableStats,
|
||||||
$admin_getUserIps,
|
$admin_getUserIps,
|
||||||
$invite,
|
$invite,
|
||||||
|
$inviteRevoke,
|
||||||
$admin_promo_create,
|
$admin_promo_create,
|
||||||
$admin_queue_clear,
|
$admin_queue_clear,
|
||||||
$admin_queue_deliverDelayed,
|
$admin_queue_deliverDelayed,
|
||||||
|
@ -1130,6 +1133,7 @@ const $retention: Provider = { provide: 'ep:retention', useClass: ep___retention
|
||||||
$admin_getTableStats,
|
$admin_getTableStats,
|
||||||
$admin_getUserIps,
|
$admin_getUserIps,
|
||||||
$invite,
|
$invite,
|
||||||
|
$inviteRevoke,
|
||||||
$admin_promo_create,
|
$admin_promo_create,
|
||||||
$admin_queue_clear,
|
$admin_queue_clear,
|
||||||
$admin_queue_deliverDelayed,
|
$admin_queue_deliverDelayed,
|
||||||
|
|
|
@ -39,6 +39,7 @@ import * as ep___admin_getIndexStats from './endpoints/admin/get-index-stats.js'
|
||||||
import * as ep___admin_getTableStats from './endpoints/admin/get-table-stats.js';
|
import * as ep___admin_getTableStats from './endpoints/admin/get-table-stats.js';
|
||||||
import * as ep___admin_getUserIps from './endpoints/admin/get-user-ips.js';
|
import * as ep___admin_getUserIps from './endpoints/admin/get-user-ips.js';
|
||||||
import * as ep___invite from './endpoints/invite.js';
|
import * as ep___invite from './endpoints/invite.js';
|
||||||
|
import * as ep___inviteRevoke from './endpoints/invite-revoke.js';
|
||||||
import * as ep___admin_promo_create from './endpoints/admin/promo/create.js';
|
import * as ep___admin_promo_create from './endpoints/admin/promo/create.js';
|
||||||
import * as ep___admin_queue_clear from './endpoints/admin/queue/clear.js';
|
import * as ep___admin_queue_clear from './endpoints/admin/queue/clear.js';
|
||||||
import * as ep___admin_queue_deliverDelayed from './endpoints/admin/queue/deliver-delayed.js';
|
import * as ep___admin_queue_deliverDelayed from './endpoints/admin/queue/deliver-delayed.js';
|
||||||
|
@ -400,6 +401,7 @@ const eps = [
|
||||||
['admin/get-table-stats', ep___admin_getTableStats],
|
['admin/get-table-stats', ep___admin_getTableStats],
|
||||||
['admin/get-user-ips', ep___admin_getUserIps],
|
['admin/get-user-ips', ep___admin_getUserIps],
|
||||||
['invite', ep___invite],
|
['invite', ep___invite],
|
||||||
|
['invite-revoke', ep___inviteRevoke],
|
||||||
['admin/promo/create', ep___admin_promo_create],
|
['admin/promo/create', ep___admin_promo_create],
|
||||||
['admin/queue/clear', ep___admin_queue_clear],
|
['admin/queue/clear', ep___admin_queue_clear],
|
||||||
['admin/queue/deliver-delayed', ep___admin_queue_deliverDelayed],
|
['admin/queue/deliver-delayed', ep___admin_queue_deliverDelayed],
|
||||||
|
|
31
packages/backend/src/server/api/endpoints/invite-revoke.ts
Normal file
31
packages/backend/src/server/api/endpoints/invite-revoke.ts
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
|
import { Endpoint } from '@/server/api/endpoint-base.js';
|
||||||
|
import type { RegistrationTicketsRepository } from '@/models/index.js';
|
||||||
|
import { DI } from '@/di-symbols.js';
|
||||||
|
|
||||||
|
export const meta = {
|
||||||
|
tags: ['admin'],
|
||||||
|
|
||||||
|
requireCredential: true,
|
||||||
|
requireRolePolicy: 'canInvite',
|
||||||
|
requireModerator: true,
|
||||||
|
} as const;
|
||||||
|
|
||||||
|
export const paramDef = {
|
||||||
|
type: 'object',
|
||||||
|
properties: {},
|
||||||
|
required: [],
|
||||||
|
} as const;
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||||
|
constructor(
|
||||||
|
@Inject(DI.registrationTicketsRepository)
|
||||||
|
private registrationTicketsRepository: RegistrationTicketsRepository,
|
||||||
|
) {
|
||||||
|
super(meta, paramDef, async () => {
|
||||||
|
await this.registrationTicketsRepository.delete({
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -82,6 +82,11 @@ const menuDef = $computed(() => [{
|
||||||
icon: 'ti ti-user-plus',
|
icon: 'ti ti-user-plus',
|
||||||
text: i18n.ts.invite,
|
text: i18n.ts.invite,
|
||||||
action: invite,
|
action: invite,
|
||||||
|
}, {
|
||||||
|
type: 'button',
|
||||||
|
icon: 'ti ti-user-cancel',
|
||||||
|
text: i18n.ts.inviteRevoke,
|
||||||
|
action: inviteRevoke,
|
||||||
}] : [])],
|
}] : [])],
|
||||||
}, {
|
}, {
|
||||||
title: i18n.ts.administration,
|
title: i18n.ts.administration,
|
||||||
|
@ -253,6 +258,16 @@ const invite = () => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const inviteRevoke = () => {
|
||||||
|
os.confirm({
|
||||||
|
type: 'warning',
|
||||||
|
text: i18n.ts.inviteRevokeConfirm,
|
||||||
|
}).then(({ canceled }) => {
|
||||||
|
if (canceled) return;
|
||||||
|
os.apiWithDialog('invite-revoke');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const lookup = (ev) => {
|
const lookup = (ev) => {
|
||||||
os.popupMenu([{
|
os.popupMenu([{
|
||||||
text: i18n.ts.user,
|
text: i18n.ts.user,
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
import define from '../../define';
|
|
||||||
import { RegistrationTickets } from '../../../../models';
|
|
||||||
|
|
||||||
export const meta = {
|
|
||||||
desc: {
|
|
||||||
'ja-JP': '招待コードを失効します。'
|
|
||||||
},
|
|
||||||
|
|
||||||
tags: ['admin'],
|
|
||||||
|
|
||||||
requireCredential: true as const,
|
|
||||||
requireModerator: true,
|
|
||||||
|
|
||||||
params: {}
|
|
||||||
};
|
|
||||||
|
|
||||||
export default define(meta, async () => {
|
|
||||||
await RegistrationTickets.delete({
|
|
||||||
});
|
|
||||||
});
|
|
Loading…
Reference in a new issue