private void CreateEditions() { var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName); if (defaultEdition == null) { defaultEdition = new Edition { Name = EditionManager.DefaultEditionName, DisplayName = EditionManager.DefaultEditionName }; _context.Editions.Add(defaultEdition); _context.SaveChanges(); /* Add desired features to the standard edition, if wanted... */ } }
public void Create() { new DefaultEditionCreator(_context).Create(); new DefaultLanguagesCreator(_context).Create(); new HostRoleAndUserCreator(_context).Create(); new DefaultSettingsCreator(_context).Create(); _context.SaveChanges(); }
private void AddSettingIfNotExists(string name, string value, int?tenantId = null) { if (_context.Settings.IgnoreQueryFilters().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.IgnoreQueryFilters().Any(l => l.TenantId == language.TenantId && l.Name == language.Name)) { return; } _context.Languages.Add(language); _context.SaveChanges(); }
private void CreateDefaultTenant() { // Default tenant var defaultTenant = _context.Tenants.IgnoreQueryFilters().FirstOrDefault(t => t.TenancyName == AbpTenantBase.DefaultTenantName); if (defaultTenant == null) { defaultTenant = new Tenant(AbpTenantBase.DefaultTenantName, AbpTenantBase.DefaultTenantName); var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName); if (defaultEdition != null) { defaultTenant.EditionId = defaultEdition.Id; } _context.Tenants.Add(defaultTenant); _context.SaveChanges(); } }
private void CreateRolesAndUsers() { // 初始化组织 var adminOrgForHost = _context.Orgs.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Code == "Root"); if (adminOrgForHost == null) { adminOrgForHost = _context.Orgs.Add(new Entities.Org() { Code = "Root", Name = _context.Tenants.FirstOrDefault(t => t.Id == _tenantId).Name, TenantId = _tenantId, IsActive = true }).Entity; _context.SaveChanges(); } // Admin role var adminRole = _context.Roles.IgnoreQueryFilters().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, OrgId = adminOrgForHost.Id }).Entity; _context.SaveChanges(); } // Grant all permissions to admin role var grantedPermissions = _context.Permissions.IgnoreQueryFilters() .OfType <RolePermissionSetting>() .Where(p => p.TenantId == _tenantId && p.RoleId == adminRole.Id) .Select(p => p.Name) .ToList(); var permissions = PermissionFinder .GetAllPermissions(new WMSCloudAuthorizationProvider()) .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Tenant) && !grantedPermissions.Contains(p.Name)) .ToList(); if (permissions.Any()) { _context.Permissions.AddRange( permissions.Select(permission => new RolePermissionSetting { TenantId = _tenantId, Name = permission.Name, IsGranted = true, RoleId = adminRole.Id }) ); _context.SaveChanges(); } // Admin user var adminUser = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == _tenantId && u.UserName == AbpUserBase.AdminUserName); if (adminUser == null) { adminUser = User.CreateTenantAdminUser(_tenantId, "*****@*****.**"); adminUser.Password = new PasswordHasher <User>(new OptionsWrapper <PasswordHasherOptions>(new PasswordHasherOptions())).HashPassword(adminUser, "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(); // User account of admin user if (_tenantId == 1) { _context.UserAccounts.Add(new UserAccount { TenantId = _tenantId, UserId = adminUser.Id, UserName = AbpUserBase.AdminUserName, EmailAddress = adminUser.EmailAddress }); _context.SaveChanges(); } } // 初始化菜单 var adminMenuForHost = _context.Menus.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId); if (adminMenuForHost == null) { adminMenuForHost = _context.Menus.Add(new Menu() { Text = "主菜单", Group = true, I18n = "主菜单", TenantId = _tenantId, Acl = PermissionNames.Pages_MainMenu, IsActive = true, CreatorUserId = adminUser.Id }).Entity; adminMenuForHost = _context.Menus.Add(new Menu() { Text = "系统维护", I18n = "系统维护", Icon = "icon-settings", ParentId = adminMenuForHost.Id, TenantId = _tenantId, Acl = PermissionNames.Pages_Sys, IsActive = true, CreatorUserId = adminUser.Id }).Entity; _context.Menus.Add(new Menu() { Text = "用户管理", I18n = "用户管理", Acl = PermissionNames.Pages_Users, TenantId = _tenantId, Link = "/sys/user", ParentId = adminMenuForHost.Id, IsActive = true, CreatorUserId = adminUser.Id }); _context.Menus.Add(new Menu() { Text = "组织管理", I18n = "组织管理", Acl = PermissionNames.Pages_Orgs, TenantId = _tenantId, Link = "/sys/org", ParentId = adminMenuForHost.Id, IsActive = true, CreatorUserId = adminUser.Id }); _context.Menus.Add(new Menu() { Text = "菜单管理", I18n = "菜单管理", Acl = PermissionNames.Pages_Menus, TenantId = _tenantId, Link = "/sys/menu", ParentId = adminMenuForHost.Id, IsActive = true, CreatorUserId = adminUser.Id }); _context.Menus.Add(new Menu() { Text = "角色管理", I18n = "角色管理", Acl = PermissionNames.Pages_Orgs, TenantId = _tenantId, Link = "/sys/role", ParentId = adminMenuForHost.Id, IsActive = true, CreatorUserId = adminUser.Id }); _context.SaveChanges(); } }
private void CreateHostRoleAndUsers() { // 初始化组织 var adminOrgForHost = _context.Orgs.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null && r.Code == StaticRoleNames.Host.Org); if (adminOrgForHost == null) { adminOrgForHost = _context.Orgs.Add(new Entities.Org() { Code = StaticRoleNames.Host.Org, IsActive = true }).Entity; _context.SaveChanges(); } // Admin role for host var adminRoleForHost = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Admin); if (adminRoleForHost == null) { adminRoleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.Admin, StaticRoleNames.Host.Admin) { IsStatic = true, IsDefault = true, OrgId = adminOrgForHost.Id }).Entity; _context.SaveChanges(); } // Grant all permissions to admin role for host var grantedPermissions = _context.Permissions.IgnoreQueryFilters() .OfType <RolePermissionSetting>() .Where(p => p.TenantId == null && p.RoleId == adminRoleForHost.Id) .Select(p => p.Name) .ToList(); var permissions = PermissionFinder .GetAllPermissions(new WMSCloudAuthorizationProvider()) .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Host) && !grantedPermissions.Contains(p.Name)) .ToList(); if (permissions.Any()) { _context.Permissions.AddRange( permissions.Select(permission => new RolePermissionSetting { TenantId = null, Name = permission.Name, IsGranted = true, RoleId = adminRoleForHost.Id }) ); _context.SaveChanges(); } // Admin user for host var adminUserForHost = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == null && u.UserName == AbpUserBase.AdminUserName); if (adminUserForHost == null) { var user = new User { TenantId = null, UserName = AbpUserBase.AdminUserName, Name = "admin", Surname = "admin", EmailAddress = "*****@*****.**", IsEmailConfirmed = true, IsActive = true }; user.Password = new PasswordHasher <User>(new OptionsWrapper <PasswordHasherOptions>(new PasswordHasherOptions())).HashPassword(user, "123qwe"); user.SetNormalizedNames(); adminUserForHost = _context.Users.Add(user).Entity; _context.SaveChanges(); // Assign Admin role to admin user _context.UserRoles.Add(new UserRole(null, adminUserForHost.Id, adminRoleForHost.Id)); _context.SaveChanges(); // User account of admin user _context.UserAccounts.Add(new UserAccount { TenantId = null, UserId = adminUserForHost.Id, UserName = AbpUserBase.AdminUserName, EmailAddress = adminUserForHost.EmailAddress }); _context.SaveChanges(); } // 初始化菜单 var adminMenuForHost = _context.Menus.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null); if (adminMenuForHost == null) { adminMenuForHost = _context.Menus.Add(new Menu() { Text = "主菜单", Group = true, I18n = "主菜单", IsActive = true, Acl = PermissionNames.Pages_MainMenu, CreatorUserId = adminUserForHost.Id }).Entity; adminMenuForHost = _context.Menus.Add(new Menu() { Text = "系统维护", I18n = "系统维护", Icon = "icon-settings", ParentId = adminMenuForHost.Id, Acl = PermissionNames.Pages_Sys, IsActive = true, CreatorUserId = adminUserForHost.Id }).Entity; _context.Menus.Add(new Menu() { Text = "用户管理", I18n = "用户管理", Acl = PermissionNames.Pages_Users, Link = "/sys/user", ParentId = adminMenuForHost.Id, IsActive = true, CreatorUserId = adminUserForHost.Id }); _context.Menus.Add(new Menu() { Text = "组织管理", I18n = "组织管理", Acl = PermissionNames.Pages_Orgs, Link = "/sys/org", ParentId = adminMenuForHost.Id, IsActive = true, CreatorUserId = adminUserForHost.Id }); _context.Menus.Add(new Menu() { Text = "菜单管理", I18n = "菜单管理", Acl = PermissionNames.Pages_Menus, Link = "/sys/menu", ParentId = adminMenuForHost.Id, IsActive = true, CreatorUserId = adminUserForHost.Id }); _context.Menus.Add(new Menu() { Text = "角色管理", I18n = "角色管理", Acl = PermissionNames.Pages_Roles, Link = "/sys/role", ParentId = adminMenuForHost.Id, IsActive = true, CreatorUserId = adminUserForHost.Id }); _context.Menus.Add(new Menu() { Text = "租户管理", I18n = "租户管理", Acl = PermissionNames.Pages_Tenants, Link = "/sys/tenant", ParentId = adminMenuForHost.Id, IsActive = true, CreatorUserId = adminUserForHost.Id }); _context.SaveChanges(); } }