private void CreateHostRoleAndUsers() { //Admin role for host var adminRoleForHost = _context.Roles.FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Admin); if (adminRoleForHost == null) { adminRoleForHost = _context.Roles.Add(new Role { Name = StaticRoleNames.Host.Admin, DisplayName = StaticRoleNames.Host.Admin, IsStatic = true }); _context.SaveChanges(); //Grant all tenant permissions var permissions = PermissionFinder .GetAllPermissions(new CourseSelectingAuthorizationProvider()) .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Host)) .ToList(); foreach (var permission in permissions) { if (!permission.IsGrantedByDefault) { _context.Permissions.Add( new RolePermissionSetting { Name = permission.Name, IsGranted = true, RoleId = adminRoleForHost.Id }); } } _context.SaveChanges(); } //Admin user for tenancy host var adminUserForHost = _context.Users.FirstOrDefault(u => u.TenantId == null && u.UserName == User.AdminUserName); if (adminUserForHost == null) { adminUserForHost = _context.Users.Add( new User { UserName = User.AdminUserName, Name = "System", Surname = "Administrator", EmailAddress = "*****@*****.**", IsEmailConfirmed = true, Password = new PasswordHasher().HashPassword(User.DefaultPassword) }); _context.SaveChanges(); _context.UserRoles.Add(new UserRole(null, adminUserForHost.Id, adminRoleForHost.Id)); _context.SaveChanges(); } }
private void CreateRolesAndUsers() { //Admin role var adminRole = _context.Roles.FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.Admin); if (adminRole == null) { adminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.Admin, StaticRoleNames.Tenants.Admin) { IsStatic = true }); _context.SaveChanges(); //Grant all permissions to admin role var permissions = PermissionFinder .GetAllPermissions(new CourseSelectingAuthorizationProvider()) .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Tenant)) .ToList(); foreach (var permission in permissions) { if (!permission.IsGrantedByDefault) { _context.Permissions.Add( new RolePermissionSetting { TenantId = _tenantId, Name = permission.Name, IsGranted = true, RoleId = adminRole.Id }); } } _context.SaveChanges(); } //admin user var adminUser = _context.Users.FirstOrDefault(u => u.TenantId == _tenantId && u.UserName == User.AdminUserName); if (adminUser == null) { adminUser = User.CreateTenantAdminUser(_tenantId, "*****@*****.**", "123qwe"); adminUser.IsEmailConfirmed = true; adminUser.IsActive = true; _context.Users.Add(adminUser); _context.SaveChanges(); //Assign Admin role to admin user _context.UserRoles.Add(new UserRole(_tenantId, adminUser.Id, adminRole.Id)); _context.SaveChanges(); } }
private void AddSettingIfNotExists(string name, string value, int?tenantId = null) { if (_context.Settings.Any(s => s.Name == name && s.TenantId == tenantId && s.UserId == null)) { return; } _context.Settings.Add(new Setting(tenantId, null, name, value)); _context.SaveChanges(); }
private void AddLanguageIfNotExists(ApplicationLanguage language) { if (_context.Languages.Any(l => l.TenantId == language.TenantId && l.Name == language.Name)) { return; } _context.Languages.Add(language); _context.SaveChanges(); }
private void CreateUserAndRoles() { //Default tenant var defaultTenant = _context.Tenants.FirstOrDefault(t => t.TenancyName == Tenant.DefaultTenantName); if (defaultTenant == null) { _context.Tenants.Add(new Tenant { TenancyName = Tenant.DefaultTenantName, Name = Tenant.DefaultTenantName }); _context.SaveChanges(); } }
private void CreateEditions() { var defaultEdition = _context.Editions.FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName); if (defaultEdition == null) { defaultEdition = new Edition { Name = EditionManager.DefaultEditionName, DisplayName = EditionManager.DefaultEditionName }; _context.Editions.Add(defaultEdition); _context.SaveChanges(); //TODO: Add desired features to the standard edition, if wanted! } }
private void CreateCourseSelectingRoleAndUsers() { //Manager role for host var managerRoleForHost = _context.Roles.FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.CourseSelecting.Manager); if (managerRoleForHost == null) { managerRoleForHost = _context.Roles.Add(new Role { Name = StaticRoleNames.CourseSelecting.Manager, DisplayName = StaticRoleNames.CourseSelecting.ManagerDisplay, IsStatic = true }); _context.SaveChanges(); _context.Permissions.Add(new RolePermissionSetting { TenantId = null, Name = PermissionNames.Pages, IsGranted = true, RoleId = managerRoleForHost.Id }); _context.Permissions.Add(new RolePermissionSetting { TenantId = null, Name = PermissionNames.Pages_Managers, IsGranted = true, RoleId = managerRoleForHost.Id }); _context.SaveChanges(); } //Manager user for tenancy host var managerUserForHost = _context.Users.FirstOrDefault(u => u.TenantId == null && u.UserName == User.ManagerLoginId); if (managerUserForHost == null) { managerUserForHost = _context.Users.Add( new User { UserName = User.ManagerLoginId, Name = User.ManagerName, Surname = User.ManagerName, EmailAddress = User.SystemEmail, IsEmailConfirmed = true, Password = new PasswordHasher().HashPassword(User.DefaultPassword) }); _context.SaveChanges(); _context.UserRoles.Add(new UserRole(null, managerUserForHost.Id, managerRoleForHost.Id)); _context.SaveChanges(); } //Teacher role for host var teacherRoleForHost = _context.Roles.FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.CourseSelecting.Teacher); if (teacherRoleForHost == null) { teacherRoleForHost = _context.Roles.Add(new Role { Name = StaticRoleNames.CourseSelecting.Teacher, DisplayName = StaticRoleNames.CourseSelecting.TeacherDisplay, IsStatic = true }); _context.SaveChanges(); _context.Permissions.Add(new RolePermissionSetting { TenantId = null, Name = PermissionNames.Pages, IsGranted = true, RoleId = teacherRoleForHost.Id }); _context.Permissions.Add(new RolePermissionSetting { TenantId = null, Name = PermissionNames.Pages_Teachers, IsGranted = true, RoleId = teacherRoleForHost.Id }); _context.SaveChanges(); } //Student role for host var studentRoleForHost = _context.Roles.FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.CourseSelecting.Student); if (studentRoleForHost == null) { studentRoleForHost = _context.Roles.Add(new Role { Name = StaticRoleNames.CourseSelecting.Student, DisplayName = StaticRoleNames.CourseSelecting.StudentDisplay, IsStatic = true }); _context.SaveChanges(); _context.Permissions.Add(new RolePermissionSetting { TenantId = null, Name = PermissionNames.Pages, IsGranted = true, RoleId = studentRoleForHost.Id }); _context.Permissions.Add(new RolePermissionSetting { TenantId = null, Name = PermissionNames.Pages_Students, IsGranted = true, RoleId = studentRoleForHost.Id }); _context.SaveChanges(); } }