@@ -636,6 +636,10 @@ describe('[Users]', function () {
636
636
let deactivatedUser ;
637
637
let user2 ;
638
638
let user2Credentials ;
639
+ let user3 ;
640
+ let user3Credentials ;
641
+ let group ;
642
+ let inviteToken ;
639
643
640
644
before ( async ( ) => {
641
645
const username = `deactivated_${ Date . now ( ) } ${ apiUsername } ` ;
@@ -694,18 +698,49 @@ describe('[Users]', function () {
694
698
before ( async ( ) => {
695
699
user2 = await createUser ( { joinDefaultChannels : false } ) ;
696
700
user2Credentials = await login ( user2 . username , password ) ;
701
+ user3 = await createUser ( { joinDefaultChannels : false } ) ;
702
+ user3Credentials = await login ( user3 . username , password ) ;
697
703
} ) ;
698
704
699
- after ( async ( ) => {
700
- await deleteUser ( deactivatedUser ) ;
701
- await deleteUser ( user ) ;
702
- await deleteUser ( user2 ) ;
703
- user2 = undefined ;
705
+ before ( 'Create a group' , async ( ) => {
706
+ group = (
707
+ await createRoom ( {
708
+ type : 'p' ,
709
+ name : `group.test.${ Date . now ( ) } -${ Math . random ( ) } ` ,
710
+ } )
711
+ ) . body . group ;
712
+ } ) ;
704
713
705
- await updatePermission ( 'view-outside-room' , [ 'admin' , 'owner' , 'moderator' , 'user' ] ) ;
706
- await updateSetting ( 'API_Apply_permission_view-outside-room_on_users-list' , false ) ;
714
+ before ( 'Create invite link' , async ( ) => {
715
+ inviteToken = (
716
+ await request . post ( api ( 'findOrCreateInvite' ) ) . set ( credentials ) . send ( {
717
+ rid : group . _id ,
718
+ days : 0 ,
719
+ maxUses : 0 ,
720
+ } )
721
+ ) . body . _id ;
707
722
} ) ;
708
723
724
+ after ( 'Remove invite link' , async ( ) =>
725
+ request
726
+ . delete ( api ( `removeInvite/${ inviteToken } ` ) )
727
+ . set ( credentials )
728
+ . send ( ) ,
729
+ ) ;
730
+
731
+ after ( ( ) =>
732
+ Promise . all ( [
733
+ clearCustomFields ( ) ,
734
+ deleteUser ( deactivatedUser ) ,
735
+ deleteUser ( user ) ,
736
+ deleteUser ( user2 ) ,
737
+ deleteUser ( user3 ) ,
738
+ deleteRoom ( { type : 'p' , roomId : group . _id } ) ,
739
+ updatePermission ( 'view-outside-room' , [ 'admin' , 'owner' , 'moderator' , 'user' ] ) ,
740
+ updateSetting ( 'API_Apply_permission_view-outside-room_on_users-list' , false ) ,
741
+ ] ) ,
742
+ ) ;
743
+
709
744
it ( 'should query all users in the system' , ( done ) => {
710
745
request
711
746
. get ( api ( 'users.list' ) )
@@ -823,6 +858,70 @@ describe('[Users]', function () {
823
858
824
859
await request . get ( api ( 'users.list' ) ) . set ( user2Credentials ) . expect ( 'Content-Type' , 'application/json' ) . expect ( 403 ) ;
825
860
} ) ;
861
+
862
+ it ( 'should exclude inviteToken in the user item for privileged users even when fields={inviteToken:1} is specified' , async ( ) => {
863
+ await request
864
+ . post ( api ( 'useInviteToken' ) )
865
+ . set ( user2Credentials )
866
+ . send ( { token : inviteToken } )
867
+ . expect ( 200 )
868
+ . expect ( 'Content-Type' , 'application/json' )
869
+ . expect ( ( res ) => {
870
+ expect ( res . body ) . to . have . property ( 'success' , true ) ;
871
+ expect ( res . body ) . to . have . property ( 'room' ) ;
872
+ expect ( res . body . room ) . to . have . property ( 'rid' , group . _id ) ;
873
+ } ) ;
874
+
875
+ await request
876
+ . get ( api ( 'users.list' ) )
877
+ . set ( credentials )
878
+ . expect ( 'Content-Type' , 'application/json' )
879
+ . query ( {
880
+ fields : JSON . stringify ( { inviteToken : 1 } ) ,
881
+ sort : JSON . stringify ( { inviteToken : - 1 } ) ,
882
+ count : 100 ,
883
+ } )
884
+ . expect ( 200 )
885
+ . expect ( ( res ) => {
886
+ expect ( res . body ) . to . have . property ( 'success' , true ) ;
887
+ expect ( res . body ) . to . have . property ( 'users' ) ;
888
+ res . body . users . forEach ( ( user ) => {
889
+ expect ( user ) . to . not . have . property ( 'inviteToken' ) ;
890
+ } ) ;
891
+ } ) ;
892
+ } ) ;
893
+
894
+ it ( 'should exclude inviteToken in the user item for normal users even when fields={inviteToken:1} is specified' , async ( ) => {
895
+ await updateSetting ( 'API_Apply_permission_view-outside-room_on_users-list' , false ) ;
896
+ await request
897
+ . post ( api ( 'useInviteToken' ) )
898
+ . set ( user3Credentials )
899
+ . send ( { token : inviteToken } )
900
+ . expect ( 200 )
901
+ . expect ( ( res ) => {
902
+ expect ( res . body ) . to . have . property ( 'success' , true ) ;
903
+ expect ( res . body ) . to . have . property ( 'room' ) ;
904
+ expect ( res . body . room ) . to . have . property ( 'rid' , group . _id ) ;
905
+ } ) ;
906
+
907
+ await request
908
+ . get ( api ( 'users.list' ) )
909
+ . set ( user3Credentials )
910
+ . expect ( 'Content-Type' , 'application/json' )
911
+ . query ( {
912
+ fields : JSON . stringify ( { inviteToken : 1 } ) ,
913
+ sort : JSON . stringify ( { inviteToken : - 1 } ) ,
914
+ count : 100 ,
915
+ } )
916
+ . expect ( 200 )
917
+ . expect ( ( res ) => {
918
+ expect ( res . body ) . to . have . property ( 'success' , true ) ;
919
+ expect ( res . body ) . to . have . property ( 'users' ) ;
920
+ res . body . users . forEach ( ( user ) => {
921
+ expect ( user ) . to . not . have . property ( 'inviteToken' ) ;
922
+ } ) ;
923
+ } ) ;
924
+ } ) ;
826
925
} ) ;
827
926
828
927
describe ( '[/users.setAvatar]' , ( ) => {
0 commit comments