解析:以正确的方式执行权限

时间:2016-12-12 09:45:36

标签: parse-platform permissions

我试图围绕如何在Parse中执行权限。

我的情况如下:

  • 教师创建课程
  • 老师在课程中添加讲座
  • 教会希望将学生添加到课程中
  • 课程学生应该能够访问属于该课程的所有讲座,而不是其他任何内容

我知道如何真正获得学生的课程,然后附上课程......但我怎么能限制查询这些? 如何阻止用户查询他们未参加的课程?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为这不是一个权限问题,而是更多的逻辑和表格结构。如果您希望学生编辑课程的特定部分等,则会使用权限。

有一个名为Courses的表,然后是一个学生关系表。然后让您的查询“选择与教师在注册过程中添加的学生关系相等的课程。

您看到某个特定课程可能有多名学生。因此需要一个关系表。与为特定课程进行多次讲座相同。

如果您想为特定课程添加多个部分,此结构也可以正常工作。例如模块甚至讲座

  • 第1单元简介
  • 模块2基本
  • 第3单元评估

然后你可以有一个查询,选择属于我的学生ID = XX的特定课程的所有模块。这种类型的逻辑将允许您积极扩展。对不起,如果我有点逃跑了!如果这是有道理的,请告诉我。

另外,根据您的平台,请查看WIKI的解析关系以获得一些了解。下面是Javascript,但他们在所有平台上都有文档。

https://parseplatform.github.io/docs/js/guide/#relational-data

答案 1 :(得分:0)

我相信我在Parse中想到了这个。

在描述的场景中,您有3个类:

  • 讲座
  • 用户

当教师创建课程时,您需要为其添加对象ACL。 所以让我们说一个课程对象得到ID“ABC123”。然后添加名为“CourseTeachers_ABC123”和“CourseStudents_ABC123”的角色,并授予他们访问课程对象的权限。教师应该能够做所有事情,学生应该只能阅读。

当你添加一个讲座时,你给它一个名字和一个指向课程的指针。 但是你也可以添加上面的角色!这样,您只允许课程ID“ABC123”的老师和学生访问这些课程。

您可能需要一些云代码来确保人们不会将讲座分配/附加到他们无法控制的课程中。因此,如果您想保存讲座并将其指向课程ID“ABC123”,您需要检查试图保存讲座的用户是否具有“CourseTeachers_ABC123”角色。