Skip to content

Commit 85ec456

Browse files
committed
Forbid API tokens for /me endpoint
1 parent ab6ea01 commit 85ec456

File tree

2 files changed

+3
-14
lines changed

2 files changed

+3
-14
lines changed

src/controllers/user/me.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use crate::views::{EncodableMe, EncodablePrivateUser, EncodableVersion, OwnedCra
1313

1414
/// Handles the `GET /me` route.
1515
pub fn me(req: &mut dyn RequestExt) -> EndpointResult {
16-
let user_id = req.authenticate()?.user_id();
16+
let user_id = req.authenticate()?.forbid_api_token_auth()?.user_id();
1717
let conn = req.db_conn()?;
1818

1919
let (user, verified, email, verification_sent): (User, Option<bool>, Option<String>, bool) =

src/tests/token.rs

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::{user::UserShowPrivateResponse, RequestHelper, TestApp};
1+
use crate::{RequestHelper, TestApp};
22
use cargo_registry::{
33
models::ApiToken,
44
schema::api_tokens,
@@ -272,17 +272,6 @@ fn revoke_token_success() {
272272
});
273273
}
274274

275-
#[test]
276-
fn token_gives_access_to_me() {
277-
let url = "/api/v1/me";
278-
let (_, anon, user, token) = TestApp::init().with_token();
279-
280-
anon.get(url).assert_forbidden();
281-
282-
let json: UserShowPrivateResponse = token.get(url).good();
283-
assert_eq!(json.user.name, user.as_model().name);
284-
}
285-
286275
#[test]
287276
fn using_token_updates_last_used_at() {
288277
let url = "/api/v1/me";
@@ -293,7 +282,7 @@ fn using_token_updates_last_used_at() {
293282
assert_none!(token.as_model().last_used_at);
294283

295284
// Use the token once
296-
token.get::<EncodableMe>("/api/v1/me").good();
285+
token.search("");
297286

298287
let token: ApiToken =
299288
app.db(|conn| assert_ok!(ApiToken::belonging_to(user.as_model()).first(conn)));

0 commit comments

Comments
 (0)