0

我一直在使用/d2l/api/lp/1.4/enrollments/myenrollments/获取当前用户的注册列表。现在,我只想获取用户担任讲师角色的注册。所以,我正在尝试使用:

/d2l/api/lp/1.4/enrollments/users/{userId}/orgUnits/?roleId=105

当我使用它时,我会得到一个空的 Items 列表,无论是否指定了 roleId。

我的期望是,在没有 roleId 的情况下调用它会返回与/d2l/api/lp/1.4/enrollments/myenrollments/. 但是,我总是得到一个空列表,除非我以系统管理员身份登录。只有在这种情况下,我才能得到任何回报。

有人对我可能做错的事情有任何建议吗?

4

1 回答 1

0

各种my*API 调用专门用于为最终用户提供他们应该知道的系统详细信息,但与他们不应该知道的信息隔离开来(可以通过特定区域的更一般的路线获得)。招生就是一个很好的例子。最终用户应该能够看到他们自己的注册,但他们不应该普遍访问注册记录。特别是,D2L 系统将属于注册的 D2L 用户角色视为具有相当特权的信息,其副作用是最终用户通常不可见。

应用程序和服务可以应对实现最终用户自己无法执行的目标的一种方法是设置一个“服务帐户”,应用程序可以使用该“服务帐户”进行管理性质的调用,取回他们可以使用的数据在围绕向最终用户呈现信息的业务逻辑中。在这种特殊情况下,例如,您可以使用服务帐户对用户的注册进行调用,然后向用户显示可以通过“这些是学生的,这些是那些”来过滤他们的注册列表的逻辑你在哪里是老师,也是导师,等等”。

但是您还需要仔细考虑此类活动的影响,以平衡客户 LMS 的政策和管理的意图。在客户端 LMS 管理员看来,即使是这种级别的信息也可能会向最终用户泄露太多信息。

使用服务帐户让应用程序进行管理级别的调用必须始终非常小心地解决信息/功能泄漏给最终用户的问题。

于 2014-04-07T16:08:43.210 回答