src/api2/access/role.rs: new api to list roles

This commit is contained in:
Dietmar Maurer
2020-04-17 14:03:24 +02:00
parent 4f66423fcc
commit 3fff55b293
4 changed files with 73 additions and 8 deletions

45
src/api2/access/role.rs Normal file
View File

@ -0,0 +1,45 @@
use failure::*;
use serde_json::{json, Value};
use proxmox::api::{api, Permission};
use proxmox::api::router::Router;
use crate::api2::types::*;
use crate::config::acl::ROLE_NAMES;
#[api(
returns: {
description: "List of roles.",
type: Array,
items: {
type: Object,
description: "User name with description.",
properties: {
role: {
description: "Role name.",
type: String,
},
comment: {
schema: SINGLE_LINE_COMMENT_SCHEMA,
optional: true,
},
},
}
},
access: {
permission: &Permission::Anybody,
}
)]
/// Role list
fn list_roles() -> Result<Value, Error> {
let mut list = Vec::new();
for (role, comment) in ROLE_NAMES.iter() {
list.push(json!({ "role": role, "comment": comment }));
}
Ok(list.into())
}
pub const ROUTER: Router = Router::new()
.get(&API_METHOD_LIST_ROLES);