Ejemplo n.º 1
0
 private async void OnIdTokenChanged(object sender, IdTokenEventArgs e)
 {
     if (!isProcessingIdToken)
     {
         isProcessingIdToken = true;
         if (e.Auth.CurrentUser is null)
         {
             wasDonor = false;
         }
         else
         {
             var  claims = (await e.Auth.CurrentUser.GetIdTokenResultAsync(false)).Claims;
             bool isAdmin = false, isPartner = false;
             if (claims.TryGetValue("admin", out var a))
             {
                 isAdmin = (bool)a !;
             }
             if (claims.TryGetValue("partner", out var p))
             {
                 isPartner = (bool)p !;
             }
             isDonor = !(isAdmin || isPartner);
             if ((isDonor != wasDonor) || CurrentState.Location.OriginalString == "//Loading")
             {
                 await OnCurrentUserChanged(DonorUser.Current);
             }
             wasDonor = isDonor;
         }
         DonorUser.SetCurrent(e.Auth.CurrentUser?.Uid);
         isProcessingIdToken = false;
     }
 }
Ejemplo n.º 2
0
 private async void OnIdTokenChanged(IdTokenEventArgs e, bool forceRefresh)
 {
     if (!isProcessingIdToken)
     {
         isProcessingIdToken = true;
         if (e.Auth.CurrentUser is null)
         {
             wasEmailVerified = wasPartner = false;
         }
         else
         {
             var claims = (await e.Auth.CurrentUser.GetIdTokenResultAsync(forceRefresh)).Claims;
             if (claims.TryGetValue("partner", out var p))
             {
                 isPartner = (bool)p !;
             }
             if (claims.TryGetValue("teamRole", out var tR))
             {
                 teamRole = (string?)tR;
             }
             if (claims.TryGetValue("teamUID", out var tU))
             {
                 teamUID = (string?)tU;
             }
             if (claims.TryGetValue("email_verified", out var eV))
             {
                 emailVerified = (bool)eV !;
             }
             if ((emailVerified != wasEmailVerified) ||
                 (isPartner != wasPartner) ||
                 (teamUID != previousTeamUID) ||
                 (teamRole != previousTeamRole) ||
                 CurrentState.Location.OriginalString == "//Loading")
             {
                 await OnCurrentUserUpdated(PartnerUser.Current);
             }
             (wasEmailVerified, wasPartner)      = (emailVerified, isPartner);
             (previousTeamUID, previousTeamRole) = (teamUID, teamRole);
         }
         PartnerUser.SetCurrent(e.Auth.CurrentUser?.Uid);
         isProcessingIdToken = false;
     }
 }
Ejemplo n.º 3
0
 private void OnIdTokenChanged(object sender, IdTokenEventArgs e) => OnIdTokenChanged(e, false);