mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-03-03 13:36:47 +00:00
fix: allow plus plan to restore flames
This commit is contained in:
parent
f8242b003d
commit
09afd3dda0
3 changed files with 32 additions and 3 deletions
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
17
test/features/premium_features.dart
Normal file
17
test/features/premium_features.dart
Normal 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),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue