casdoor_sdk_rust/application/
models.rsuse serde::{Deserialize, Serialize};
use crate::{Cert, IsQueryArgs, Model, Organization, Provider, ThemeData};
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
#[serde(rename_all = "camelCase", default)]
pub struct Application {
owner: String,
name: String,
created_time: String,
display_name: String,
logo: String,
homepage_url: String,
description: String,
organization: String,
cert: String,
header_html: String,
enable_password: bool,
enable_sign_up: bool,
enable_signin_session: bool,
enable_auto_signin: bool,
enable_code_signin: bool,
enable_saml_compress: bool,
enable_saml_c14n10: bool,
enable_saml_post_binding: bool,
use_email_as_saml_name_id: bool,
enable_web_authn: bool,
enable_link_with_email: bool,
org_choice_mode: String,
saml_reply_url: String,
providers: Vec<ProviderItem>,
signin_methods: Vec<SigninMethod>,
signup_items: Vec<SignupItem>,
signin_items: Vec<SigninItem>,
grant_types: Vec<String>,
organization_obj: Option<Organization>,
cert_public_key: String,
tags: Vec<String>,
saml_attributes: Vec<SamlItem>,
is_shared: bool,
client_id: String,
client_secret: String,
redirect_uris: Vec<String>,
token_format: String,
token_signing_method: String,
token_fields: Vec<String>,
expire_in_hours: i32,
refresh_expire_in_hours: i32,
signup_url: String,
signin_url: String,
forget_url: String,
affiliation_url: String,
terms_of_use: String,
signup_html: String,
signin_html: String,
theme_data: Option<ThemeData>,
footer_html: String,
form_css: String,
form_css_mobile: String,
form_offset: i32,
form_side_html: String,
form_background_url: String,
failed_signin_limit: i32,
failed_signin_frozen_time: i32,
cert_obj: Option<Cert>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
#[serde(rename_all = "camelCase", default)]
pub struct ProviderItem {
owner: String,
name: String,
can_sign_up: bool,
can_sign_in: bool,
can_unlink: bool,
prompted: bool,
alert_type: String,
rule: String,
provider: Option<Provider>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
#[serde(rename_all = "camelCase", default)]
pub struct SignupItem {
name: String,
visible: bool,
required: bool,
prompted: bool,
custom_css: String,
label: String,
placeholder: String,
regex: String,
rule: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
#[serde(rename_all = "camelCase", default)]
pub struct SigninMethod {
name: String,
display_name: String,
rule: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
#[serde(rename_all = "camelCase", default)]
pub struct SigninItem {
name: String,
visible: bool,
label: String,
custom_css: String,
placeholder: String,
rule: String,
is_custom: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
#[serde(rename_all = "camelCase", default)]
pub struct SamlItem {
name: String,
name_format: String,
value: String,
}
impl Model for Application {
fn ident() -> &'static str {
"application"
}
fn plural_ident() -> &'static str {
"applications"
}
fn support_update_columns() -> bool {
false
}
fn owner(&self) -> &str {
&self.owner
}
fn name(&self) -> &str {
&self.name
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
pub struct ApplicationQueryArgs {
#[serde(rename = "pageSize", skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(rename = "p", skip_serializing_if = "Option::is_none")]
pub page: Option<i32>,
#[serde(rename = "field", skip_serializing_if = "Option::is_none")]
pub field: Option<String>,
#[serde(rename = "value", skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(rename = "sortField", skip_serializing_if = "Option::is_none")]
pub sort_field: Option<String>,
#[serde(rename = "sortOrder", skip_serializing_if = "Option::is_none")]
pub sort_order: Option<String>,
pub organization_name: Option<String>,
}
impl IsQueryArgs for ApplicationQueryArgs {}