added auth

This commit is contained in:
vextrixes committed 2026-10-28 15:58:30 +01:00
1 parent e020e52f0f
commit fedbf019b4
7 files changed
+119 -21

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub struct LoginSuccess {
#[serde(rename = "bak:UserId")]
pub user_id: String,
pub access_token: String,
pub token_type: TokenType,
pub expires_in: i64,
pub refresh_token: String,
#[serde(rename = "bak:ApiVersion")]
pub api_version: String,
#[serde(rename = "bak:AppVersion")]
pub app_version: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum TokenType {
Bearer,
}
+7
View File
@@ -0,0 +1,7 @@
mod login;
mod open_id_discovery;
mod user_jwt_claim;
pub use login::{LoginSuccess, TokenType};
pub use open_id_discovery::OpenIdDiscovery;
pub use user_jwt_claim::UserJwtClaim;
+24
View File
@@ -0,0 +1,24 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub struct OpenIdDiscovery {
pub issuer: String,
pub authorization_endpoint: String,
pub token_endpoint: String,
pub userinfo_endpoint: String,
pub jwks_uri: String,
pub grant_types_supported: Vec<String>,
pub response_types_supported: Vec<String>,
pub response_modes_supported: Vec<String>,
pub scopes_supported: Vec<String>,
pub claims_supported: Vec<String>,
pub id_token_signing_alg_values_supported: Vec<String>,
pub code_challenge_methods_supported: Vec<String>,
pub subject_types_supported: Vec<String>,
pub token_endpoint_auth_methods_supported: Vec<String>,
pub claims_parameter_supported: bool,
pub request_parameter_supported: bool,
pub request_uri_parameter_supported: bool,
pub authorization_response_iss_parameter_supported: bool,
}
+42
View File
@@ -0,0 +1,42 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub struct UserJwtClaim {
#[serde(rename = "Bakalari.AccountType")]
pub account_type: String,
#[serde(rename = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier")]
pub xmlnameidentifier: Option<String>,
#[serde(rename = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name")]
pub xmlname: Option<String>,
#[serde(rename = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn")]
pub xmlupn: Option<String>,
#[serde(rename = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/gender")]
pub xmlgender: Option<String>,
#[serde(rename = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dateofbirth")]
pub xmldateofbirth: Option<String>,
#[serde(rename = "Bakalari.UserType")]
pub user_type: String,
#[serde(rename = "Bakalari.SessionId")]
pub session_id: String,
#[serde(rename = "Bakalari.TimeStamp")]
pub time_stamp: String,
#[serde(rename = "Bakalari.PersonIdWithType")]
pub person_id_with_type: String,
#[serde(rename = "Bakalari.EvidNumber")]
pub evid_number: String,
#[serde(rename = "Bakalari.MachineName")]
pub machine_name: String,
pub sub: String,
pub name: String,
pub oi_prst: String,
pub oi_au_id: String,
pub client_id: String,
pub oi_tkn_id: String,
pub aud: String,
pub scope: String,
pub jti: String,
pub exp: i64,
pub iss: String,
pub iat: i64,
}
+2
View File
@@ -2,6 +2,7 @@ mod absence;
mod api_info;
mod attachment;
//campaign
mod auth;
mod campaign;
mod error;
mod events;
@@ -24,6 +25,7 @@ mod user; //TODOS
pub use absence::{AbsenceDay, StudentAbsenceOverviewResponse, SubjectAbsence};
pub use api_info::ApiInfo;
pub use attachment::AttachmentInfo;
pub use auth::*;
pub use campaign::Campaign;
pub use error::{Error, ModelState, StringArray};
pub use events::{Event, EventTime, EventType, Events};
+21 -21
View File
@@ -3,47 +3,47 @@ use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "Module")]
pub enum Module {
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Absence { rights: Vec<AbsenceRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
AccessSystem { rights: Vec<AccessSystemRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Application { rights: Vec<ApplicationRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Campaign { rights: Vec<CampaignRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Classbook { rights: Vec<ClassbookRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Emergency { rights: Vec<EmergencyRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Events { rights: Vec<EventsRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Gdpr { rights: Vec<GdprRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Homeworks { rights: Vec<HomeworksRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Komens { rights: Vec<KomensRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Marking { rights: Vec<MarkingRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Marks { rights: Vec<MarksRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Payments { rights: Vec<PaymentsRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Semester { rights: Vec<SemesterRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Subjects { rights: Vec<SubjectsRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Substitutions { rights: Vec<SubstitutionsRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Teaching { rights: Vec<TeachingRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Timetable { rights: Vec<TimetableRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
Unknown { rights: Vec<UnknownRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
UserAccount { rights: Vec<UserAccountRights> },
#[serde(rename_all="PascalCase")]
#[serde(rename_all = "PascalCase")]
WebBased { rights: Vec<WebBasedRights> },
}