Add API tokens support #9

Merged
pierre merged 40 commits from api into master 2024-04-23 17:04:45 +00:00
2 changed files with 12 additions and 1 deletions
Showing only changes of commit 579e54f7d3 - Show all commits

View File

@ -210,6 +210,14 @@ pub async fn update_rights(id: TokenID, rights: TokenRights) -> anyhow::Result<(
Ok(()) Ok(())
} }
/// Set last_used value of token
pub async fn refresh_last_used(id: TokenID) -> anyhow::Result<()> {
let mut token = get_single(id).await?;
token.last_used = time();
token.save()?;
Ok(())
}
/// Delete an API token /// Delete an API token
pub async fn delete(id: TokenID) -> anyhow::Result<()> { pub async fn delete(id: TokenID) -> anyhow::Result<()> {
let path = AppConfig::get().api_token_definition_path(id); let path = AppConfig::get().api_token_definition_path(id);

View File

@ -114,7 +114,10 @@ impl FromRequest for ApiAuthExtractor {
// TODO : manually validate all checks // TODO : manually validate all checks
if token.should_update_last_activity() { if token.should_update_last_activity() {
// TODO : update last activity if let Err(e) = api_tokens::refresh_last_used(token.id).await {
log::error!("Could not update token last activity! {e}");
return Err(ErrorBadRequest("!"));
}
} }
Ok(ApiAuthExtractor { token, claims }) Ok(ApiAuthExtractor { token, claims })