webdav fix

This commit is contained in:
2025-10-31 20:10:42 +01:00
parent 175387f0d3
commit e9731ec691
9 changed files with 110 additions and 8 deletions
+6 -1
View File
@@ -13,6 +13,7 @@ use crate::{
models::{NewWebdavToken, WebdavToken},
schema::webdav_tokens,
state::PgPooledConnection,
tenants::{apply_webdav_token_prefix, clear_webdav_token_prefix},
};
const TOKEN_PREFIX_LENGTH: usize = 12;
@@ -84,6 +85,7 @@ pub fn find_active_token_by_secret(
}
let prefix = &secret[..TOKEN_PREFIX_LENGTH];
apply_webdav_token_prefix(conn, prefix)?;
let mut query = webdav_tokens::table
.filter(webdav_tokens::user_id.eq(user_id))
.filter(webdav_tokens::token_prefix.eq(prefix))
@@ -101,7 +103,10 @@ pub fn find_active_token_by_secret(
query = query.filter(webdav_tokens::tenant_id.eq(tenant_id));
}
let candidates = query.load::<WebdavToken>(conn)?;
let load_result = query.load::<WebdavToken>(conn);
let clear_result = clear_webdav_token_prefix(conn);
clear_result?;
let candidates = load_result?;
for token in candidates {
if verify_token_secret(secret, &token.token_hash)? {