[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-merchant-backoffice] 01/02: prevent login dialog to be updated wi
From: |
gnunet |
Subject: |
[taler-merchant-backoffice] 01/02: prevent login dialog to be updated with secret-token |
Date: |
Mon, 31 May 2021 16:59:51 +0200 |
This is an automated email from the git hooks/post-receive script.
sebasjm pushed a commit to branch master
in repository merchant-backoffice.
commit bb786c93be9f5ff2a8f7d30bbaf14d6f4f4f5a1d
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Mon May 31 11:57:15 2021 -0300
prevent login dialog to be updated with secret-token
---
.../frontend/src/components/exception/login.tsx | 26 ++++++++++++----------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/packages/frontend/src/components/exception/login.tsx
b/packages/frontend/src/components/exception/login.tsx
index 611af1a..e7c9802 100644
--- a/packages/frontend/src/components/exception/login.tsx
+++ b/packages/frontend/src/components/exception/login.tsx
@@ -31,18 +31,20 @@ interface Props {
onConfirm: (backend: string, token?: string) => void;
}
+function getTokenValuePart(t?: string): string | undefined {
+ if (!t) return t
+ const match = /secret-token:(.*)/.exec(t);
+ if (!match || !match[1]) return undefined;
+ return match[1]
+}
+
+
export function LoginModal({ onConfirm, withMessage }: Props): VNode {
const { url: backendUrl, token: baseToken } = useBackendContext()
const { admin, token: instanceToken } = useInstanceContext()
- const [token, setToken] = useState(!admin ? baseToken : instanceToken || '')
+ const currentToken = getTokenValuePart(!admin ? baseToken : instanceToken ||
'')
+ const [token, setToken] = useState(currentToken)
- function updateToken(token:string) {
- const value = token && token.startsWith('secret-token:')?
- token.substring('secret-token:'.length) : token
-
- setToken(`secret-token:${value}`)
- }
-
const [url, setURL] = useState(backendUrl)
const i18n = useTranslator()
@@ -63,7 +65,7 @@ export function LoginModal({ onConfirm, withMessage }:
Props): VNode {
<p class="control is-expanded">
<input class="input" type="text" placeholder="set new url"
name="id"
value={url}
- onKeyPress={e => e.keyCode === 13 ? onConfirm(url, token ?
token : undefined) : null}
+ onKeyPress={e => e.keyCode === 13 ? onConfirm(url, token ?
`secret-token:${token}` : undefined) : null}
onInput={(e): void => setURL(e?.currentTarget.value)}
/>
</p>
@@ -78,9 +80,9 @@ export function LoginModal({ onConfirm, withMessage }:
Props): VNode {
<div class="field">
<p class="control is-expanded">
<input class="input" type="text" placeholder={"set new
token"} name="token"
- onKeyPress={e => e.keyCode === 13 ? onConfirm(url, token ?
token : undefined) : null}
+ onKeyPress={e => e.keyCode === 13 ? onConfirm(url, token ?
`secret-token:${token}` : undefined) : null}
value={token}
- onInput={(e): void => updateToken(e?.currentTarget.value)}
+ onInput={(e): void => setToken(e?.currentTarget.value)}
/>
</p>
</div>
@@ -89,7 +91,7 @@ export function LoginModal({ onConfirm, withMessage }:
Props): VNode {
</section>
<footer class="modal-card-foot " style={{ justifyContent: 'flex-end',
border: '1px solid', borderTop: 0 }} >
<button class="button is-info" onClick={(): void => {
- onConfirm(url, token ? token : undefined);
+ onConfirm(url, token ? `secret-token:${token}` : undefined);
}} ><Translate>Confirm</Translate></button>
</footer>
</div>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.