@@ -23,7 +23,7 @@ use crate::{
2323 metastore:: MetastoreError ,
2424 storage:: ObjectStorageError ,
2525 users:: dashboards:: { DASHBOARDS , Dashboard , Tile , validate_dashboard_id} ,
26- utils:: { get_hash, get_user_from_request} ,
26+ utils:: { get_hash, get_user_from_request, is_admin } ,
2727} ;
2828use actix_web:: {
2929 HttpRequest , HttpResponse , Responder ,
@@ -104,8 +104,10 @@ pub async fn update_dashboard(
104104) -> Result < impl Responder , DashboardError > {
105105 let user_id = get_hash ( & get_user_from_request ( & req) ?) ;
106106 let dashboard_id = validate_dashboard_id ( dashboard_id. into_inner ( ) ) ?;
107+ let is_admin = is_admin ( & req) . map_err ( |e| DashboardError :: Custom ( e. to_string ( ) ) ) ?;
108+
107109 let mut existing_dashboard = DASHBOARDS
108- . get_dashboard_by_user ( dashboard_id, & user_id)
110+ . get_dashboard_by_user ( dashboard_id, & user_id, is_admin )
109111 . await
110112 . ok_or ( DashboardError :: Metadata (
111113 "Dashboard does not exist or user is not authorized" ,
@@ -189,9 +191,13 @@ pub async fn delete_dashboard(
189191 dashboard_id : Path < String > ,
190192) -> Result < HttpResponse , DashboardError > {
191193 let user_id = get_hash ( & get_user_from_request ( & req) ?) ;
194+ let is_admin = is_admin ( & req) . map_err ( |e| DashboardError :: Custom ( e. to_string ( ) ) ) ?;
195+
192196 let dashboard_id = validate_dashboard_id ( dashboard_id. into_inner ( ) ) ?;
193197
194- DASHBOARDS . delete_dashboard ( & user_id, dashboard_id) . await ?;
198+ DASHBOARDS
199+ . delete_dashboard ( & user_id, dashboard_id, is_admin)
200+ . await ?;
195201
196202 Ok ( HttpResponse :: Ok ( ) . finish ( ) )
197203}
@@ -207,9 +213,10 @@ pub async fn add_tile(
207213
208214 let user_id = get_hash ( & get_user_from_request ( & req) ?) ;
209215 let dashboard_id = validate_dashboard_id ( dashboard_id. into_inner ( ) ) ?;
216+ let is_admin = is_admin ( & req) . map_err ( |e| DashboardError :: Custom ( e. to_string ( ) ) ) ?;
210217
211218 let mut dashboard = DASHBOARDS
212- . get_dashboard_by_user ( dashboard_id, & user_id)
219+ . get_dashboard_by_user ( dashboard_id, & user_id, is_admin )
213220 . await
214221 . ok_or ( DashboardError :: Unauthorized ) ?;
215222
0 commit comments