Redmine API 用户分组

问题描述 投票:0回答:2

我正在制作一个 wpf 应用程序,使用 Redmine.Net.Api 显示来自 redmine 的一些数据。 我只想显示属于 redmine 组的用户。 我可以得到所有组

Redminemanager manager = new RedmineManager(Config.host, Config.apiKey);
var groups = manager.GetObjects<Group>();

我的组名称是正确的,但用户始终为空。

我也尝试了用户类别下的组:

 Redminemanager manager = new RedmineManager(Config.host, Config.apiKey);
  var redmineUsers = manager.GetObjects<User>() 

那里的组也总是为空。

我不太明白,希望有人能帮忙。 提前致谢。

redmine redmine-api
2个回答
2
投票

这是关于 Redmine REST API 的工作原理:默认情况下,列出一个组不会检索用户。

Redmine REST API 文档,GET Groups 部分,说道:

获取

返回群组的详细信息。

此端点需要管理员权限。

参数:

  • include(可选):要包含在响应中的逗号分隔的关联列表:
    • 用户
    • 会员资格

我在本地Redmine安装上尝试了

GET /groups/1.json
,但没有使用
include=users
,实际上并没有检索到用户。当我添加
?include=users
时,它就像一个魅力

在 Github 上的官方 Redmine.Net.API Wiki 上有一个使用这些包含参数的示例。

是这样的:

var group = manager.GetObject<Group>(groupId, 
                                new NameValueCollection() { { RedmineKeys.INCLUDE, RedmineKeys.USERS } });

祝你好运。


0
投票
    public static async Task<IEnumerable<Group>> GetAllGroupsAsync(this RedmineManager _rmm)
    {
        var groups = await _rmm.GetObjectsAsync<Group>(new NameValueCollection()
                                                       {
                                                           {
                                                               "include", "users"
                                                           }
                                                       });

        if (groups == null || groups.Any() == false)
        {
            return new List<Group>();
        }

        foreach (var group in groups)
        {
            var groupWithUsers = await _rmm.GetObjectAsync<Group>(group.Id.ToString(), new NameValueCollection()
                                                                                       {
                                                                                           {
                                                                                               "include", "users"
                                                                                           }
                                                                                       });

            group.Users = groupWithUsers.Users;
        }

        return groups.ToList();
    }
© www.soinside.com 2019 - 2024. All rights reserved.