[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-typescript-core] branch master updated: fix #10065
From: |
Admin |
Subject: |
[taler-typescript-core] branch master updated: fix #10065 |
Date: |
Wed, 04 Jun 2025 20:21:48 +0200 |
This is an automated email from the git hooks/post-receive script.
sebasjm pushed a commit to branch master
in repository taler-typescript-core.
The following commit(s) were added to refs/heads/master by this push:
new a72a55653 fix #10065
a72a55653 is described below
commit a72a556539edb00e773e559d6283c5fc719375e2
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Wed Jun 4 15:21:39 2025 -0300
fix #10065
---
.../aml-backoffice-ui/src/pages/decision/Rules.tsx | 31 ++++++++++++++++++----
packages/taler-util/src/http-client/exchange.ts | 2 +-
packages/taler-util/src/types-taler-exchange.ts | 11 ++++++++
3 files changed, 38 insertions(+), 6 deletions(-)
diff --git a/packages/aml-backoffice-ui/src/pages/decision/Rules.tsx
b/packages/aml-backoffice-ui/src/pages/decision/Rules.tsx
index dfae4183c..09b8ab998 100644
--- a/packages/aml-backoffice-ui/src/pages/decision/Rules.tsx
+++ b/packages/aml-backoffice-ui/src/pages/decision/Rules.tsx
@@ -126,6 +126,7 @@ export function Rules({
}): VNode {
const { i18n } = useTranslationContext();
const { config } = useExchangeApiContext();
+ const [request] = useCurrentDecisionRequest()
let newPaytoParsed: PaytoUri | undefined;
const isNewAccountAWallet =
@@ -137,20 +138,30 @@ export function Rules({
(newPaytoParsed.targetType === "taler-reserve" ||
newPaytoParsed.targetType === "taler-reserve-http");
+ // info may be undefined if this is a new account
+ // for which we use the payto:// parameter
+ const isWallet = request.original?.is_wallet ?? isNewAccountAWallet;
+
const measures = useServerMeasures();
const rootMeasures =
!measures || measures instanceof TalerError || measures.type === "fail"
? undefined
: measures.body.roots;
- const [request] = useCurrentDecisionRequest()
- // info may be undefined if this is a new account
- // for which we use the payto:// parameter
- const isWallet = request.original?.is_wallet ?? isNewAccountAWallet;
+ const defaultRules =
+ (!measures || measures instanceof TalerError || measures.type === "fail"
+ ? []
+ : measures.body.default_rules).filter((r) => {
+ return isWallet
+ ? WALLET_RULES.includes(r.operation_type)
+ : BANK_RULES.includes(r.operation_type);
+ });
+
return (
<div>
<UpdateRulesForm
rootMeasures={rootMeasures}
+ defaultRules={defaultRules}
config={config.config}
isWallet={isWallet ?? false}
limits={request.original?.limits ?? DEFAULT_LIMITS_WHEN_NEW_ACCOUNT}
@@ -240,12 +251,14 @@ function UpdateRulesForm({
config,
limits,
rootMeasures,
+ defaultRules,
isWallet,
}: {
config: ExchangeVersionResponse;
limits: LegitimizationRuleSet;
isWallet: boolean | undefined;
rootMeasures: AvailableMeasureSummary["roots"] | undefined;
+ defaultRules: KycRule[]
}): VNode {
const { i18n } = useTranslationContext();
const [request, updateRequest] =
@@ -402,7 +415,15 @@ function UpdateRulesForm({
}}
class="m-4 rounded-md w-fit border-0 px-3 py-2 text-center text-sm
bg-indigo-700 text-white shadow-sm hover:bg-indigo-700 disabled:bg-gray-600"
>
- <i18n.Translate>Reset rules</i18n.Translate>
+ <i18n.Translate>Reset rules to current state</i18n.Translate>
+ </button>
+ <button
+ onClick={() => {
+ setRules(defaultRules);
+ }}
+ class="m-4 rounded-md w-fit border-0 px-3 py-2 text-center text-sm
bg-indigo-700 text-white shadow-sm hover:bg-indigo-700 disabled:bg-gray-600"
+ >
+ <i18n.Translate>Set rules to default</i18n.Translate>
</button>
<button
onClick={() => {
diff --git a/packages/taler-util/src/http-client/exchange.ts
b/packages/taler-util/src/http-client/exchange.ts
index 31b42b0ce..3aa49afe0 100644
--- a/packages/taler-util/src/http-client/exchange.ts
+++ b/packages/taler-util/src/http-client/exchange.ts
@@ -122,7 +122,7 @@ export type KycProcessClientInformationWithEtag =
* However, we should merge it with the other exchange client implementation.
*/
export class TalerExchangeHttpClient {
- public static readonly PROTOCOL_VERSION = "27:0:2";
+ public static readonly PROTOCOL_VERSION = "28:0:2";
private httpLib: HttpRequestLibrary;
private cacheEvictor: CacheEvictor<TalerExchangeCacheEviction>;
private preventCompression: boolean;
diff --git a/packages/taler-util/src/types-taler-exchange.ts
b/packages/taler-util/src/types-taler-exchange.ts
index cd0feba9b..73f696839 100644
--- a/packages/taler-util/src/types-taler-exchange.ts
+++ b/packages/taler-util/src/types-taler-exchange.ts
@@ -1671,6 +1671,16 @@ export interface AvailableMeasureSummary {
// Available KYC checks.
checks: { [check_name: string]: KycCheckInformation };
+
+ // Default KYC rules. This is the set of KYC rules that
+ // applies by default to new "accounts". Note that some
+ // rules only apply to wallets, while others only apply to
+ // bank accounts. The returned array is the union of all
+ // possible rules, applications should consider the
+ // operation_type to filter for rules that actually
+ // apply to a specific situation.
+ // @since protocol **v28**.
+ default_rules: KycRule[];
}
export interface MeasureInformation {
@@ -2598,6 +2608,7 @@ export const codecForAvailableMeasureSummary =
.property("checks", codecForMap(codecForKycCheckInformation()))
.property("programs", codecForMap(codecForAmlProgramRequirement()))
.property("roots", codecForMap(codecForMeasureInformation()))
+ .property("default_rules", codecForList(codecForKycRules()))
.build("TalerExchangeApi.AvailableMeasureSummary");
export const codecForAmlProgramRequirement = (): Codec<AmlProgramRequirement>
=>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-typescript-core] branch master updated: fix #10065,
Admin <=