@@ -16,7 +16,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
1616
1717 assert [ % { "id" => ^ id , "inserted_at" => _ , "updated_at" => _ } ] =
1818 conn
19- |> add_access_token ( user , "private" )
19+ |> add_access_token ( user , "private:admin " )
2020 |> get ( ~p" /api/backends" )
2121 |> json_response ( 200 )
2222 end
@@ -27,12 +27,19 @@ defmodule LogflareWeb.Api.BackendControllerTest do
2727
2828 assert [ result ] =
2929 conn
30- |> add_access_token ( user , "private" )
30+ |> add_access_token ( user , "private:admin " )
3131 |> get ( ~p" /api/backends?#{ % { metadata: % { my: "field" , data: true } } } " )
3232 |> json_response ( 200 )
3333
3434 assert result [ "id" ] == backend . id
3535 end
36+
37+ test "admin scope is required" , % { conn: conn , user: user } do
38+ assert conn
39+ |> add_access_token ( user , "private" )
40+ |> get ( ~p" /api/backends" )
41+ |> response ( 401 ) == ~s| {"error":"Unauthorized"}|
42+ end
3643 end
3744
3845 describe "show/2" do
@@ -41,7 +48,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
4148
4249 response =
4350 conn
44- |> add_access_token ( user , "private" )
51+ |> add_access_token ( user , "private:admin " )
4552 |> get ( "/api/backends/#{ backend . token } " )
4653 |> json_response ( 200 )
4754
@@ -53,10 +60,19 @@ defmodule LogflareWeb.Api.BackendControllerTest do
5360 invalid_user = insert ( :user )
5461
5562 conn
56- |> add_access_token ( invalid_user , "private" )
63+ |> add_access_token ( invalid_user , "private:admin " )
5764 |> get ( "/api/backends/#{ backend . token } " )
5865 |> response ( 404 )
5966 end
67+
68+ test "admin scope is required" , % { conn: conn , user: user } do
69+ backend = insert ( :backend , user: user )
70+
71+ assert conn
72+ |> add_access_token ( user , "private" )
73+ |> get ( "/api/backends/#{ backend . token } " )
74+ |> response ( 401 ) == ~s| {"error":"Unauthorized"}|
75+ end
6076 end
6177
6278 describe "create/2" do
@@ -65,7 +81,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
6581
6682 response =
6783 conn
68- |> add_access_token ( user , "private" )
84+ |> add_access_token ( user , "private:admin " )
6985 |> post ( "/api/backends" , % {
7086 name: name ,
7187 type: "webhook" ,
@@ -84,7 +100,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
84100
85101 conn =
86102 conn
87- |> add_access_token ( user , "private" )
103+ |> add_access_token ( user , "private:admin " )
88104 |> post ( "/api/backends" , % {
89105 name: name ,
90106 type: "postgres" ,
@@ -117,7 +133,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
117133
118134 conn =
119135 conn
120- |> add_access_token ( user , "private" )
136+ |> add_access_token ( user , "private:admin " )
121137 |> post ( "/api/backends" , % {
122138 name: name ,
123139 type: "clickhouse" ,
@@ -159,7 +175,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
159175
160176 conn =
161177 conn
162- |> add_access_token ( user , "private" )
178+ |> add_access_token ( user , "private:admin " )
163179 |> post ( "/api/backends" , % {
164180 name: name ,
165181 type: "datadog" ,
@@ -188,7 +204,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
188204
189205 conn =
190206 conn
191- |> add_access_token ( user , "private" )
207+ |> add_access_token ( user , "private:admin " )
192208 |> post ( "/api/backends" , % {
193209 name: name ,
194210 type: "elastic" ,
@@ -218,7 +234,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
218234
219235 conn =
220236 conn
221- |> add_access_token ( user , "private" )
237+ |> add_access_token ( user , "private:admin " )
222238 |> post ( "/api/backends" , % {
223239 name: name ,
224240 type: "loki" ,
@@ -246,7 +262,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
246262 test "returns 422 on missing arguments" , % { conn: conn , user: user } do
247263 resp =
248264 conn
249- |> add_access_token ( user , "private" )
265+ |> add_access_token ( user , "private:admin " )
250266 |> post ( "/api/backends" )
251267 |> json_response ( 422 )
252268
@@ -256,7 +272,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
256272 test "returns 422 on bad arguments" , % { conn: conn , user: user } do
257273 resp =
258274 conn
259- |> add_access_token ( user , "private" )
275+ |> add_access_token ( user , "private:admin " )
260276 |> post ( "/api/backends" , % { name: 123 } )
261277 |> json_response ( 422 )
262278
@@ -268,7 +284,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
268284
269285 response =
270286 conn
271- |> add_access_token ( user , "private" )
287+ |> add_access_token ( user , "private:admin " )
272288 |> post ( "/api/backends" , % {
273289 name: name ,
274290 type: "clickhouse" ,
@@ -289,7 +305,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
289305
290306 response =
291307 conn
292- |> add_access_token ( user , "private" )
308+ |> add_access_token ( user , "private:admin " )
293309 |> post ( "/api/backends" , % {
294310 name: name ,
295311 type: "clickhouse" ,
@@ -300,6 +316,13 @@ defmodule LogflareWeb.Api.BackendControllerTest do
300316 assert response [ "name" ] == name
301317 assert response [ "default_ingest?" ] == false
302318 end
319+
320+ test "admin scope is required" , % { conn: conn , user: user } do
321+ assert conn
322+ |> add_access_token ( user , "private" )
323+ |> post ( "/api/backends" , % { name: TestUtils . random_string ( ) , type: "webhook" } )
324+ |> response ( 401 ) == ~s| {"error":"Unauthorized"}|
325+ end
303326 end
304327
305328 describe "update/2" do
@@ -312,7 +335,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
312335
313336 response =
314337 conn
315- |> add_access_token ( user , "private" )
338+ |> add_access_token ( user , "private:admin " )
316339 |> patch ( "/api/backends/#{ backend . token } " , % { name: name } )
317340 |> response ( 204 )
318341
@@ -324,7 +347,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
324347 backend = insert ( :backend , user: user )
325348
326349 conn
327- |> add_access_token ( invalid_user , "private" )
350+ |> add_access_token ( invalid_user , "private:admin " )
328351 |> patch ( "/api/backends/#{ backend . token } " , % { name: TestUtils . random_string ( ) } )
329352 |> response ( 404 )
330353 end
@@ -334,7 +357,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
334357
335358 resp =
336359 conn
337- |> add_access_token ( user , "private" )
360+ |> add_access_token ( user , "private:admin " )
338361 |> patch ( "/api/backends/#{ backend . token } " , % { name: 123 } )
339362 |> json_response ( 422 )
340363
@@ -346,13 +369,13 @@ defmodule LogflareWeb.Api.BackendControllerTest do
346369 source = insert ( :source , user: user , default_ingest_backend_enabled?: true )
347370
348371 conn
349- |> add_access_token ( user , "private" )
372+ |> add_access_token ( user , "private:admin " )
350373 |> patch ( "/api/backends/#{ backend . token } " , % { default_ingest?: true , source_id: source . id } )
351374 |> response ( 204 )
352375
353376 response =
354377 conn
355- |> add_access_token ( user , "private" )
378+ |> add_access_token ( user , "private:admin " )
356379 |> get ( "/api/backends/#{ backend . token } " )
357380 |> json_response ( 200 )
358381
@@ -370,7 +393,7 @@ defmodule LogflareWeb.Api.BackendControllerTest do
370393
371394 response =
372395 conn
373- |> add_access_token ( user , "private" )
396+ |> add_access_token ( user , "private:admin " )
374397 |> patch ( "/api/backends/#{ backend . token } " , % { default_ingest?: true } )
375398 |> json_response ( 422 )
376399
@@ -380,6 +403,15 @@ defmodule LogflareWeb.Api.BackendControllerTest do
380403 }
381404 }
382405 end
406+
407+ test "admin scope is required" , % { conn: conn , user: user } do
408+ backend = insert ( :backend , user: user )
409+
410+ assert conn
411+ |> add_access_token ( user , "private" )
412+ |> patch ( "/api/backends/#{ backend . token } " , % { name: TestUtils . random_string ( ) } )
413+ |> response ( 401 ) == ~s| {"error":"Unauthorized"}|
414+ end
383415 end
384416
385417 describe "delete/2" do
@@ -391,12 +423,12 @@ defmodule LogflareWeb.Api.BackendControllerTest do
391423 backend = insert ( :backend , user: user )
392424
393425 assert conn
394- |> add_access_token ( user , "private" )
426+ |> add_access_token ( user , "private:admin " )
395427 |> delete ( "/api/backends/#{ backend . token } " , % { name: name } )
396428 |> response ( 204 )
397429
398430 assert conn
399- |> add_access_token ( user , "private" )
431+ |> add_access_token ( user , "private:admin " )
400432 |> get ( "/api/backends/#{ backend . token } " )
401433 |> response ( 404 )
402434 end
@@ -409,9 +441,18 @@ defmodule LogflareWeb.Api.BackendControllerTest do
409441 backend = insert ( :backend , user: user )
410442
411443 assert conn
412- |> add_access_token ( invalid_user , "private" )
444+ |> add_access_token ( invalid_user , "private:admin " )
413445 |> delete ( "/api/backends/#{ backend . token } " )
414446 |> response ( 404 )
415447 end
448+
449+ test "admin scope is required" , % { conn: conn , user: user } do
450+ backend = insert ( :backend , user: user )
451+
452+ assert conn
453+ |> add_access_token ( user , "private" )
454+ |> delete ( "/api/backends/#{ backend . token } " )
455+ |> response ( 401 ) == ~s| {"error":"Unauthorized"}|
456+ end
416457 end
417458end
0 commit comments