/// <summary> /// Get the specified request. /// </summary> /// <param name="request">Request.</param> public object Get(DataPackageGetGroupsRequestTep request) { List <WebGroup> result = new List <WebGroup>(); var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); try { context.Open(); context.LogInfo(this, string.Format("/data/package/{{DpId}}/group GET DpId='{0}'", request.DpId)); DataPackage dp = DataPackage.FromIdentifier(context, request.DpId); var gids = dp.GetAuthorizedGroupIds(); List <int> ids = gids != null?gids.ToList() : new List <int>(); List <Group> groups = new List <Group>(); foreach (int id in ids) { groups.Add(Group.FromId(context, id)); } foreach (Group grp in groups) { result.Add(new WebGroup(grp)); } context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
/// <summary> /// Post the specified request. /// </summary> /// <param name="request">Request.</param> public object Post(DataPackageAddGroupRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); try { context.Open(); context.LogInfo(this, string.Format("/data/package/{{DpId}}/group POST DpId='{0}', Id='{1}'", request.DpId, request.Id)); DataPackage dp = DataPackage.FromIdentifier(context, request.DpId); var gids = dp.GetAuthorizedGroupIds(); List <int> ids = gids != null?gids.ToList() : new List <int>(); List <Group> groups = new List <Group>(); foreach (int id in ids) { groups.Add(Group.FromId(context, id)); } foreach (Group grp in groups) { if (grp.Id == request.Id) { return(new WebResponseBool(false)); } } dp.GrantPermissionsToGroups(new int[] { request.Id }); context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(new WebResponseBool(true)); }