1
0
mirror of https://github.com/bitwarden/server synced 2025-12-23 03:33:35 +00:00

Add helpers to further type PlanTypes

This commit is contained in:
Matt Gibson
2021-10-29 18:24:14 -04:00
committed by Justin Baur
parent 019529a0c2
commit 5f4a6887fe
2 changed files with 61 additions and 0 deletions

View File

@@ -1,4 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Bit.Core.Models.Table;
namespace Bit.Core.Enums
{
@@ -29,4 +31,24 @@ namespace Bit.Core.Enums
[Display(Name = "Enterprise (Annually)")]
EnterpriseAnnually= 11,
}
public static class PlanTypeHelper
{
private static readonly PlanType[] _freePlans = new[] { PlanType.Free };
private static readonly PlanType[] _familiesPlans = new[] { PlanType.FamiliesAnnually, PlanType.FamiliesAnnually2019 };
private static readonly PlanType[] _teamsPlans = new[] { PlanType.TeamsAnnually, PlanType.TeamsAnnually2019,
PlanType.TeamsMonthly, PlanType.TeamsMonthly2019};
private static readonly PlanType[] _enterprisePlans = new[] { PlanType.EnterpriseAnnually,
PlanType.EnterpriseAnnually2019, PlanType.EnterpriseMonthly, PlanType.EnterpriseMonthly2019 };
private static bool HasPlan(PlanType[] planTypes, PlanType planType) => planTypes.Any(p => p == planType);
public static bool HasFreePlan(Organization org) => IsFree(org.PlanType);
public static bool IsFree(PlanType planType) => HasPlan(_freePlans, planType);
public static bool HasFamiliesPlan(Organization org) => IsFamilies(org.PlanType);
public static bool IsFamilies(PlanType planType) => HasPlan(_familiesPlans, planType);
public static bool HasTeamsPlan(Organization org) => IsTeams(org.PlanType);
public static bool IsTeams(PlanType planType) => HasPlan(_teamsPlans, planType);
public static bool HasEnterprisePlan(Organization org) => IsEnterprise(org.PlanType);
public static bool IsEnterprise(PlanType planType) => HasPlan(_enterprisePlans, planType);
}
}