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();
        }
Example #2
0
        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;
 }
Example #7
0
 public DefaultEditionCreator(KSDbContext context)
 {
     _context = context;
 }
Example #8
0
 public DefaultTenantBuilder(KSDbContext context)
 {
     _context = context;
 }
Example #9
0
 public DefaultSettingsCreator(KSDbContext context)
 {
     _context = context;
 }
 public PodDbManager(KSDbContext dbContext)
 {
     KsDbContext = dbContext;
 }