api: access: domains: add ExtraRealmInfo and RealmInfo structs
these will be used as parameters/return types for the read/create/etc. calls for realms for now we copy the necessary attributes (only from openid) since our api macros/tools are not good enought to generate the necessary api definitions for section configs Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
934de1d691
commit
da7ec1d2af
|
@ -8,6 +8,7 @@ use serde_json::{json, Value};
|
|||
use proxmox::api::{api, Permission, Router, RpcEnvironment};
|
||||
|
||||
use crate::api2::types::*;
|
||||
use crate::config::domains::{OpenIdRealmConfig, OpenIdUserAttribute};
|
||||
|
||||
#[api]
|
||||
#[derive(Deserialize, Serialize, PartialEq, Eq)]
|
||||
|
@ -50,6 +51,70 @@ pub struct BasicRealmInfo {
|
|||
pub comment: Option<String>,
|
||||
}
|
||||
|
||||
#[api(
|
||||
properties: {
|
||||
"issuer-url": {
|
||||
description: "OpenID Issuer Url",
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
"client-id": {
|
||||
description: "OpenID Client ID",
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
"client-key": {
|
||||
description: "OpenID Client Key",
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
autocreate: {
|
||||
description: "Automatically create users if they do not exist.",
|
||||
optional: true,
|
||||
type: bool,
|
||||
default: false,
|
||||
},
|
||||
"username-claim": {
|
||||
type: OpenIdUserAttribute,
|
||||
optional: true,
|
||||
},
|
||||
},
|
||||
)]
|
||||
#[derive(Deserialize, Serialize)]
|
||||
#[serde(rename_all = "kebab-case")]
|
||||
/// Extra Information about a realm
|
||||
pub struct ExtraRealmInfo {
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub issuer_url: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub client_id: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub client_key: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub autocreate: Option<bool>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub username_claim: Option<OpenIdUserAttribute>,
|
||||
}
|
||||
|
||||
#[api(
|
||||
properties: {
|
||||
"info": {
|
||||
type: BasicRealmInfo,
|
||||
},
|
||||
"extra": {
|
||||
type: ExtraRealmInfo,
|
||||
},
|
||||
},
|
||||
)]
|
||||
#[derive(Deserialize, Serialize)]
|
||||
#[serde(rename_all = "kebab-case")]
|
||||
/// Information about a realm
|
||||
pub struct RealmInfo {
|
||||
#[serde(flatten)]
|
||||
pub info: BasicRealmInfo,
|
||||
#[serde(flatten)]
|
||||
pub extra: ExtraRealmInfo,
|
||||
}
|
||||
|
||||
#[api(
|
||||
returns: {
|
||||
|
|
Loading…
Reference in New Issue