fix(auth): enforce authentication on write operations and fix CLI token auth
Co-authored-by: jnsgruk <668505+jnsgruk@users.noreply.github.com>
This commit is contained in:
parent
6d0ee869f7
commit
5f4cbf5294
3 changed files with 17 additions and 2 deletions
|
|
@ -40,7 +40,11 @@ impl<'a> TokensClient<'a> {
|
||||||
pub async fn list(&self) -> Result<Vec<Token>> {
|
pub async fn list(&self) -> Result<Vec<Token>> {
|
||||||
let url = self.client.endpoint("api/v1/tokens")?;
|
let url = self.client.endpoint("api/v1/tokens")?;
|
||||||
|
|
||||||
let response = self.client.http_client().get(url).send().await?;
|
let response = self
|
||||||
|
.client
|
||||||
|
.request(reqwest::Method::GET, url)
|
||||||
|
.send()
|
||||||
|
.await?;
|
||||||
|
|
||||||
self.client.handle_response(response).await
|
self.client.handle_response(response).await
|
||||||
}
|
}
|
||||||
|
|
@ -50,7 +54,11 @@ impl<'a> TokensClient<'a> {
|
||||||
.client
|
.client
|
||||||
.endpoint(&format!("api/v1/tokens/{}/revoke", id))?;
|
.endpoint(&format!("api/v1/tokens/{}/revoke", id))?;
|
||||||
|
|
||||||
let response = self.client.http_client().post(url).send().await?;
|
let response = self
|
||||||
|
.client
|
||||||
|
.request(reqwest::Method::POST, url)
|
||||||
|
.send()
|
||||||
|
.await?;
|
||||||
|
|
||||||
self.client.handle_response(response).await
|
self.client.handle_response(response).await
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ use crate::presentation::templates::{
|
||||||
RoasterDetailTemplate, RoasterListTemplate, RoastersTemplate,
|
RoasterDetailTemplate, RoasterListTemplate, RoastersTemplate,
|
||||||
};
|
};
|
||||||
use crate::presentation::views::{ListNavigator, Paginated, RoastView, RoasterView};
|
use crate::presentation::views::{ListNavigator, Paginated, RoastView, RoasterView};
|
||||||
|
use crate::server::auth::AuthenticatedUser;
|
||||||
use crate::server::errors::{ApiError, AppError, map_app_error};
|
use crate::server::errors::{ApiError, AppError, map_app_error};
|
||||||
use crate::server::routes::render_html;
|
use crate::server::routes::render_html;
|
||||||
use crate::server::routes::support::{
|
use crate::server::routes::support::{
|
||||||
|
|
@ -102,6 +103,7 @@ pub(crate) async fn list_roasters(
|
||||||
|
|
||||||
pub(crate) async fn create_roaster(
|
pub(crate) async fn create_roaster(
|
||||||
State(state): State<AppState>,
|
State(state): State<AppState>,
|
||||||
|
_auth_user: AuthenticatedUser,
|
||||||
headers: HeaderMap,
|
headers: HeaderMap,
|
||||||
Query(query): Query<ListQuery>,
|
Query(query): Query<ListQuery>,
|
||||||
payload: FlexiblePayload<NewRoaster>,
|
payload: FlexiblePayload<NewRoaster>,
|
||||||
|
|
@ -138,6 +140,7 @@ pub(crate) async fn get_roaster(
|
||||||
|
|
||||||
pub(crate) async fn update_roaster(
|
pub(crate) async fn update_roaster(
|
||||||
State(state): State<AppState>,
|
State(state): State<AppState>,
|
||||||
|
_auth_user: AuthenticatedUser,
|
||||||
Path(id): Path<String>,
|
Path(id): Path<String>,
|
||||||
Json(payload): Json<UpdateRoaster>,
|
Json(payload): Json<UpdateRoaster>,
|
||||||
) -> Result<Json<Roaster>, ApiError> {
|
) -> Result<Json<Roaster>, ApiError> {
|
||||||
|
|
@ -161,6 +164,7 @@ pub(crate) async fn update_roaster(
|
||||||
|
|
||||||
pub(crate) async fn delete_roaster(
|
pub(crate) async fn delete_roaster(
|
||||||
State(state): State<AppState>,
|
State(state): State<AppState>,
|
||||||
|
_auth_user: AuthenticatedUser,
|
||||||
headers: HeaderMap,
|
headers: HeaderMap,
|
||||||
Path(id): Path<String>,
|
Path(id): Path<String>,
|
||||||
Query(query): Query<ListQuery>,
|
Query(query): Query<ListQuery>,
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ use crate::domain::roasters::RoasterSortKey;
|
||||||
use crate::domain::roasts::{NewRoast, Roast, RoastSortKey, RoastWithRoaster};
|
use crate::domain::roasts::{NewRoast, Roast, RoastSortKey, RoastWithRoaster};
|
||||||
use crate::presentation::templates::{RoastDetailTemplate, RoastListTemplate, RoastsTemplate};
|
use crate::presentation::templates::{RoastDetailTemplate, RoastListTemplate, RoastsTemplate};
|
||||||
use crate::presentation::views::{ListNavigator, Paginated, RoastView, RoasterOptionView};
|
use crate::presentation::views::{ListNavigator, Paginated, RoastView, RoasterOptionView};
|
||||||
|
use crate::server::auth::AuthenticatedUser;
|
||||||
use crate::server::errors::{ApiError, AppError, map_app_error};
|
use crate::server::errors::{ApiError, AppError, map_app_error};
|
||||||
use crate::server::routes::render_html;
|
use crate::server::routes::render_html;
|
||||||
use crate::server::routes::support::{
|
use crate::server::routes::support::{
|
||||||
|
|
@ -96,6 +97,7 @@ pub(crate) async fn roast_page(
|
||||||
|
|
||||||
pub(crate) async fn create_roast(
|
pub(crate) async fn create_roast(
|
||||||
State(state): State<AppState>,
|
State(state): State<AppState>,
|
||||||
|
_auth_user: AuthenticatedUser,
|
||||||
headers: HeaderMap,
|
headers: HeaderMap,
|
||||||
Query(query): Query<ListQuery>,
|
Query(query): Query<ListQuery>,
|
||||||
payload: FlexiblePayload<NewRoastSubmission>,
|
payload: FlexiblePayload<NewRoastSubmission>,
|
||||||
|
|
@ -154,6 +156,7 @@ pub(crate) async fn get_roast(
|
||||||
|
|
||||||
pub(crate) async fn delete_roast(
|
pub(crate) async fn delete_roast(
|
||||||
State(state): State<AppState>,
|
State(state): State<AppState>,
|
||||||
|
_auth_user: AuthenticatedUser,
|
||||||
headers: HeaderMap,
|
headers: HeaderMap,
|
||||||
Path(id): Path<String>,
|
Path(id): Path<String>,
|
||||||
Query(query): Query<ListQuery>,
|
Query(query): Query<ListQuery>,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue