领域:创建新角色并向其添加用户失败

时间:2019-04-27 23:16:38

标签: swift realm

我试图用Realm Cloud(使用基于查询的同步)来围绕对象级访问控制权限。我想要的是一个对象(例如,下面的示例中的一个Task)可以被一组多个用户查看。

因此,我创建任务,为其创建名称为"task:\(task.taskId)"的角色,将当前用户添加到该角色,为此角色创建新的权限,最后将其添加到任务中。

>
let task = Task()
task.name = "A task!"

try? realm.write {
  realm.add(task)

  let taskRole = realm.create(PermissionRole.self, value: ["task:\(task.taskId)"])
  let permissionUser = realm.object(ofType: PermissionUser.self, forPrimaryKey: SyncUser.current!.identity!)!
  taskRole.users.append(permissionUser)

  let permission = task.permissions.findOrCreate(forRole: taskRole)
  permission.canRead = true
  permission.canUpdate = true
  permission.canDelete = true
}

这样的想法是,以后可以将另一个用户添加到同一角色,并且可以访问该任务,而没有其他人。

几乎所有的东西都在工作,除了实际上没有将用户添加到角色中。在Realm Studio中查看时,可以看到已创建任务,已创建角色,已创建权限并将其添加到任务中,但是该角色根本没有用户。

我在做什么错?还有更好的例子或文档吗?我发现官方文档非常稀疏。

1 个答案:

答案 0 :(得分:0)

我想知道您如何设置权限。您确定您具有读取该PermissionUser并修改该PermissionRole的权限吗?