mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 05:25:40 +09:00
fix(FlutterClientGate): allow iOS users to use Flutter via self-hosting (#1125)
This commit is contained in:
1 parent
560610e6f8
commit
68a89ec44c
1 file changed
+3
@@ -3,6 +3,7 @@
|
|||||||
import {ValidationErrorCodes} from '@fluxer/constants/src/ValidationErrorCodes';
|
import {ValidationErrorCodes} from '@fluxer/constants/src/ValidationErrorCodes';
|
||||||
import {InputValidationError} from '@fluxer/errors/src/domains/core/InputValidationError';
|
import {InputValidationError} from '@fluxer/errors/src/domains/core/InputValidationError';
|
||||||
import {createGuildID} from '../BrandedTypes';
|
import {createGuildID} from '../BrandedTypes';
|
||||||
|
import {Config} from '../Config';
|
||||||
import type {IGuildMemberRepository} from '../guild/repositories/IGuildMemberRepository';
|
import type {IGuildMemberRepository} from '../guild/repositories/IGuildMemberRepository';
|
||||||
import type {User} from '../models/User';
|
import type {User} from '../models/User';
|
||||||
import {accountPolicyContactHasCapability} from '../risk/AccountPolicyService';
|
import {accountPolicyContactHasCapability} from '../risk/AccountPolicyService';
|
||||||
@@ -20,6 +21,7 @@ export async function assertFlutterClientLoginAllowed(
|
|||||||
memberRepository: FlutterClientGateMemberRepository,
|
memberRepository: FlutterClientGateMemberRepository,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
if (!isFluxerFlutterClient(request)) return;
|
if (!isFluxerFlutterClient(request)) return;
|
||||||
|
if (Config.instance.selfHosted) return;
|
||||||
if (accountPolicyContactHasCapability(user.email, 'client_gate_exempt')) return;
|
if (accountPolicyContactHasCapability(user.email, 'client_gate_exempt')) return;
|
||||||
if (isFluxerFlutterAndroidClient(request) && isAndroidOpenAccessActive()) return;
|
if (isFluxerFlutterAndroidClient(request) && isAndroidOpenAccessActive()) return;
|
||||||
if (isFluxerFlutterIosClient(request) && checkHasActivePaidPremium(user)) return;
|
if (isFluxerFlutterIosClient(request) && checkHasActivePaidPremium(user)) return;
|
||||||
@@ -33,6 +35,7 @@ export async function assertFlutterClientLoginAllowed(
|
|||||||
|
|
||||||
export function assertFlutterClientRegistrationAllowed(request: Request, email: string | null | undefined): void {
|
export function assertFlutterClientRegistrationAllowed(request: Request, email: string | null | undefined): void {
|
||||||
if (!isFluxerFlutterClient(request)) return;
|
if (!isFluxerFlutterClient(request)) return;
|
||||||
|
if (Config.instance.selfHosted) return;
|
||||||
if (accountPolicyContactHasCapability(email, 'client_gate_exempt')) return;
|
if (accountPolicyContactHasCapability(email, 'client_gate_exempt')) return;
|
||||||
if (isFluxerFlutterAndroidClient(request) && isAndroidOpenAccessActive()) return;
|
if (isFluxerFlutterAndroidClient(request) && isAndroidOpenAccessActive()) return;
|
||||||
throw InputValidationError.fromCode('email', ValidationErrorCodes.INVALID_EMAIL_ADDRESS);
|
throw InputValidationError.fromCode('email', ValidationErrorCodes.INVALID_EMAIL_ADDRESS);
|
||||||
|
|||||||
Reference in new issue
Block a user