Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/api/v3/auth/token/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ use utoipa_axum::{router::OpenApiRouter, routes};
use crate::api::auth::Auth;
use crate::api::error::KeystoneApiError;
use crate::keystone::ServiceState;
use crate::token::{TokenApi, types::TokenData};
use crate::token::TokenApi;
use types::{TokenBuilder, TokenResponse};

pub mod types;
Expand Down
17 changes: 1 addition & 16 deletions src/token/application_credential.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use crate::token::{
error::TokenProviderError,
fernet::{self, MsgPackToken},
fernet_utils,
types::{Token, TokenData},
types::Token,
};

#[derive(Clone, Debug, Default)]
Expand All @@ -34,21 +34,6 @@ pub struct ApplicationCredentialToken {
pub application_credential_id: String,
}

impl TokenData for ApplicationCredentialToken {
fn user_id(&self) -> &String {
&self.user_id
}
fn expires_at(&self) -> &DateTime<Utc> {
&self.expires_at
}
fn methods(&self) -> &Vec<String> {
&self.methods
}
fn audit_ids(&self) -> &Vec<String> {
&self.audit_ids
}
}

impl From<ApplicationCredentialToken> for Token {
fn from(value: ApplicationCredentialToken) -> Self {
Token::ApplicationCredential(value)
Expand Down
17 changes: 1 addition & 16 deletions src/token/domain_scoped.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use crate::token::{
error::TokenProviderError,
fernet::{self, MsgPackToken},
fernet_utils,
types::{Token, TokenData},
types::Token,
};

#[derive(Clone, Debug, Default)]
Expand All @@ -33,21 +33,6 @@ pub struct DomainScopeToken {
pub domain_id: String,
}

impl TokenData for DomainScopeToken {
fn user_id(&self) -> &String {
&self.user_id
}
fn expires_at(&self) -> &DateTime<Utc> {
&self.expires_at
}
fn methods(&self) -> &Vec<String> {
&self.methods
}
fn audit_ids(&self) -> &Vec<String> {
&self.audit_ids
}
}

impl From<DomainScopeToken> for Token {
fn from(value: DomainScopeToken) -> Self {
Token::DomainScope(value)
Expand Down
1 change: 0 additions & 1 deletion src/token/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ pub use application_credential::ApplicationCredentialToken;
pub use domain_scoped::DomainScopeToken;
pub use project_scoped::ProjectScopeToken;
pub use types::Token;
use types::TokenData;
pub use unscoped::UnscopedToken;

#[derive(Clone, Debug)]
Expand Down
17 changes: 1 addition & 16 deletions src/token/project_scoped.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use crate::token::{
error::TokenProviderError,
fernet::{self, MsgPackToken},
fernet_utils,
types::{Token, TokenData},
types::Token,
};

#[derive(Clone, Debug, Default)]
Expand All @@ -33,21 +33,6 @@ pub struct ProjectScopeToken {
pub project_id: String,
}

impl TokenData for ProjectScopeToken {
fn user_id(&self) -> &String {
&self.user_id
}
fn expires_at(&self) -> &DateTime<Utc> {
&self.expires_at
}
fn methods(&self) -> &Vec<String> {
&self.methods
}
fn audit_ids(&self) -> &Vec<String> {
&self.audit_ids
}
}

impl From<ProjectScopeToken> for Token {
fn from(value: ProjectScopeToken) -> Self {
Token::ProjectScope(value)
Expand Down
52 changes: 24 additions & 28 deletions src/token/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,44 +30,40 @@ pub enum Token {
ApplicationCredential(ApplicationCredentialToken),
}

pub trait TokenData {
fn user_id(&self) -> &String;
fn expires_at(&self) -> &DateTime<Utc>;
fn methods(&self) -> &Vec<String>;
fn audit_ids(&self) -> &Vec<String>;
}

impl TokenData for Token {
fn user_id(&self) -> &String {
impl Token {
pub fn user_id(&self) -> &String {
match self {
Token::Unscoped(x) => x.user_id(),
Token::ProjectScope(x) => x.user_id(),
Token::DomainScope(x) => x.user_id(),
Token::ApplicationCredential(x) => x.user_id(),
Token::Unscoped(x) => &x.user_id,
Token::ProjectScope(x) => &x.user_id,
Token::DomainScope(x) => &x.user_id,
Token::ApplicationCredential(x) => &x.user_id,
}
}
fn expires_at(&self) -> &DateTime<Utc> {

pub fn expires_at(&self) -> &DateTime<Utc> {
match self {
Token::Unscoped(x) => x.expires_at(),
Token::ProjectScope(x) => x.expires_at(),
Token::DomainScope(x) => x.expires_at(),
Token::ApplicationCredential(x) => x.expires_at(),
Token::Unscoped(x) => &x.expires_at,
Token::ProjectScope(x) => &x.expires_at,
Token::DomainScope(x) => &x.expires_at,
Token::ApplicationCredential(x) => &x.expires_at,
}
}
fn methods(&self) -> &Vec<String> {

pub fn methods(&self) -> &Vec<String> {
match self {
Token::Unscoped(x) => x.methods(),
Token::ProjectScope(x) => x.methods(),
Token::DomainScope(x) => x.methods(),
Token::ApplicationCredential(x) => x.methods(),
Token::Unscoped(x) => &x.methods,
Token::ProjectScope(x) => &x.methods,
Token::DomainScope(x) => &x.methods,
Token::ApplicationCredential(x) => &x.methods,
}
}
fn audit_ids(&self) -> &Vec<String> {

pub fn audit_ids(&self) -> &Vec<String> {
match self {
Token::Unscoped(x) => x.audit_ids(),
Token::ProjectScope(x) => x.audit_ids(),
Token::DomainScope(x) => x.audit_ids(),
Token::ApplicationCredential(x) => x.audit_ids(),
Token::Unscoped(x) => &x.audit_ids,
Token::ProjectScope(x) => &x.audit_ids,
Token::DomainScope(x) => &x.audit_ids,
Token::ApplicationCredential(x) => &x.audit_ids,
}
}
}
Expand Down
17 changes: 1 addition & 16 deletions src/token/unscoped.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use crate::token::{
error::TokenProviderError,
fernet::{self, MsgPackToken},
fernet_utils,
types::{Token, TokenData},
types::Token,
};

#[derive(Clone, Debug, Default)]
Expand All @@ -32,21 +32,6 @@ pub struct UnscopedToken {
pub expires_at: DateTime<Utc>,
}

impl TokenData for UnscopedToken {
fn user_id(&self) -> &String {
&self.user_id
}
fn expires_at(&self) -> &DateTime<Utc> {
&self.expires_at
}
fn methods(&self) -> &Vec<String> {
&self.methods
}
fn audit_ids(&self) -> &Vec<String> {
&self.audit_ids
}
}

impl From<UnscopedToken> for Token {
fn from(value: UnscopedToken) -> Self {
Token::Unscoped(value)
Expand Down