Project

General

Profile

Actions

Feature #7529

closed

Guarantee GET/SIP 'action' played only once

Added by Carsten Rose over 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
High
Assignee:
Carsten Rose
Target version:
Start date:
21.12.2018
Due date:
% Done:

0%

Estimated time:
Discuss:
Prio Planung:
Vote:

Description

SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - protection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action')

  • Etliche Seiten werden durch einen Link mit einem 'action' GET Parameter aufgerufen um dann eine spezielle Aktion auszufuehren. Z.B. dem Senden einer Email oder verschieben von Antraegen in einen Pool.
  • Ruft man dann auf der gleichen Seite ein Formular auf und schliesst es wieder, wird via Browser History die vorhergehende Seite aufgerufen, mit dem SIP Parameter in dem die Action Anweisung steht. Damit wird dann alles nochmal ausgefuehrt.

Idee: action Elemente werden via Post uebergeben (neuer POST Paramter SIP_POST, der Inhalte enthaelt). Die sind dann nicht in der Browserhistory


Related issues

Has duplicate QFQ - Feature #6767: Link als Form 'POST'ClosedCarsten Rose19.09.2018

Actions
Actions #2

Updated by Carsten Rose over 5 years ago

  • Anstelle von <a href='...'>..</a> gibt es neu zusaetzlich <form action='..'><button submit></form>.
  • URL Parameter die mit einem '+' beginnen, werden getrennt als zusaetzliche SIP im FORM ueberheben:

'p:{{pageAlias:T}}&grId=100&+action=sendmail|t:Sende Mail'

Actions #3

Updated by Carsten Rose over 5 years ago

  • Target version changed from 18.12.1 to 18.12.3
Actions #4

Updated by Carsten Rose over 5 years ago

  • Target version changed from 18.12.3 to 146
Actions #5

Updated by Carsten Rose over 5 years ago

Neue Idee: die SIP Parameter die mit '' beginnen (also nicht '+') koennen nur einmal aus dem SIP Store gelesen werden-. Nach dem ersten Lesen werden sie geloescht (unset). Fuer QFQ 'action' Parameter sollte das reichen. Das muesste einfach zu implementieren sein. Dann gibt es auch keine 'Browser: Reload Form' Fragen.

Weitere Variante: {{<key>:<store>:<sanatize>:<escape>:<default>}} - es gibt einen neuen Store 'wipe sip'. Wird ein Wert daraus gelesen, ist er anschliessend im SIP Store geloescht. Bsp. '{{action:W}}' - weitere Zugriffe via '{{action:S}}' liefern dann ein 'not found'.

Actions #6

Updated by Carsten Rose over 5 years ago

Actions #8

Updated by Carsten Rose over 5 years ago

  • Subject changed from SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip to SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - rotection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action')
  • Fuer SIP Parameter waere es gut, wenn man sie nach dem auslesen loeschen koennte.
  • Das koennte auch fuer andere Parameter sinnvoll sein.
  • Pro Store muss das unterschiedlich implementiert sein.
  • STORE_SIP, STORE_USER muss in der Session loeschen
  • Das koennte mit einer speziellen Sanatize Class getriggert werden.

Anwendung:

  • Eine Seite wird mit action=sendmail aufgerufen.
  • Nach dem senden der Mail wird 'action' geloescht (nicht nur leer, sondern vollstaendig entfernt).
  • Sollte die Seite durch Back/Forward erneut aufgerufen werden, oder in einem neuen Tab aufgemacht werden, ist der action Parameter leer.
Actions #9

Updated by Carsten Rose about 5 years ago

  • Subject changed from SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - rotection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action') to SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - protection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action')
  • Target version changed from 146 to CodingDays2019
Actions #10

Updated by Carsten Rose about 5 years ago

  • Target version changed from CodingDays2019 to next6
Actions #11

Updated by Carsten Rose about 5 years ago

  • Status changed from New to In Progress
Actions #12

Updated by Carsten Rose about 5 years ago

Summary

  • Variante 1: hidden Form parameter.
  • Variante 2: Store wipe - Duplikat von SIP - nach dem ersten Aufruf eines Values wird dieser geloescht.
  • Variante 3: Spezielle Escape/Action Class, die dafuer sorgt das der Wert aus dem angegebenen Store geloescht wird.

Es wird versucht Variante 3 zu implentieren.

Actions #13

Updated by Carsten Rose about 5 years ago

  • Subject changed from SIP / History: Form close opens the last page via Browser history - problem if there is an action encoded in the sip - protection not to trigger action multiple times: clear SIP Parameter after usage (e.g. 'action') to Guarantee GET/SIP 'action' played only once
  • Description updated (diff)
Actions #14

Updated by Carsten Rose about 5 years ago

  • Status changed from In Progress to Closed
Actions #15

Updated by Carsten Rose about 5 years ago

  • Target version changed from next6 to 19.6.2
Actions

Also available in: Atom PDF