public static Company AddTenantToDatabaseWithSaveChanges(string name, PaidForModules allowedPaidForModules, CompanyDbContext context) { var newTenant = new Company(name, allowedPaidForModules); TenantBase.AddTenantToDatabaseWithSaveChanges(newTenant, context); return(newTenant); }
private static IEnumerable <ModulesForUser> BuildModulesForUsers(this List <UserInfoJson> userInfo, IdentityUser[] users) { foreach (var userInfoJson in userInfo.Where(x => !string.IsNullOrEmpty(x.ModulesCommaDelimited))) { PaidForModules combinedModules = PaidForModules.None; foreach (var moduleName in userInfoJson.ModulesCommaDelimited.Split(',').Select(x => x.Trim())) { if (!Enum.TryParse(typeof(PaidForModules), moduleName, true, out var thisModule)) { throw new InvalidOperationException($"The module name {moduleName} in the {UserInfoJsonFilename} isn't a valid module name."); } combinedModules |= (PaidForModules)thisModule; } yield return(new ModulesForUser(userInfoJson.Email.GetUserIdWithGivenEmail(users), combinedModules)); } }
public static void SeedUserWithDefaultPermissions(this ExtraAuthorizeDbContext context, PaidForModules modules = PaidForModules.None, string userId = "userId") { var defaultPermissions = new List <Permissions> { Permissions.StockRead, Permissions.Feature1Access }; var roleStatus = RoleToPermissions.CreateRoleWithPermissions( "TestRole1", "TestRole1", defaultPermissions, context); roleStatus.IsValid.ShouldBeTrue(roleStatus.GetAllErrors()); context.Add(roleStatus.Result); var moduleUser = new ModulesForUser(userId, modules); context.Add(moduleUser); var userStatus = UserToRole.AddRoleToUser(userId, "TestRole1", context); userStatus.IsValid.ShouldBeTrue(roleStatus.GetAllErrors()); context.Add(userStatus.Result); context.SaveChanges(); }
public ModulesForUser(string moduleKey, PaidForModules allowedPaidForModules) { ModuleKey = moduleKey ?? throw new ArgumentNullException(nameof(moduleKey)); AllowedPaidForModules = allowedPaidForModules; }
/// <summary> /// This links modules to a user /// </summary> /// <param name="userId"></param> /// <param name="allowedPaidForModules"></param> public ModulesForUser(string userId, PaidForModules allowedPaidForModules) { UserId = userId ?? throw new ArgumentNullException(nameof(userId)); AllowedPaidForModules = allowedPaidForModules; }
public LinkedToModuleAttribute(PaidForModules paidForModule) { PaidForModule = paidForModule; }
/// <summary> /// This links modules to a user /// </summary> /// <param name="userId"></param> /// <param name="allowedPaidForModules"></param> public ModulesForUser(int userId, PaidForModules allowedPaidForModules) { UserId = userId; AllowedPaidForModules = allowedPaidForModules; }
} //Needed by EF Core private Company(string name, PaidForModules allowedPaidForModules) : base(name, null) { AllowedPaidForModules = allowedPaidForModules; }