/// <summary> /// Get the list of application group roles for the user /// </summary> /// <param name="userId">The id of the user</param> /// <returns></returns> public IQueryable <ApplicationGroupRole> GetUserGroupRoles(string userId) { var groupRoles = new List <ApplicationGroupRole>(); using (var conn = new MySqlConnection(_connectionString)) { var parameters = new Dictionary <string, object> { { "@ApplicationUserId", userId } }; var reader = MySqlHelper.ExecuteReader(conn, CommandType.Text, @"SELECT r.Id, gr.ApplicationGroupId FROM aspnetroles r INNER JOIN applicationgrouproles gr ON gr.RoleId = r.Id INNER JOIN applicationusergroups ug ON ug.ApplicationGroupId = gr.ApplicationGroupId AND ApplicationUserId = @ApplicationUserId;", parameters); while (reader.Read()) { var groupRole = new ApplicationGroupRole(); groupRole.RoleId = reader[0].ToString(); groupRole.ApplicationGroupId = reader[1].ToString(); groupRoles.Add(groupRole); } } return(groupRoles.AsQueryable()); }
public ActionResult Add(string id) { var groupRole = new ApplicationGroupRole(); groupRole.ApplicationGroupId = id; return(PartialView("Add", groupRole)); }
public List <ApplicationGroupRole> PopulateGroupRoles(string groupId) { var groupRoles = new List <ApplicationGroupRole>(); using (var conn = new MySqlConnection(_connectionString)) { var parameters = new Dictionary <string, object> { { "@groupId", groupId } }; var reader = MySqlHelper.ExecuteReader(conn, CommandType.Text, @"SELECT ApplicationGroupId,RoleId FROM applicationgrouproles WHERE ApplicationGroupId = @groupId", parameters); while (reader.Read()) { var groupRole = new ApplicationGroupRole(); groupRole.ApplicationGroupId = reader[0].ToString(); groupRole.RoleId = reader[1].ToString(); groupRoles.Add(groupRole); } } return(groupRoles); }
public async Task <ActionResult> Add([Bind(Include = "ApplicationGroupId, ApplicationRoleId")] ApplicationGroupRole groupRole) { var roles = await GroupManager.AddGroupRoleAsync(groupRole.ApplicationGroupId, groupRole.ApplicationRoleId); return(Json(new { Success = true })); }
public async Task <ApplicationGroup> SaveGroup(JObject group) { dynamic groupDto = group; ApplicationGroup applicationGroup; bool isNew = groupDto.IsNew; JArray sremovedListArray = groupDto.RemovedList; var removedList = sremovedListArray.ToObject <List <int> >(); JArray addedListArray = groupDto.AddedList; var addedList = addedListArray.ToObject <List <int> >(); if (!isNew) { applicationGroup = new ApplicationGroup() { Id = groupDto.Id }; applicationGroup = await _securityContext.Groups.FindAsync(applicationGroup.Id); if (applicationGroup == null) { throw new KhodkarInvalidException(LanguageManager.ToAsErrorMessage(ExceptionKey.GroupNotFound)); } } else { applicationGroup = new ApplicationGroup(); _securityContext.Groups.Add(applicationGroup); } applicationGroup.Name = groupDto.Name; applicationGroup.IsLeaf = groupDto.IsLeaf; applicationGroup.Description = groupDto.Description; try { applicationGroup.Order = groupDto.Order; } catch (Exception) { applicationGroup.Order = 0; } applicationGroup.Status = groupDto.Status; try { int parentId = groupDto.ParentId; if (applicationGroup.ParentId != parentId) { var parentCode = await _securityContext.Groups.FindAsync(parentId); if (parentCode == null) { throw new KhodkarInvalidException( LanguageManager.ToAsErrorMessage(ExceptionKey.ParentRecordNotFound)); } AuthorizeManager.CheckParentNodeModifyAccessForAddingChildNode(parentCode, parentCode.Id); } applicationGroup.ParentId = parentId; } catch (KhodkarInvalidException) { throw; } catch (Exception) { applicationGroup.ParentId = null; } AuthorizeManager.SetAndCheckModifyAndAccessRole(applicationGroup, groupDto); foreach (var item in addedList) { var role = new ApplicationGroupRole() { GroupId = applicationGroup.Id, RoleId = item }; _securityContext.ApplicationGroupRoles.Add(role); } if (removedList.Count > 0) { _securityContext.ApplicationGroupRoles.Where( eg => removedList.Contains(eg.RoleId) && eg.GroupId == applicationGroup.Id).Delete(); } await _securityContext.SaveChangesAsync(); CacheManager.Remove(CacheManager.GetGroupKey(CacheKey.Aspect.ToString(), applicationGroup.Id)); return(applicationGroup); }