public static void SeedHostDb(KSDbContext context) { context.SuppressAutoSetTenantId = true; // Host seed new InitialHostDbBuilder(context).Create(); // Default tenant seed (in host database). new DefaultTenantBuilder(context).Create(); new TenantRoleAndUserBuilder(context, 1).Create(); }
public static void BuildUserRole(KSDbContext context, int tenantId) { // User role var userRole = context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == tenantId && r.Name == StaticRoleNames.Tenants.User); if (userRole == null) { userRole = context.Roles .Add(new Role(tenantId, StaticRoleNames.Tenants.User, StaticRoleNames.Tenants.User) { IsStatic = true, IsDefault = true }).Entity; context.SaveChanges(); } // Grant permissions to user role var grantedPermissions = context.Permissions.IgnoreQueryFilters() .OfType <RolePermissionSetting>() .Where(p => p.TenantId == tenantId && p.RoleId == userRole.Id) .Select(p => p.Name) .ToList(); var permissions = PermissionFinder .GetAllPermissions(new KSAuthorizationProvider()) .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Tenant) && !grantedPermissions.Contains(p.Name) && p.Name != PermissionNames.Pages_Tenants && p.Name != PermissionNames.Pages_Users && p.Name != PermissionNames.Pages_Roles) .ToList(); if (permissions.Any()) { context.Permissions.AddRange( permissions.Select(permission => new RolePermissionSetting { TenantId = tenantId, Name = permission.Name, IsGranted = true, RoleId = userRole.Id }) ); context.SaveChanges(); } }
public TenantRoleAndUserBuilder(KSDbContext context, int tenantId) { _context = context; _tenantId = tenantId; }
public InitialHostDbBuilder(KSDbContext context) { _context = context; }
public DefaultLanguagesCreator(KSDbContext context) { _context = context; }
public HostRoleAndUserCreator(KSDbContext context) { _context = context; }
public DefaultEditionCreator(KSDbContext context) { _context = context; }
public DefaultTenantBuilder(KSDbContext context) { _context = context; }
public DefaultSettingsCreator(KSDbContext context) { _context = context; }
public PodDbManager(KSDbContext dbContext) { KsDbContext = dbContext; }