Skip to content

Commit

Permalink
close members
Browse files Browse the repository at this point in the history
  • Loading branch information
yggverse committed Jan 23, 2025
1 parent 054c30b commit f495453
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,10 @@ impl Item {
// Extract certificate details from PEM string
Ok(ref pem) => match TlsCertificate::from_pem(pem) {
// Collect certificate scopes for item
Ok(ref certificate) => match scope(profile, profile_identity_id) {
// Ready to build `Item` GObject
Ok(ref scope) => Ok(Object::builder()
Ok(ref certificate) => {
let scope = &profile.identity.auth.scope(profile_identity_id);

Ok(Object::builder()
.property("value", profile_identity_id)
.property("title", title::new_for_profile_identity_id(certificate))
.property(
Expand All @@ -84,9 +85,8 @@ impl Item {
auth_url,
),
)
.build()),
Err(_) => todo!(),
},
.build())
}
Err(e) => Err(Error::TlsCertificate(e)),
},
Err(_) => todo!(),
Expand All @@ -106,7 +106,7 @@ impl Item {
Ok(ref pem) => match TlsCertificate::from_pem(pem) {
Ok(ref certificate) => {
// Get current scope
let scope = &scope(profile, profile_identity_id)?;
let scope = &profile.identity.auth.scope(profile_identity_id);

// Update properties
self.set_title(title::new_for_profile_identity_id(certificate));
Expand Down Expand Up @@ -153,22 +153,3 @@ impl Item {
}
}
}

// Tools

/// Collect certificate scope vector from `Profile` database for `profile_identity_id`
fn scope(profile: &Rc<Profile>, profile_identity_id: i64) -> Result<Vec<String>, Error> {
match profile.identity.auth.database.records_scope(None) {
Ok(result) => {
let mut scope = Vec::new();
for auth in result
.iter()
.filter(|this| this.profile_identity_id == profile_identity_id)
{
scope.push(auth.scope.clone())
}
Ok(scope)
}
Err(_) => todo!(),
}
}
23 changes: 20 additions & 3 deletions src/profile/identity/auth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ use memory::Memory;
use sqlite::{Connection, Transaction};
use std::{rc::Rc, sync::RwLock};

/// API for `profile_identity_id` + `scope` auth pairs operations
/// Auth pair operations
pub struct Auth {
pub database: Rc<Database>,
pub memory: Rc<Memory>,
database: Rc<Database>,
memory: Rc<Memory>,
}

impl Auth {
Expand Down Expand Up @@ -124,6 +124,23 @@ impl Auth {
.is_some_and(|auth| auth.profile_identity_id == profile_identity_id)
}

/// Collect certificate scope vector from `Profile` database for `profile_identity_id`
pub fn scope(&self, profile_identity_id: i64) -> Vec<String> {
let mut scope = Vec::new();
match self.database.records_scope(None) {
Ok(result) => {
for auth in result
.iter()
.filter(|this| this.profile_identity_id == profile_identity_id)
{
scope.push(auth.scope.clone())
}
}
Err(_) => todo!(),
}
scope
}

/// Get memory item string match request
pub fn get(&self, request: &str) -> Option<memory::Auth> {
self.memory.match_scope(&filter_scope(request))
Expand Down

0 comments on commit f495453

Please sign in to comment.