fix: allow plus plan to restore flames

This commit is contained in:
otsmr 2026-02-20 22:52:36 +01:00
parent f8242b003d
commit 09afd3dda0
3 changed files with 32 additions and 3 deletions

View file

@ -10,8 +10,20 @@ enum SubscriptionPlan {
Plus, Plus,
} }
bool isAdditionalAccount(SubscriptionPlan plan) { enum PremiumFeatures { RestoreFlames }
return plan == SubscriptionPlan.Free || plan == SubscriptionPlan.Plus;
const Map<PremiumFeatures, List<SubscriptionPlan>> planPermissions = {
PremiumFeatures.RestoreFlames: [
SubscriptionPlan.Family,
SubscriptionPlan.Plus,
SubscriptionPlan.Tester,
SubscriptionPlan.Pro,
],
};
bool isUserAllowed(SubscriptionPlan plan, PremiumFeatures feature) {
final allowedPlans = planPermissions[feature] ?? [];
return allowedPlans.contains(plan);
} }
bool isPayingUser(SubscriptionPlan plan) { bool isPayingUser(SubscriptionPlan plan) {

View file

@ -46,7 +46,7 @@ class _MaxFlameListTitleState extends State<MaxFlameListTitle> {
} }
Future<void> _restoreFlames() async { Future<void> _restoreFlames() async {
if (!isPayingUser(getCurrentPlan())) { if (!isUserAllowed(getCurrentPlan(), PremiumFeatures.RestoreFlames)) {
await context.push(Routes.settingsSubscription); await context.push(Routes.settingsSubscription);
return; return;
} }

View file

@ -0,0 +1,17 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:twonly/src/services/subscription.service.dart';
void main() {
group('testing subscription permissions', () {
test('test if restore flames is allowed', () {
expect(
true,
isUserAllowed(SubscriptionPlan.Plus, PremiumFeatures.RestoreFlames),
);
expect(
false,
isUserAllowed(SubscriptionPlan.Free, PremiumFeatures.RestoreFlames),
);
});
});
}