Skip to content

Commit fd9ca4c

Browse files
Access Control: Allow assigning Edit permissions for data source (#693)
* allow setting edit permissions * test with Edit permission * forgot to commit description change * final doc update
1 parent 854096d commit fd9ca4c

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

docs/resources/data_source_permission.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ resource "grafana_data_source_permission" "fooPermissions" {
4040
}
4141
permissions {
4242
user_id = 3 // 3 is the admin user in cloud. It can't be queried
43-
permission = "Query"
43+
permission = "Edit"
4444
}
4545
}
4646
```
@@ -62,7 +62,7 @@ resource "grafana_data_source_permission" "fooPermissions" {
6262

6363
Required:
6464

65-
- `permission` (String) Permission to associate with item. Must be `Query`.
65+
- `permission` (String) Permission to associate with item. Options: `Query` or `Edit` (`Edit` can only be used with Grafana v9.2.3+).
6666

6767
Optional:
6868

examples/resources/grafana_data_source_permission/resource.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ resource "grafana_data_source_permission" "fooPermissions" {
2525
}
2626
permissions {
2727
user_id = 3 // 3 is the admin user in cloud. It can't be queried
28-
permission = "Query"
28+
permission = "Edit"
2929
}
3030
}

grafana/resource_datasource_permission.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ func ResourceDatasourcePermission() *schema.Resource {
5454
"permission": {
5555
Type: schema.TypeString,
5656
Required: true,
57-
ValidateFunc: validation.StringInSlice([]string{"Query"}, false),
58-
Description: "Permission to associate with item. Must be `Query`.",
57+
ValidateFunc: validation.StringInSlice([]string{"Query", "Edit"}, false),
58+
Description: "Permission to associate with item. Options: `Query` or `Edit` (`Edit` can only be used with Grafana v9.2.3+).",
5959
},
6060
},
6161
},
@@ -206,15 +206,21 @@ addLoop:
206206
}
207207

208208
func mapDatasourcePermissionStringToType(permission string) (gapi.DatasourcePermissionType, error) {
209-
if permission == "Query" {
209+
switch permission {
210+
case "Query":
210211
return gapi.DatasourcePermissionQuery, nil
212+
case "Edit":
213+
return gapi.DatasourcePermissionEdit, nil
211214
}
212215
return 0, fmt.Errorf("unknown datasource permission: %s", permission)
213216
}
214217

215218
func mapDatasourcePermissionTypeToString(permission gapi.DatasourcePermissionType) (string, error) {
216-
if permission == gapi.DatasourcePermissionQuery {
219+
switch permission {
220+
case gapi.DatasourcePermissionQuery:
217221
return "Query", nil
222+
case gapi.DatasourcePermissionEdit:
223+
return "Edit", nil
218224
}
219225
return "", fmt.Errorf("unknown permission type: %d", permission)
220226
}

0 commit comments

Comments
 (0)