Управление ролями
Управление ролями пользователей осуществляется через коллекцию /api/roles, а также связанные с ним функции посредством /api/features.
Доступны полные действия CRUD над ролями:
- запрос ролей;
- создание ролей;
- редактирование ролей;
- удаление ролей.
Запрос ролей
Опрос всех ролей в Комплексе:
GET /api/roles
Получение подробной информации о конкретной роли:
GET /api/roles/:id
Получение подробной информации о конкретной роли, включая предоставленные права:
GET /api/roles/:id?expand=features
или с запросом прав, назначенных ролью:
GET /api/roles/:id/features?expand=resources
Запрос всех прав в Комплексе, которые можно назначить роли:
GET /api/features
Создание ролей
Роли можно создавать с помощью POST в коллекции ролей или с помощью действия create, которое также позволяет создавать несколько ролей в одном запросе:
POST /api/roles
{
"action" : "create",
"resource" : {
"name" : "sample_role",
"settings" : { "restrictions" : { "vms" : "user" } },
"features" : [
{ "identifier" : "vm_explorer" },
{ "identifier" : "ems_infra_tag" },
{ "identifier" : "miq_report_run" }
]
}
}
Примечание – restrictions для ВМ могут быть любыми из user или user_or_group.
Права могут быть указаны через identifier, href, id или создание нескольких ролей:
{
"action" : "create",
"resources" : [
{ "name" : "sample_role1", ... },
{ "name" : "sample_role2", ... },
...
]
}
Редактирование ролей
Редактирование единственной роли:
POST /api/roles/:id
{
"action" : "edit",
"resource" : {
"name" : "updated_sample_role",
"settings" : { "restrictions" : { "vms" : "user_or_group" } }
}
Редактирование нескольких ролей:
POST /api/roles
{
"action" : "edit",
"resources" : [
{
"href" : "http://localhost:3000/api/roles/101",
"name" : "updated_sample_role1"
},
{
"href" : "http://localhost:3000/api/roles/102",
"name" : "updated_sample_role2"
},
...
]
}
Назначение прав для роли:
POST /api/roles/:id/features
{
"action" : "assign",
"resource" : {
"identifier" : "miq_request_view"
}
}
Назначение прав для нескольких ролей:
{
"action" : "assign",
"resources" : [
{ "identifier" : "miq_request_view" },
{ "identifier" : "storage_manager_show_list" },
...
]
}
Отмена назначения прав для роли:
POST /api/roles/:id/features
{
"action" : "unassign",
"resource" : {
{ "identifier" : "miq_request_view" }
}
}
Отмена назначения прав для нескольких ролей:
{
"action" : "unassign",
"resources" : [
{ "identifier" : "miq_request_view" },
{ "identifier" : "storage_manager_show_list" },
...
]
}
Удаление ролей
Несистемные роли (т. е. не read_only) можно удалить либо с помощью действия delete POST, либо с помощью HTTP-метода DELETE соответственно:
POST /api/roles/101
{
"action" : "delete"
}
или
DELETE /api/roles/101
Удаление нескольких ролей можно выполнить следующим образом:
POST /api/roles
{
"action" : "delete",
"resources" : [
{ "href" : "http://localhost:3000/api/roles/101" },
{ "href" : "http://localhost:3000/api/roles/102" },
...
]
}