public static Company AddTenantToDatabaseWithSaveChanges(string name, PaidForModules allowedPaidForModules,
                                                                 CompanyDbContext context)
        {
            var newTenant = new Company(name, allowedPaidForModules);

            TenantBase.AddTenantToDatabaseWithSaveChanges(newTenant, context);
            return(newTenant);
        }
예제 #2
0
 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;
 }
예제 #5
0
 /// <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;
 }
예제 #7
0
 /// <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;
        }