领域URL应该用于权限更改?

时间:2016-12-06 07:02:15

标签: realm

我无法找出执行权限更改的正确网址。在文档之后,我可以通过传递* URL来成功更改所有领域的全局权限,但我无法获得特定的命名领域权限。我试图授予对另一个(管理员级别)用户创建的域的只读访问权限。

[RLMSyncPermissionChange permissionChangeWithRealmURL:@"realms://my.domain.com:9443/~/Realm-Name"
                           userID:@"5443d0cfc457b762e47855ffc3b0732d"
                             read:@YES 
                            write:@NO 
                           manage:@NO];

在服务器日志中显示此信息(在statusMessage字段中,statusCode为616):

error: permission: Error when processing PermissionChange(id='32455E8C-8...'):
The server is not authoritative for this URL.

我传递的URL与用于创建Realm的URL相同。我哪里错了?

1 个答案:

答案 0 :(得分:1)

如果您已将Realm对象服务器部署到外部可访问的URL,则需要在密钥configuration.yml下的auth:sync_hosts中为此配置主机(如果需要)将这些外部URL与客户端权限API一起使用。

这可能如下所示:

auth:
   sync_hosts:
        - my.domain.com:9443

除此之外,服务器将始终确定自己对localhost具有权威性。这也可以作为其IPv4变体127.0.0.1和IPv6变体::传递。

因此,您可以根据以下内容构建传递到RLMSyncPermissionChange的网址:

[RLMSyncPermissionChange permissionChangeWithRealmURL:@"realms://localhost:9443/~/Realm-Name"
                                               userID:@"5443d0cfc457b762e47855ffc3b0732d"
                                                 read:@YES 
                                                write:@NO 
                                               manage:@NO];