Project

General

Profile

Actions

Elektronische Signatur » History » Revision 3

« Previous | Revision 3/9 (diff) | Next »
Carsten Rose, 12.04.2021 17:06


Elektronische Signatur

  • Person A loest im Tool eine Email aus, die an Person B gesendet wird.
  • Die Email enthaelt eine URL mit einem zeitlich beschraenktes Einmal-Token.
  • Person B empfaengt die Email und klickt auf dem Link.
  • Bei Aufruf der URL wird entweder ein Form geoeffnet (um weitere Information abzufragen) oder der Link loest direkt eine Action aus das etwas bestaetigt wird.

Approval Mail ausloesen - Page: application

  • QFQ Record: a) Logik um die Approval Mail auszuloesen, b) Den Link anzubieten um das versenden zu starten.
    #
    # {{action:SE::w}}'='sendApprovalMail'
    # {{appId:RE}}
    #
    
    # Logic to send email with AUTH token
    10 {
      # Take care that the SIP variable is cleared after first use.
      sql = SELECT '' FROM (SELECT '') AS fake WHERE '{{action:SE::w}}'='sendApprovalMail'
    
      # Be sure an auth token is defined
      20.sql = UPDATE Application SET auth='{{random:V}}' WHERE auth='' AND id={{appId:S}}
    
      30 {
        sql = SELECT n.text AS _body
                      n.title AS _subject
                      app.auth AS _auth
                      QDATE_FORMAT(app.deadline) AS _deadline
                FROM Note AS n, Application AS app
                WHERE n.reference='Email Template: Approve Mail'
                  AND app.id={{appId:R}}
    
        40.sql = SELECT 'to:<email>|from:<email>|subject:{{subject:R}}|body:{{body}}|grid:<grid>|xid:<xId>' AS _sendmail
      }
    
    }
    
    # Logic to show application status
    100 {
    
      sql = SELECT ...
    
      # Link to initiate email
      110.sql = SELECT 'p:{{pageAlias:T}}&action=sendApprovalMail&appId={{appId:R}}|q:An approval mail will be sent|s|b:Send mail' AS _link
                FROM Application AS app 
                WHERE app.id={{appId:R}}
    }
    
  • Email Template (z.B. Note Record) mit Variablen. Achtung: evtl darf der Text nicht HTML SpecialChar kodiert werden.
    Dear {{name:R}}
    ...
    Please click {{baseUrl:Y}}/index.php?id=confirmation&auth={{auth:R}}.
    ...
    The applicants deadline is {{deadline:R}}.
    ...
    

Approval - Page: approval

  • Seite wird nicht im Menu angezeigt.
  • Seite ist ohne Zugriffsbeschraenkung (fe group) aufrufbar.
    #
    # {{auth:CE:alnumx}}
    # {{action:SE}} = 'approved'
    #
    
    10 {
      sql = SELECT app.id AS _appId
               FROM Application AS app
               WHERE '{{auth:CE:alnumx}}'=app.auth
                 AND NOW()<app.deadline
    
      altsql = SELECT IF('{{auth:R}}'='', 'Invalid URL', 'Unknown or expired token') 
      20 {
        sql = SELECT 'Applicant: ', app.name, ', ', app.firstName, '<br>'
                     , 'Applicaton: ', app.title
                     , 'p:{{pageAlias:T}}&action=approve&appId={{appId:R}}|t:Approve|s|b' AS _link, ' '
                     , 'p:{{pageAlias:T}}&action=deny&appId={{appId:R}}|t:Deny|s|b' AS _link
      }
    }
    

form={{SELECT 'approve' FROM Application AS app WHERE app.auth='{{auth:CE:alnumx}}' AND NOW<app.deadline}}
r={{SELECT app.id FROM Application AS app WHERE app.auth='{{auth:CE:alnumx}}' AND NOW<app.deadline}}

Updated by Carsten Rose almost 3 years ago · 3 revisions