merge: Add "is from local bubble instance" role condition (!1011)

View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1011

Approved-by: dakkar <dakkar@thenautilus.net>
Approved-by: Marie <github@yuugi.dev>
This commit is contained in:
Hazelnoot 2025-05-12 20:08:56 +00:00
commit 00cfeca3d7
5 changed files with 18 additions and 0 deletions

View file

@ -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;

View file

@ -56,6 +56,13 @@ type CondFormulaValueIsFromInstance = {
subdomains: boolean;
};
/**
* Is the user from a local bubble instance
*/
type CondFormulaValueFromBubbleInstance = {
type: 'fromBubbleInstance';
};
/**
*
*/
@ -234,6 +241,7 @@ export type RoleCondFormulaValue = { id: string } & (
CondFormulaValueIsLocal |
CondFormulaValueIsRemote |
CondFormulaValueIsFromInstance |
CondFormulaValueFromBubbleInstance |
CondFormulaValueIsSuspended |
CondFormulaValueIsLocked |
CondFormulaValueIsBot |

View file

@ -10,6 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<option value="isLocal">{{ i18n.ts._role._condition.isLocal }}</option>
<option value="isRemote">{{ i18n.ts._role._condition.isRemote }}</option>
<option value="isFromInstance">{{ i18n.ts._role._condition.isFromInstance }}</option>
<option value="fromBubbleInstance">{{ i18n.ts._role._condition.fromBubbleInstance }}</option>
<option value="isSuspended">{{ i18n.ts._role._condition.isSuspended }}</option>
<option value="isLocked">{{ i18n.ts._role._condition.isLocked }}</option>
<option value="isBot">{{ i18n.ts._role._condition.isBot }}</option>