@@ -650,20 +650,15 @@ async fn test_admin_logout_deletes_tokens(cptestctx: &ControlPlaneTestContext) {
650
650
)
651
651
. await ;
652
652
653
- // TODO: we are using the fetch my tokens endpoint, authed as user1, to
654
- // check the tokens, but we will likely have a list tokens for user endpoint
655
- // (accessible to silo admins only) so they can feel good about there being
656
- // no tokens or sessions for a given user
657
-
658
653
// no tokens for user 1 yet
659
- let tokens = get_tokens_as ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
654
+ let tokens = get_user_tokens ( testctx, user1. id ) . await ;
660
655
assert ! ( tokens. is_empty( ) ) ;
661
656
662
657
// create a token for user1
663
658
get_device_token ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
664
659
665
660
// now there is a token for user1
666
- let tokens = get_tokens_as ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
661
+ let tokens = get_user_tokens ( testctx, user1. id ) . await ;
667
662
assert_eq ! ( tokens. len( ) , 1 ) ;
668
663
669
664
let logout_url = format ! ( "/v1/users/{}/logout" , user1. id) ;
@@ -679,7 +674,7 @@ async fn test_admin_logout_deletes_tokens(cptestctx: &ControlPlaneTestContext) {
679
674
. await
680
675
. expect ( "User has no perms, can't delete another user's tokens" ) ;
681
676
682
- let tokens = get_tokens_as ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
677
+ let tokens = get_user_tokens ( testctx, user1. id ) . await ;
683
678
assert_eq ! ( tokens. len( ) , 1 ) ;
684
679
685
680
// user 1 can hit the logout endpoint for themselves
@@ -693,14 +688,14 @@ async fn test_admin_logout_deletes_tokens(cptestctx: &ControlPlaneTestContext) {
693
688
. await
694
689
. expect ( "User 1 should be able to delete their own tokens" ) ;
695
690
696
- let tokens = get_tokens_as ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
691
+ let tokens = get_user_tokens ( testctx, user1. id ) . await ;
697
692
assert ! ( tokens. is_empty( ) ) ;
698
693
699
694
// create another couple of tokens for user1
700
695
get_device_token ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
701
696
get_device_token ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
702
697
703
- let tokens = get_tokens_as ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
698
+ let tokens = get_user_tokens ( testctx, user1. id ) . await ;
704
699
assert_eq ! ( tokens. len( ) , 2 ) ;
705
700
706
701
// make user 2 fleet admin to show that fleet admin does not inherit
@@ -724,7 +719,7 @@ async fn test_admin_logout_deletes_tokens(cptestctx: &ControlPlaneTestContext) {
724
719
. await
725
720
. expect ( "Fleet admin is not sufficient to delete another user's tokens" ) ;
726
721
727
- let tokens = get_tokens_as ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
722
+ let tokens = get_user_tokens ( testctx, user1. id ) . await ;
728
723
assert_eq ! ( tokens. len( ) , 2 ) ;
729
724
730
725
// make user 2 a silo admin so they can delete user 1's tokens
@@ -748,22 +743,26 @@ async fn test_admin_logout_deletes_tokens(cptestctx: &ControlPlaneTestContext) {
748
743
. expect ( "Silo admin should be able to delete user 1's tokens" ) ;
749
744
750
745
// they're gone!
751
- let tokens = get_tokens_as ( testctx, AuthnMode :: SiloUser ( user1. id ) ) . await ;
746
+ let tokens = get_user_tokens ( testctx, user1. id ) . await ;
752
747
assert ! ( tokens. is_empty( ) ) ;
753
748
}
754
749
755
750
async fn get_tokens_priv (
756
751
testctx : & ClientTestContext ,
757
752
) -> Vec < views:: DeviceAccessToken > {
758
- get_tokens_as ( testctx, AuthnMode :: PrivilegedUser ) . await
753
+ NexusRequest :: object_get ( testctx, "/v1/me/access-tokens" )
754
+ . authn_as ( AuthnMode :: PrivilegedUser )
755
+ . execute_and_parse_unwrap :: < ResultsPage < views:: DeviceAccessToken > > ( )
756
+ . await
757
+ . items
759
758
}
760
759
761
- async fn get_tokens_as (
760
+ async fn get_user_tokens (
762
761
testctx : & ClientTestContext ,
763
- authn_mode : AuthnMode ,
762
+ user_id : Uuid ,
764
763
) -> Vec < views:: DeviceAccessToken > {
765
764
NexusRequest :: object_get ( testctx, "/v1/me/access-tokens" )
766
- . authn_as ( authn_mode )
765
+ . authn_as ( AuthnMode :: SiloUser ( user_id ) )
767
766
. execute_and_parse_unwrap :: < ResultsPage < views:: DeviceAccessToken > > ( )
768
767
. await
769
768
. items
0 commit comments