Ejemplo n.º 1
0
        public bool IsInGroup(PermissionGroupEntity group, UserEntity user)
        {
            if (group == null)
            {
                return(false);
            }

            if (user == null)
            {
                return(false);
            }

            var roles = user.Roles.Where(r => r.IsEnabled);

            var isAuthorized = roles.Any(r => r.Groups.Any(pg => pg.IsEnabled && pg.InternalKey == group.InternalKey));

            return(isAuthorized);
        }
Ejemplo n.º 2
0
        public OperationResult AddRoleToGroup(PermissionGroupEntity group, RoleEntity role)
        {
            var result = EngineContext.Current.Resolve <OperationResult>();

            if (group == null)
            {
                return(result.AddError(Messages.Authorization_InvalidGroup));
            }

            if (role == null)
            {
                return(result.AddError(Messages.Authorization_InvalidRole));
            }

            if (@group.Roles.All(r => r != role))
            {
                group.Roles.Add(role);
                result += _groupService.Save(group, false);
            }

            return(result);
        }
Ejemplo n.º 3
0
 internal static PermissionGroupModel ToModel(this PermissionGroupEntity entity) => new PermissionGroupModel
 {
     Id          = entity.Id,
     Name        = entity.Name,
     Permissions = entity.Permissions.ToModel()
 };
Ejemplo n.º 4
0
        public bool IsInGroup(PermissionGroupEntity group)
        {
            var user = _workContext.CurrentUser;

            return(IsInGroup(group, user));
        }
Ejemplo n.º 5
0
        public OperationResult <PermissionEntity> Save(string name, Constant internalKey, PermissionGroupEntity group)
        {
            var result = EngineContext.Current.Resolve <OperationResult <PermissionEntity> >();

            var permission = Get(internalKey, true, false);

            if (permission == null)
            {
                permission = new PermissionEntity {
                    IsEnabled   = true,
                    InternalKey = internalKey
                };
            }

            permission.Name  = name;
            permission.Group = group;

            result += Save(permission, false);

            return(result.With(permission));
        }
Ejemplo n.º 6
0
        protected override void Seed(TestCase.DataAccess.Context.TestCaseDbContext context)
        {
            var adminRole = new RoleEntity()
            {
                Id = Guid.NewGuid(), Name = "Admin"
            };
            var userRole = new RoleEntity()
            {
                Id = Guid.NewGuid(), Name = "User"
            };

            context.Roles.AddOrUpdate(r => r.Name, adminRole, userRole);

            var admin = new UserEntity()
            {
                Id = Guid.NewGuid(), UserName = "******", Email = "*****@*****.**", PasswordHash = "123456", EmailConfirmed = true, SecurityStamp = Guid.NewGuid().ToString("D")
            };

            admin.Roles.Add(new UserRoleEntity()
            {
                RoleId = adminRole.Id, UserId = admin.Id
            });
            context.Users.AddOrUpdate(r => r.UserName, admin);

            var createPermission = new PermissionEntity()
            {
                Id = Guid.NewGuid(), Name = "Create", Abrv = "create", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            };
            var readPermission = new PermissionEntity()
            {
                Id = Guid.NewGuid(), Name = "Read", Abrv = "read", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            };
            var updatePermission = new PermissionEntity()
            {
                Id = Guid.NewGuid(), Name = "Update", Abrv = "update", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            };
            var deletePermission = new PermissionEntity()
            {
                Id = Guid.NewGuid(), Name = "Delete", Abrv = "delete", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            };
            var fullPermission = new PermissionEntity()
            {
                Id = Guid.NewGuid(), Name = "Full", Abrv = "full", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            };

            context.Permissions.AddOrUpdate(p => p.Abrv, createPermission, readPermission, updatePermission, deletePermission, fullPermission);

            var userPermissionGroup = new PermissionGroupEntity()
            {
                Id = Guid.NewGuid(), Name = "UserGroup", Abrv = "user-group", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            };
            var lockPermissionGroup = new PermissionGroupEntity()
            {
                Id = Guid.NewGuid(), Name = "LockGroup", Abrv = "lock-group", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            };
            var lockEventPermissionGroup = new PermissionGroupEntity()
            {
                Id = Guid.NewGuid(), Name = "LockEventGroup", Abrv = "lock-event-group", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            };

            context.PermissionGroups.AddOrUpdate(pg => pg.Abrv, userPermissionGroup, lockPermissionGroup, lockEventPermissionGroup);

            context.PermissionPolicies.AddOrUpdate(pp => new { pp.PermissionGroupId, pp.PermissionId },
                                                   new PermissionPolicyEntity()
            {
                Id = Guid.NewGuid(), RoleId = adminRole.Id, PermissionId = createPermission.Id, PermissionGroupId = lockPermissionGroup.Id, DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            },
                                                   new PermissionPolicyEntity()
            {
                Id = Guid.NewGuid(), RoleId = adminRole.Id, PermissionId = updatePermission.Id, PermissionGroupId = lockPermissionGroup.Id, DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            },
                                                   new PermissionPolicyEntity()
            {
                Id = Guid.NewGuid(), RoleId = adminRole.Id, PermissionId = readPermission.Id, PermissionGroupId = lockPermissionGroup.Id, DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            },
                                                   new PermissionPolicyEntity()
            {
                Id = Guid.NewGuid(), RoleId = adminRole.Id, PermissionId = deletePermission.Id, PermissionGroupId = lockPermissionGroup.Id, DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            },
                                                   new PermissionPolicyEntity()
            {
                Id = Guid.NewGuid(), RoleId = userRole.Id, PermissionId = createPermission.Id, PermissionGroupId = lockPermissionGroup.Id, DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            }
                                                   );

            context.LockEventTypes.AddOrUpdate(le => le.Abrv,
                                               new LockEventTypeEntity()
            {
                Id = Guid.NewGuid(), Name = "Unlocked", Abrv = "unlocked", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            },
                                               new LockEventTypeEntity()
            {
                Id = Guid.NewGuid(), Name = "Locked", Abrv = "locked", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            },
                                               new LockEventTypeEntity()
            {
                Id = Guid.NewGuid(), Name = "Access Granted", Abrv = "access-granted", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            },
                                               new LockEventTypeEntity()
            {
                Id = Guid.NewGuid(), Name = "Access Prohibited", Abrv = "access-prohibited", DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow
            }
                                               );
        }