public void AddRoleToGroup(int groupId, string roleName) { Group group = db.Groups.Find(groupId); IdentityRole irole = _db.Roles.FirstOrDefault(r => r.Name == roleName); ApplicationRole role = db.ApplicationRoles.First(r => r.Name == roleName); var newgroupRole = new ApplicationRoleGroup { GroupId = group.Id, Group = group, RoleId = role.Id, Role = role }; // make sure the groupRole is not already present //if (!group.Roles.Contains(newgroupRole)) if (!group.Roles.Any(x => x.GroupId == newgroupRole.GroupId && x.RoleId == role.Id)) { group.Roles.Add(newgroupRole); db.SaveChanges(); } // Add all of the users in this group to the new role: // IQueryable<ApplicationUser> groupUsers = _db.Users.Where(u => u.Groups.Any(g => g.GroupId == group.Id)); IQueryable <Employee> groupUsers = db.Employees.Where(u => u.Groups.Any(g => g.GroupId == group.Id)); foreach (Employee user in groupUsers) { if (!(_userManager.IsInRole(user.UserId, roleName))) { AddUserToRole(user.UserId, role.Name); } } }
public async Task RemoveRoleFromGroup(int groupId, string roleName) { var group = await _context.Groups.Include(x => x.Roles).Where(x => x.Id == groupId).FirstOrDefaultAsync(); var newgroupRole = new ApplicationRoleGroup(); ApplicationRole role = new ApplicationRole(); if (group != null) { role = await _context.Roles.FirstAsync(r => r.Name == roleName); newgroupRole.GroupId = group.Id; newgroupRole.Group = group; newgroupRole.RoleId = role.Id; newgroupRole.Role = role; } if (group.Roles.Where(x => x.RoleId == role.Id && x.GroupId == groupId).FirstOrDefault() == null) { group.Roles.Remove(newgroupRole); _context.SaveChanges(); } // Add all of the users in this group to the new role: IList <ApplicationUser> groupUsers = await _context.Users.Where(u => u.Groups.Any(g => g.GroupId == group.Id)).ToListAsync(); if (groupUsers != null) { foreach (ApplicationUser user in groupUsers) { if (await _userManager.IsInRoleAsync(user, roleName)) { await _userManager.RemoveFromRoleAsync(user, role.Name); } } } }
public void AddRoleToGroup(int groupId, string roleName) { Group group = _db.Groups.Find(groupId); ApplicationRole role = _db.Roles.First(r => r.Name == roleName); var newgroupRole = new ApplicationRoleGroup { //GroupId = group.Id, //Group = group, //RoleId = role.Id, //Role = role GroupId = groupId, Group = group, RoleId = role.Id, Role = role }; // make sure the groupRole is not already present if (!group.Roles.Contains(newgroupRole)) { group.Roles.Add(newgroupRole); _db.SaveChanges(); } // Add all of the users in this group to the new role: IQueryable <ApplicationUser> groupUsers = _db.Users.Where(u => u.Groups.Any(g => g.GroupId == group.Id)); foreach (ApplicationUser user in groupUsers) { if (!(_userManager.IsInRoleAsync(user, roleName).Result)) { AddUserToRole(user.Id, role.Name); } } }