private bool ContainsRoleType(Structure structure, Container container, RoleType roleType) { return _dbContext.Enrolls.Where( (cu) => cu.ContainerId == container.Id && cu.RoleType.Name == roleType.Name && cu.RoleTypeStructureId == structure.Id ).Count() != 0; }
public RoleType Create(long structureId, string name) { var rt = new RoleType {StructureId = structureId, Name = name}; _dbManager.DbContext.RoleTypes.Add(rt); _dbManager.DbContext.SaveChanges(); return rt; }
private bool PermissionToEnroll(Container container, RoleType roleType, RoleBarrier roleBarrier) { var barrier = (int) roleBarrier; return _db.DbContext.Roles.Where(r => r.ContainerTypeName == container.Type.Name && r.RoleTypeName == roleType.Name && r.Barrier != barrier ).Any(); }
private void InheritedEnrollParents(User user, Container container, RoleType roleType) { var current = container; while (current != null){ if (!PermissionToEnroll(current, roleType, RoleBarrier.Bottom)) return; EnrollInherited(user, current, roleType); current = current.Parent; } }
private void InheritedEnrollChilds(User user, Container container, RoleType roleType) { foreach (var child in container.Childs) { if (!PermissionToEnroll(child, roleType, RoleBarrier.Top)) continue; EnrollInherited(user, child, roleType); InheritedEnrollChilds(user, child, roleType); } }
private bool InheritedDisenroll(User user, Container container, RoleType roleType) { var enroll = _db.DbContext.Enrolls.Find(user.Name, container.Id, roleType.Name, container.Type.StructureId); if (enroll == null) return false; enroll.InheritedCount -= 1; if (enroll.InheritedCount == 0) if (enroll.Inherited) { _db.DbContext.Enrolls.Remove(enroll); InvokeOnDisenrollUser(enroll, container); } return true; }
private bool ExisteRole(Container container, RoleType roleType) { return _db.DbContext.Roles.Where(r => r.ContainerTypeName == container.Type.Name && r.RoleTypeName == roleType.Name ).Any(); }
private bool EnrollInherited(User user, Container container, RoleType roleType) { var enroll = _db.DbContext.Enrolls.Find(user.Name, container.Id, roleType.Name, container.Type.StructureId); if (enroll != null) { enroll.InheritedCount += 1; return true; } enroll = new Enroll() { User = user, Container = container, RoleType = roleType, Inherited = true, InheritedCount = 1 }; _db.DbContext.Enrolls.Add(enroll); InvokeOnEnrollUser(enroll); return true; }