@@ -609,13 +609,10 @@ fn validate_discord_team_members_have_discord_ids(data: &Data, errors: &mut Vec<
609
609
} ) ;
610
610
}
611
611
612
- /// Ensure every member of a team that has a Zulip group either has a Zulip id or an email address
612
+ /// Ensure every member of a team that has a Zulip group has a Zulip id
613
613
fn validate_zulip_users ( data : & Data , zulip : & ZulipApi , errors : & mut Vec < String > ) {
614
- let ( by_id, by_email) = match zulip. get_users ( ) {
615
- Ok ( u) => (
616
- u. iter ( ) . map ( |u| u. user_id ) . collect :: < HashSet < _ > > ( ) ,
617
- u. into_iter ( ) . map ( |u| u. email ) . collect :: < HashSet < _ > > ( ) ,
618
- ) ,
614
+ let by_id = match zulip. get_users ( ) {
615
+ Ok ( u) => u. iter ( ) . map ( |u| u. user_id ) . collect :: < HashSet < _ > > ( ) ,
619
616
Err ( err) => {
620
617
errors. push ( format ! ( "couldn't verify Zulip users: {}" , err) ) ;
621
618
return ;
@@ -633,8 +630,15 @@ fn validate_zulip_users(data: &Data, zulip: &ZulipApi, errors: &mut Vec<String>)
633
630
. members ( )
634
631
. iter ( )
635
632
. filter_map ( |m| match m {
636
- ZulipGroupMember :: Id ( i) if !by_id. contains ( i) => Some ( format ! ( "{}" , i) ) ,
637
- ZulipGroupMember :: Email ( e) if !by_email. contains ( e) => Some ( e. clone ( ) ) ,
633
+ ZulipGroupMember :: MemberWithId { github, zulip_id }
634
+ if !by_id. contains ( zulip_id) =>
635
+ {
636
+ Some ( github. clone ( ) )
637
+ }
638
+ ZulipGroupMember :: JustId ( zulip_id) if !by_id. contains ( zulip_id) => {
639
+ Some ( format ! ( "ID: {zulip_id}" ) )
640
+ }
641
+ ZulipGroupMember :: MemberWithoutId { github } => Some ( github. clone ( ) ) ,
638
642
_ => None ,
639
643
} )
640
644
. collect :: < HashSet < _ > > ( ) ;
@@ -649,7 +653,7 @@ fn validate_zulip_users(data: &Data, zulip: &ZulipApi, errors: &mut Vec<String>)
649
653
} )
650
654
}
651
655
652
- /// Ensure every member of a team that has a Zulip group either has a Zulip id or an email address
656
+ /// Ensure every member of a team that has a Zulip group either has a Zulip id
653
657
fn validate_zulip_group_ids ( data : & Data , errors : & mut Vec < String > ) {
654
658
wrapper ( data. teams ( ) , errors, |team, errors| {
655
659
let groups = team. zulip_groups ( data) ?;
@@ -659,11 +663,9 @@ fn validate_zulip_group_ids(data: &Data, errors: &mut Vec<String>) {
659
663
}
660
664
wrapper ( team. members ( data) . iter ( ) , errors, |member, _| {
661
665
if let Some ( member) = data. person ( member) {
662
- if member. zulip_id ( ) . is_none ( )
663
- && matches ! ( member. email( ) , Email :: Missing | Email :: Disabled )
664
- {
666
+ if member. zulip_id ( ) . is_none ( ) {
665
667
bail ! (
666
- "person `{}` in '{}' is a member of a Zulip user group but has no Zulip id nor an enabled email address " ,
668
+ "person `{}` in '{}' is a member of a Zulip user group but has no Zulip id" ,
667
669
member. github( ) ,
668
670
team. name( )
669
671
) ;
0 commit comments