diff options
Diffstat (limited to 'packages/backend/src')
| -rw-r--r-- | packages/backend/src/core/RoleService.ts | 4 | ||||
| -rw-r--r-- | packages/backend/src/models/Role.ts | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/packages/backend/src/core/RoleService.ts b/packages/backend/src/core/RoleService.ts index e87c459d5c..039932b76d 100644 --- a/packages/backend/src/core/RoleService.ts +++ b/packages/backend/src/core/RoleService.ts @@ -262,6 +262,10 @@ export class RoleService implements OnApplicationShutdown, OnModuleInit { return user.host.toLowerCase() === value.host.toLowerCase(); } } + // Is the user from a local bubble instance + case 'fromBubbleInstance': { + return user.host != null && this.meta.bubbleInstances.includes(user.host); + } // サスペンド済みユーザである case 'isSuspended': { return user.isSuspended; diff --git a/packages/backend/src/models/Role.ts b/packages/backend/src/models/Role.ts index 2caf3e0bd3..f6e3050830 100644 --- a/packages/backend/src/models/Role.ts +++ b/packages/backend/src/models/Role.ts @@ -57,6 +57,13 @@ type CondFormulaValueIsFromInstance = { }; /** + * Is the user from a local bubble instance + */ +type CondFormulaValueFromBubbleInstance = { + type: 'fromBubbleInstance'; +}; + +/** * 既に指定のマニュアルロールにアサインされている場合のみ成立とする */ type CondFormulaValueRoleAssignedTo = { @@ -234,6 +241,7 @@ export type RoleCondFormulaValue = { id: string } & ( CondFormulaValueIsLocal | CondFormulaValueIsRemote | CondFormulaValueIsFromInstance | + CondFormulaValueFromBubbleInstance | CondFormulaValueIsSuspended | CondFormulaValueIsLocked | CondFormulaValueIsBot | |