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; } }
public static void SetTaxRate_ByDonor_Expect_AccessDenied() { IUser loggedInUser = new DonorUser(); var taStore = new TaxRateStore(loggedInUser); var ex = Assert.Throws <UnauthorizedAccessException>(() => taStore.Set(0)); Assert.That(ex.Message, Is.EqualTo("Access Denied!")); }