gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]