Esempio n. 1
0
 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;
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
        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);
        }