更改应用的访问权限。
URI
更新正式环境的应用时所使用的URI跟更新测试环境时不一样。
更新正式环境的应用时
https://(子域名).cybozu.cn/k/v1/app/acl.json
来宾空间内的应用:https://(子域名).cybozu.cn/k/guest/(空间ID)/v1/app/acl.json
执行该API时,不单应用的访问权限,连测试环境的应用内的所有设置都会应用到正式环境中。
更新测试环境的应用时
https://(子域名).cybozu.cn/k/v1/preview/app/acl.json
来宾空间内的应用:https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/preview/app/acl.json
HTTP 方法
PUT
必要的访问权限
应用的管理权限
※从2020年3月版开始可以使用API令牌来执行该API。
请求参数
以下是要指定的参数一览。要指定的访问权限,需要满足以下依存关系:
如果允许编辑或删除记录,也必须允许查看记录。
如果允许导入文件,也必须允许添加记录。
参数名称 | 要指定的值 | 必须 | 说明 |
---|---|---|---|
app | 数值或字符串 | 必须 | 指定应用的ID。 |
rights | 数组 | 必须 | 用于存放访问权限设置对象的数组。从优先度高到低排列。但是,不管这里如何指定,对“Everyone”(所有用户)的设置的优先度一直都是最低的。 |
rights[].entity | 对象 | 必须 | 该对象用于存放访问权限的设置对象。 |
rights[].entity.type | 字符串 | 必须 | 指定访问权限的设置对象的种类。
|
rights[].entity.code | 字符串 | 条件必须 | 指定访问权限的设置对象的代码。「rights[].entity.type」参数指定为“CREATOR”时,此参数不需要。 如果访问权限的设置对象没有指定“Everyone”(所有用户),“Everyone”不可执行任何操作。 如果要指定来宾用户,登录名称前面加“guest/”。 |
rights[].includeSubs | 布尔值或字符串 | 是否将设置继承给其下级组织。
仅当rights[].entity.type为ORGANIZATION时有效。 | |
rights[].appEditable | 布尔值或字符串 | 设置是否可管理应用。
如果省略,则为false。 | |
rights[].recordViewable | 布尔值或字符串 | 设置是否可查看记录。
如果省略,则为false。 | |
rights[].recordAddable | 布尔值或字符串 | 设置是否可添加记录。
如果省略,则为false。 | |
rights[].recordEditable | 布尔值或字符串 | 设置是否可编辑记录。
如果省略,则为false。 | |
rights[].recordDeletable | 布尔值或字符串 | 设置是否可删除记录。
如果省略,则为false。 | |
rights[].recordImportable | 布尔值或字符串 | 设置是否可导入文件。
如果省略,则为false。 | |
rights[].recordExportable | 布尔值或字符串 | 设置是否可导出到文件。
如果省略,则为false。 | |
revision | 数值或字符串 | 指定应用的设置更改之前的修订号。只有在测试环境才会验证指定的修订号。 如指定的修订号不是最新的,请求将报错。 如果省略或指定“-1”,将不对修订号进行验证。 |
请求的范例
头部
PUT /k/v1/app/acl.json HTTP/1.1 Host: example.cybozu.cn:443 X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU= Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU= Content-Type: application/json
正文
{ "app": 1, "rights": [ { "entity": { "type": "USER", "code": "user1" }, "appEditable": true, "recordViewable": true, "recordAddable": true, "recordEditable": true, "recordDeletable": true, "recordImportable": true, "recordExportable": true }, { "entity": { "type": "GROUP", "code": "group1" }, "appEditable": false, "recordViewable": false, "recordAddable": false, "recordEditable": false, "recordDeletable": false, "recordImportable": false, "recordExportable": false }, { "entity": { "type": "ORGANIZATION", "code": "org1" }, "includeSubs": true, "appEditable": false, "recordViewable": true, "recordAddable": true, "recordEditable": true, "recordDeletable": true, "recordImportable": true, "recordExportable": true }, { "entity": { "type": "CREATOR" }, "appEditable": true, "recordViewable": true, "recordAddable": true, "recordEditable": true, "recordDeletable": true, "recordImportable": true, "recordExportable": true } ], "revision": 2 }
应答参数
参数名称 | 值的类型 | 说明 |
---|---|---|
revision | 字符串 | 应用的设置更改之后的修订号。 |
应答的范例
{ "revision": "3" }
JavaScript 范例
使用API请求发送 kintone REST API 请求
var body = { "app": 1, "rights": [ { "entity": { "type": "USER", "code": "user1" }, "appEditable": true, "recordViewable": true, "recordAddable": true, "recordEditable": true, "recordDeletable": true, "recordImportable": true, "recordExportable": true },{ "entity": { "type": "GROUP", "code": "everyone" }, "includeSubs": true, "appEditable": true, "recordViewable": true, "recordAddable": true, "recordEditable": true, "recordDeletable": true, "recordImportable": false, "recordExportable": false },{ "entity": { "type": "CREATOR" }, "appEditable": true, "recordViewable": true, "recordAddable": true, "recordEditable": true, "recordDeletable": true, "recordImportable": true, "recordExportable": true } ] }; kintone.api(kintone.api.url('/k/v1/app/acl', true), 'PUT', body, function(resp) { // success console.log(resp); }, function(error) { // error console.log(error); });
使用 XMLHttpRequest 请求
var body = { "app": 1, "rights": [ { "entity": { "type": "USER", "code": "user1" }, "appEditable": true, "recordViewable": true, "recordAddable": true, "recordEditable": true, "recordDeletable": true, "recordImportable": true, "recordExportable": true },{ "entity": { "type": "GROUP", "code": "everyone" }, "includeSubs": true, "appEditable": true, "recordViewable": true, "recordAddable": true, "recordEditable": true, "recordDeletable": true, "recordImportable": false, "recordExportable": false },{ "entity": { "type": "CREATOR" }, "appEditable": true, "recordViewable": true, "recordAddable": true, "recordEditable": true, "recordDeletable": true, "recordImportable": true, "recordExportable": true } ], // CSRF TOKEN: 在kintone中执行API(POST, PUT, DELETE)时需要设置 "__REQUEST_TOKEN__": kintone.getRequestToken() }; var url = 'https://{subdomain}.cybozu.cn/k/v1/app/acl.json'; var xhr = new XMLHttpRequest(); xhr.open('PUT', url); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onload = function() { if (xhr.status === 200) { // success console.log(JSON.parse(xhr.responseText)); } else { // error console.log(JSON.parse(xhr.responseText)); } }; xhr.send(JSON.stringify(body));