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); }
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); }
internal static PermissionGroupModel ToModel(this PermissionGroupEntity entity) => new PermissionGroupModel { Id = entity.Id, Name = entity.Name, Permissions = entity.Permissions.ToModel() };
public bool IsInGroup(PermissionGroupEntity group) { var user = _workContext.CurrentUser; return(IsInGroup(group, user)); }
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)); }
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 } ); }