public PermissionBuilder(ShroomsDbContext context) { _context = context; _roles = context.Roles.ToList(); _modules = context.Modules.ToList(); _currentPermissions = _context.Permissions.ToList(); _newPermissions = new List <Permission>(); _timestamp = DateTime.UtcNow; }
public static void Create(ShroomsDbContext ctx) { var allOrganizations = ctx.Organizations.ToList(); ctx.AddModule(Modules.Books, allOrganizations); ctx.AddModule(Modules.ServiceRequest, allOrganizations); ctx.AddModule(Modules.KudosBasket, allOrganizations); ctx.AddModule(Modules.Monitor, allOrganizations); ctx.AddModule(Modules.Vacation, allOrganizations); ctx.AddModule(Modules.Projects, allOrganizations); ctx.SaveChanges(false); }
private static void AddRolesIfNotExist(List <ApplicationRole> newRoles, ShroomsDbContext context) { var currentRoles = context.Roles.ToList(); foreach (var newRole in newRoles) { if (!currentRoles.Any(x => x.Name == newRole.Name && x.OrganizationId == newRole.OrganizationId)) { context.Roles.Add(newRole); } } context.SaveChanges(false); }
public static void CreateRoles(ShroomsDbContext context) { var timestamp = DateTime.UtcNow; var newRoles = new List <ApplicationRole> { new ApplicationRole { Name = Roles.Admin, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.Administration, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.EventsManagement, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.External, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.FirstLogin, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.Manager, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.NewUser, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.ServiceRequest, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.ServiceRequestNotification, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.User, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.KudosAdmin, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.LotteryAdmin, CreatedTime = timestamp }, new ApplicationRole { Name = Roles.Intern, CreatedTime = timestamp } }; var rolesWithOrg = GenerateRolesForEveryOrganization(newRoles, context); AddRolesIfNotExist(rolesWithOrg, context); }
private static void AddModule(this ShroomsDbContext ctx, string moduleName, ICollection <Organization> organizations) { if (!ctx.Modules.Any(x => x.Name == moduleName)) { var module = new Module { Created = DateTime.UtcNow, Modified = DateTime.UtcNow, Name = moduleName, Organizations = organizations }; ctx.Modules.Add(module); } }
internal static void CreatePermissions(ShroomsDbContext context) { var permissionBuilder = new PermissionBuilder(context); //basic permissions permissionBuilder .AddBasicPermission(permissionName: BasicPermissions.Map) .AddBasicPermission(permissionName: BasicPermissions.Wall) .AddBasicPermission(permissionName: BasicPermissions.Book, module: Modules.Books) .AddBasicPermission(permissionName: BasicPermissions.Post) .AddBasicPermission(permissionName: BasicPermissions.Like) .AddBasicPermission(permissionName: BasicPermissions.Kudos) .AddBasicPermission(permissionName: BasicPermissions.Comment) .AddBasicPermission(permissionName: BasicPermissions.Birthday) .AddBasicPermission(permissionName: BasicPermissions.Vacation, module: Modules.Vacation) .AddBasicPermission(permissionName: BasicPermissions.Support) .AddBasicPermission(permissionName: BasicPermissions.Committees) .AddBasicPermission(permissionName: BasicPermissions.KudosBasket, module: Modules.KudosBasket) .AddBasicPermission(permissionName: BasicPermissions.EmployeeList) .AddBasicPermission(permissionName: BasicPermissions.Localization) .AddBasicPermission(permissionName: BasicPermissions.Organization) .AddBasicPermission(permissionName: BasicPermissions.ExternalLink) .AddBasicPermission(permissionName: BasicPermissions.ServiceRequest, module: Modules.ServiceRequest) .AddBasicPermission(permissionName: BasicPermissions.OrganizationalStructure) .AddBasicPermission(permissionName: BasicPermissions.Exam, withRoleNames: Roles.NewUser) .AddBasicPermission(permissionName: BasicPermissions.Room, withRoleNames: Roles.NewUser) .AddBasicPermission(permissionName: BasicPermissions.Floor, withRoleNames: Roles.NewUser) .AddBasicPermission(permissionName: BasicPermissions.Skill, withRoleNames: Roles.NewUser) .AddBasicPermission(permissionName: BasicPermissions.Event, withRoleNames: Roles.External) .AddBasicPermission(permissionName: BasicPermissions.Office, withRoleNames: Roles.NewUser) .AddBasicPermission(permissionName: BasicPermissions.Picture, withRoleNames: Roles.NewUser) .AddBasicPermission(permissionName: BasicPermissions.Certificate, withRoleNames: Roles.NewUser) .AddBasicPermission(permissionName: BasicPermissions.ApplicationUser, withRoleNames: Roles.NewUser) .AddBasicPermission(permissionName: BasicPermissions.QualificationLevel, withRoleNames: Roles.NewUser) .AddBasicPermission(permissionName: BasicPermissions.Project, withRoleNames: Roles.NewUser, module: Modules.Projects); //admin permissions permissionBuilder .AddAdminPermission(permissionName: AdministrationPermissions.Wall, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Post, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Book, withRoleNames: Roles.Administration, module: Modules.Books) .AddAdminPermission(permissionName: AdministrationPermissions.Role, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Room, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Floor, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Kudos, withRoleNames: Roles.KudosAdmin) .AddAdminPermission(permissionName: AdministrationPermissions.KudosBasket, withRoleNames: Roles.KudosAdmin, module: Modules.KudosBasket) .AddAdminPermission(permissionName: AdministrationPermissions.Office, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Project, withRoleNames: Roles.Administration, module: Modules.Projects) .AddAdminPermission(permissionName: AdministrationPermissions.Account, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.RoomType, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Birthdays, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Certificate, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.ExternalLink, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Organization, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Administration, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.ApplicationUser, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.QualificationLevel, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Event, withRoleNames: new[] { Roles.Administration, Roles.EventsManagement }) .AddAdminPermission(permissionName: AdministrationPermissions.Vacation, withRoleNames: new[] { Roles.Accountant, Roles.Administration }, module: Modules.Vacation) .AddAdminPermission(permissionName: AdministrationPermissions.Committees, withRoleNames: new[] { Roles.Administration, Roles.KudosAdmin }) .AddAdminPermission(permissionName: AdministrationPermissions.ServiceRequest, withRoleNames: new[] { Roles.ServiceRequest, Roles.ServiceRequestNotification }, module: Modules.ServiceRequest) .AddAdminPermission(permissionName: AdministrationPermissions.Monitor, withRoleNames: new[] { Roles.Administration }, module: Modules.Monitor) .AddAdminPermission(permissionName: AdministrationPermissions.KudosShop, withRoleNames: Roles.Administration) .AddAdminPermission(permissionName: AdministrationPermissions.Job, withRoleNames: Roles.Administration); permissionBuilder.UpdatePermissions(); }
private static List <ApplicationRole> GenerateRolesForEveryOrganization(List <ApplicationRole> newRoles, ShroomsDbContext context) { var currentOrganizations = context.Organizations.ToList(); var rolesWithOrg = newRoles .SelectMany(x => currentOrganizations.Select(o => new ApplicationRole { Name = x.Name, CreatedTime = x.CreatedTime, OrganizationId = o.Id })) .ToList(); return(rolesWithOrg); }