@@ -296,26 +296,39 @@ defmodule Livebook.Hubs.TeamClient do
296296 end
297297 end
298298
299- def handle_call ( { :check_full_access , groups } , _caller , % { deployment_group_id: id } = state ) do
300- case fetch_deployment_group ( id , state ) do
301- { :ok , deployment_group } ->
302- { :reply , authorized_group? ( deployment_group . authorization_groups , groups ) , state }
303-
304- _ ->
305- { :reply , false , state }
299+ def handle_call ( { :check_full_access , groups } , _caller , state ) do
300+ if id = state . deployment_group_id do
301+ case fetch_deployment_group ( id , state ) do
302+ { :ok , deployment_group } ->
303+ { :reply ,
304+ not deployment_group . teams_auth or
305+ not deployment_group . groups_auth or
306+ authorized_group? ( deployment_group . authorization_groups , groups ) , state }
307+
308+ _ ->
309+ { :reply , false , state }
310+ end
311+ else
312+ { :reply , true , state }
306313 end
307314 end
308315
309- def handle_call ( { :check_app_access , groups , slug } , _caller , % { deployment_group_id: id } = state ) do
310- with { :ok , deployment_group } <- fetch_deployment_group ( id , state ) ,
311- { :ok , app_deployment } <- fetch_app_deployment_from_slug ( slug , state ) do
312- app_access? =
313- authorized_group? ( deployment_group . authorization_groups , groups ) or
314- authorized_group? ( app_deployment . authorization_groups , groups )
316+ def handle_call ( { :check_app_access , groups , slug } , _caller , state ) do
317+ if id = state . deployment_group_id do
318+ with { :ok , deployment_group } <- fetch_deployment_group ( id , state ) ,
319+ { :ok , app_deployment } <- fetch_app_deployment_from_slug ( slug , state ) do
320+ app_access? =
321+ not deployment_group . teams_auth or
322+ not deployment_group . groups_auth or
323+ ( authorized_group? ( deployment_group . authorization_groups , groups ) or
324+ authorized_group? ( app_deployment . authorization_groups , groups ) )
315325
316- { :reply , app_access? , state }
326+ { :reply , app_access? , state }
327+ else
328+ _ -> { :reply , false , state }
329+ end
317330 else
318- _ -> { :reply , false , state }
331+ { :reply , true , state }
319332 end
320333 end
321334
@@ -492,6 +505,7 @@ defmodule Livebook.Hubs.TeamClient do
492505 clustering: nullify ( deployment_group . clustering ) ,
493506 url: nullify ( deployment_group . url ) ,
494507 teams_auth: deployment_group . teams_auth ,
508+ groups_auth: deployment_group . groups_auth ,
495509 authorization_groups: authorization_groups
496510 }
497511 end
@@ -531,6 +545,7 @@ defmodule Livebook.Hubs.TeamClient do
531545 clustering: atomize ( deployment_group_updated . clustering ) ,
532546 url: nullify ( deployment_group_updated . url ) ,
533547 teams_auth: deployment_group_updated . teams_auth ,
548+ groups_auth: deployment_group_updated . groups_auth ,
534549 authorization_groups: authorization_groups
535550 }
536551 end
@@ -659,7 +674,6 @@ defmodule Livebook.Hubs.TeamClient do
659674
660675 defp handle_event ( :deployment_group_created , % Teams.DeploymentGroup { } = deployment_group , state ) do
661676 Teams.Broadcasts . deployment_group_created ( deployment_group )
662-
663677 put_deployment_group ( state , deployment_group )
664678 end
665679
@@ -673,6 +687,16 @@ defmodule Livebook.Hubs.TeamClient do
673687
674688 defp handle_event ( :deployment_group_updated , % Teams.DeploymentGroup { } = deployment_group , state ) do
675689 Teams.Broadcasts . deployment_group_updated ( deployment_group )
690+
691+ with { :ok , current_deployment_group } <- fetch_deployment_group ( deployment_group . id , state ) do
692+ if state . deployment_group_id == deployment_group . id and
693+ ( current_deployment_group . authorization_groups != deployment_group . authorization_groups or
694+ current_deployment_group . groups_auth != deployment_group . groups_auth or
695+ current_deployment_group . teams_auth != deployment_group . teams_auth ) do
696+ Teams.Broadcasts . server_authorization_updated ( deployment_group )
697+ end
698+ end
699+
676700 put_deployment_group ( state , deployment_group )
677701 end
678702
0 commit comments