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 Structure Create(string name, string description, bool @public, string administrator) { var structure = new Structure { Name = name, Description = description, Public = @public, Developing = true, CreatedOn = DateTime.Now }; structure.Administrators.Add(_dbManager.User.Get(administrator)); _dbManager.DbContext.Structures.Add(structure); _dbManager.DbContext.SaveChanges(); return structure; }
public ActionResult Create(Structure structure) { try { structure.Developing = true; structure.Public = true; structure.Administrators.Add(_context.Users.Find(User.Identity.Name)); structure.CreatedOn = DateTime.Now; _context.Structures.Add(structure); _context.SaveChanges(); return RedirectToAction("Design", new {id = structure.Id}); } catch { return View(); } }
public ActionResult Create() { var structure = new Structure(); return View(structure); }
private void SetCurrentAndParentRoleTypes( IAuthorization authorization, Structure structure, Container rootContainer, string rootName, string service, IEnumerable<Role> roles ) { Container current = rootContainer; do { foreach (var role in roles) if (ContainsRoleType(structure, current, role.RoleType)) { var permissions = role.Rule.Permissions.Where( (sp) => sp.ServiceName == service ).Select( (sp) => sp.Name ); authorization.AddGroupPermission( rootName, authorization.GetGroupName(structure.Id, current.Id, role.RoleTypeName), permissions ); } current = current.ParentContainer; } while (current != null); }
private void SetChildsRoleTypes( IAuthorization authorization, Structure structure, Container rootContainer, string rootName, string service, IEnumerable<Role> roles ) { if (rootContainer.Childs == null) return; foreach (var child in rootContainer.Childs) { SetChildsRoleTypes(authorization, structure, child, service, rootName, roles); foreach (var role in roles) if (ContainsRoleType(structure, child, role.RoleType)) { var permissions = role.Rule.Permissions.Where( (sp) => sp.ServiceName == service ).Select( (sp) => sp.Name ); authorization.AddGroupPermission( rootName, authorization.GetGroupName(structure.Id, child.Id, role.RoleTypeName), permissions ); } } }