order
This commit is contained in:
@@ -75,16 +75,11 @@ async fn api_token_crud_flow() -> Result<()> {
|
||||
app.insert_user(username, password, "admin").await?;
|
||||
let access_token = app.login_token(username, password).await?;
|
||||
|
||||
let legacy_set_id = ensure_capability_set_slug(
|
||||
&app,
|
||||
&access_token,
|
||||
"legacy_webdav",
|
||||
LEGACY_WEBDAV_CAPS,
|
||||
)
|
||||
.await?;
|
||||
let legacy_set_id =
|
||||
ensure_capability_set_slug(&app, &access_token, "legacy_webdav", LEGACY_WEBDAV_CAPS)
|
||||
.await?;
|
||||
|
||||
let created =
|
||||
create_token(&app, &access_token, Some("dav"), legacy_set_id, None).await?;
|
||||
let created = create_token(&app, &access_token, Some("dav"), legacy_set_id, None).await?;
|
||||
let token_id = created.info.id;
|
||||
assert_eq!(created.info.label.as_deref(), Some("dav"));
|
||||
assert!(created.info.last_used_at.is_none());
|
||||
@@ -110,13 +105,8 @@ async fn api_token_crud_flow() -> Result<()> {
|
||||
})
|
||||
.await?;
|
||||
|
||||
let readonly_set_id = ensure_capability_set_slug(
|
||||
&app,
|
||||
&access_token,
|
||||
"readonly",
|
||||
READ_ONLY_CAPS,
|
||||
)
|
||||
.await?;
|
||||
let readonly_set_id =
|
||||
ensure_capability_set_slug(&app, &access_token, "readonly", READ_ONLY_CAPS).await?;
|
||||
|
||||
let readonly_token =
|
||||
create_token(&app, &access_token, Some("readonly"), readonly_set_id, None).await?;
|
||||
@@ -134,9 +124,11 @@ async fn api_token_crud_flow() -> Result<()> {
|
||||
delete_token(&app, &access_token, token_id).await?;
|
||||
|
||||
let listed_after = list_tokens(&app, &access_token).await?;
|
||||
assert_eq!(listed_after.len(), 1);
|
||||
assert_eq!(listed_after[0].id, token_id);
|
||||
assert!(listed_after[0].revoked_at.is_some());
|
||||
let revoked_entry = listed_after
|
||||
.iter()
|
||||
.find(|entry| entry.id == token_id)
|
||||
.expect("revoked token still listed");
|
||||
assert!(revoked_entry.revoked_at.is_some());
|
||||
|
||||
app.cleanup().await?;
|
||||
Ok(())
|
||||
@@ -152,16 +144,11 @@ async fn webdav_basic_auth_uses_api_tokens() -> Result<()> {
|
||||
app.insert_user(username, password, "admin").await?;
|
||||
let access_token = app.login_token(username, password).await?;
|
||||
|
||||
let legacy_set_id = ensure_capability_set_slug(
|
||||
&app,
|
||||
&access_token,
|
||||
"legacy_webdav",
|
||||
LEGACY_WEBDAV_CAPS,
|
||||
)
|
||||
.await?;
|
||||
let legacy_set_id =
|
||||
ensure_capability_set_slug(&app, &access_token, "legacy_webdav", LEGACY_WEBDAV_CAPS)
|
||||
.await?;
|
||||
|
||||
let created =
|
||||
create_token(&app, &access_token, Some("webdav"), legacy_set_id, None).await?;
|
||||
let created = create_token(&app, &access_token, Some("webdav"), legacy_set_id, None).await?;
|
||||
let token_id = created.info.id;
|
||||
|
||||
let router = webdav::create_router().with_state(app.state.clone());
|
||||
@@ -230,13 +217,8 @@ async fn webdav_basic_auth_uses_api_tokens() -> Result<()> {
|
||||
assert_eq!(response.status(), StatusCode::MULTI_STATUS);
|
||||
|
||||
// Token without webdav_read cannot authenticate.
|
||||
let read_only_set_id = ensure_capability_set_slug(
|
||||
&app,
|
||||
&access_token,
|
||||
"documents_read",
|
||||
READ_ONLY_CAPS,
|
||||
)
|
||||
.await?;
|
||||
let read_only_set_id =
|
||||
ensure_capability_set_slug(&app, &access_token, "documents_read", READ_ONLY_CAPS).await?;
|
||||
|
||||
let limited_token =
|
||||
create_token(&app, &access_token, Some("limited"), read_only_set_id, None).await?;
|
||||
@@ -264,8 +246,14 @@ async fn webdav_basic_auth_uses_api_tokens() -> Result<()> {
|
||||
)
|
||||
.await?;
|
||||
|
||||
let upgraded_token =
|
||||
create_token(&app, &access_token, Some("limited-webdav"), limited_set_id, None).await?;
|
||||
let upgraded_token = create_token(
|
||||
&app,
|
||||
&access_token,
|
||||
Some("limited-webdav"),
|
||||
limited_set_id,
|
||||
None,
|
||||
)
|
||||
.await?;
|
||||
assert_eq!(upgraded_token.info.capability_set_id, limited_set_id);
|
||||
|
||||
let upgraded_request = Request::builder()
|
||||
@@ -394,16 +382,17 @@ async fn find_capability_set_slug(
|
||||
slug: &str,
|
||||
) -> Result<Option<Uuid>> {
|
||||
let sets = list_capability_sets(app, access_token).await?;
|
||||
Ok(sets.into_iter().find(|set| set.slug == slug).map(|set| set.id))
|
||||
Ok(sets
|
||||
.into_iter()
|
||||
.find(|set| set.slug == slug)
|
||||
.map(|set| set.id))
|
||||
}
|
||||
|
||||
async fn list_capability_sets(
|
||||
app: &TestApp,
|
||||
access_token: &str,
|
||||
) -> Result<Vec<CapabilitySetSummary>> {
|
||||
let response = app
|
||||
.get("/api/capability-sets", Some(access_token))
|
||||
.await?;
|
||||
let response = app.get("/api/capability-sets", Some(access_token)).await?;
|
||||
assert_eq!(response.status(), StatusCode::OK);
|
||||
let body = body_to_vec(response.into_body()).await?;
|
||||
Ok(serde_json::from_slice(&body)?)
|
||||
|
||||
Reference in New Issue
Block a user