Search 1.9 billion lines of Odoo code on GitHub

fso_frst_personemail

Author: Datadialog - Michael Karrer
License: no license
Branch: dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/elliptic-6.5.3
Repository: OpenAT/online
Dependencies: fso_base, fso_merge, and mail
Languages: Markdown (112, 13.3%), Python (644, 76.8%), and XML (83, 9.9%)
Other branches: dependabot/npm_and_yarn/addons-loaded/website_tools/static/lib/iframe-resizer/jquery-3.5.0, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/cached-path-relative-1.0.2, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/cached-path-relative-1.1.0, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/decode-uri-component-0.2.2, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/elliptic-6.5.4, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/hosted-git-info-2.8.9, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/ini-1.3.8, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/lodash-4.17.19, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/lodash-4.17.21, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/node-sass-4.13.1, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/node-sass-7.0.0, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/path-parse-1.0.7, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/qs-6.5.3, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/shell-quote-1.7.3, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/tar-2.2.2, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/ua-parser-js-0.7.24, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/ua-parser-js-0.7.33, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/undefsafe-2.0.5, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/y18n-3.2.2, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/aws-sdk-2.1030.0, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/bl-1.2.3, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/cached-path-relative-1.1.0, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/css-what-2.1.3, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/elliptic-6.5.4, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/handlebars-4.7.7, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/hosted-git-info-2.8.9, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/i-0.3.7, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/lodash.merge-4.6.2, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/node-sass-4.14.1, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/shell-quote-1.7.3, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/tar-2.2.2, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/xmldom-0.5.0, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/y18n-3.2.2, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/yargs-parser-13.1.2, dependabot/npm_and_yarn/addons-own/website_widget_manager/static/lib/iframe-resizer/jquery-3.5.0, dependabot/pip/TOOLS/babel-2.9.1, dependabot/pip/TOOLS/jinja2-2.11.3, dependabot/pip/TOOLS/lxml-4.6.3, dependabot/pip/TOOLS/lxml-4.6.5, dependabot/pip/TOOLS/lxml-4.9.1, dependabot/pip/TOOLS/mako-1.2.2, dependabot/pip/TOOLS/pillow-6.2.0, dependabot/pip/TOOLS/pillow-8.3.2, dependabot/pip/TOOLS/pillow-9.0.1, dependabot/pip/TOOLS/pillow-9.3.0, dependabot/pip/TOOLS/psutil-5.6.6, dependabot/pip/TOOLS/pyopenssl-17.5.0, dependabot/pip/TOOLS/python-ldap-3.4.0, dependabot/pip/TOOLS/pyyaml-5.1, dependabot/pip/TOOLS/pyyaml-5.4, dependabot/pip/TOOLS/reportlab-3.5.55, dependabot/pip/TOOLS/requests-2.20.0, dependabot/pip/TOOLS/werkzeug-0.15.3, dependabot/pip/TOOLS/werkzeug-2.2.3, dependabot/pip/addons-own/fso_rest_api/sphinx_doc/babel-2.9.1, dependabot/pip/addons-own/fso_rest_api/sphinx_doc/certifi-2022.12.7, dependabot/pip/addons-own/fso_rest_api/sphinx_doc/jinja2-2.11.3, dependabot/pip/addons-own/fso_rest_api/sphinx_doc/urllib3-1.26.5, dependabot/pip/babel-2.9.1, dependabot/pip/certifi-2022.12.7, dependabot/pip/jinja2-2.11.3, dependabot/pip/lxml-4.6.3, dependabot/pip/lxml-4.6.5, dependabot/pip/lxml-4.9.1, dependabot/pip/mako-1.2.2, dependabot/pip/pillow-8.3.2, dependabot/pip/pillow-9.0.1, dependabot/pip/pillow-9.3.0, dependabot/pip/psutil-5.6.6, dependabot/pip/pyyaml-5.1, dependabot/pip/pyyaml-5.4, dependabot/pip/reportlab-3.5.55, dependabot/pip/urllib3-1.24.2, dependabot/pip/urllib3-1.26.5, dependabot/pip/werkzeug-0.15.3, dependabot/pip/werkzeug-2.2.3, fso-api-payments, fso_website_email-anchor, fso_website_email-delete_modal, fso_website_email-print_field_button, getresponse, google_tag_manager, o12, o8, o8r436-patch, product-gui-update, rest_api, website_forum_imagedialog, website_image_edit-resize, website_map, website_sale_donate_ppt_inline, and worflow_per_subscription

<h1>Fragen bzw. Anforderungen</h1> <p>Da wir mehrere E-Mails pro Person im FRST unterstützen ergeben sich folgende Fragen bzw. Anforderungen:</p> <p>Webformulare und externe Systeme: - Welche der E-Mail Adressen zeigen wir bei Webformularen bei denen nur eine E-Mail Adresse möglich ist - Welche der E-Mail Adressen wird für den Datenaustausch mit externen Systemen verwendet die nur eine E-Mail pro Person unterstützen.</p> <p>Datenimport - Vorgehen beim Import von extern Personendaten mit nur einem Feld &#39;email&#39; bei der Person</p> <p>E-Mail als Login bzw Identitätsnachweis? - Soll der Account/Login (res.user) unabhängig von der/den E-Mail Adressen gehalten werden - Wenn mehrere E-Mails bei einer Person hinterlegt sind: Ist es sicher allen Adressen Tokens zu senden?</p> <h1>Wichtige Info</h1> <p>Die E-Mail stellt mittlerweile so etwas wie den Primary-Key oder anders gesagt die Identität einer Person dar. Sie ist in den meisten Fällen auch der Schlüssel zu jedweden Datenzugang (z.B.: vorausgefüllte Webformulare via Token Link). Es muss Ihr daher eine besondere Aufmerksamkeit bei der Anlage, Änderung und beim Zusammenlegen zukommen.</p> <p>Folgende Regeln würden uns die Arbeit erleichtern und die System-Sicherheit wesentlich verbessern: - Personen mit unterschiedlichen (Haupt) E-Mail Adressen dürfen nicht automatisch zusammengelegt werden - Eine Änderung der Hauptemailadresse kann nur durch - einen angemeldeten Web-User (via Token-Link oder FSO-Account), - oder eine Sachbearbeiter in FRST veranlasst werden - Eine Änderung der Hauptemailadresse führt zu einem E-Mail Umzug - Der odoo Account geht IMMER auf die Hauptemailadresse - FS-Tokens werden nur für bestätigte Hauptemailadressen erzeugt und sind nur für best. HEA gültig!</p> <p>Eine Ausnahme besteht wenn wir eine neue E-Mail Adresse bekommen und die bisherige Hauptemailadressen noch keinerlei Verlinkungen (odoo Account, PersonEmailGruppe) hat und auch nicht per DOI bestätigt wurde. In diesem Fall wird die aktueller E-Mail einfach zur neuen Hauptemailadresse.</p> <h2>Erzwungene Zusammenlegung von Personen mit unterschiedlichen Hauptemailadressen</h2> <p>Werden vom FRST-Sachbearbeiter Personen mit untersch. Hauptemailadressen zusammengelegt wird versucht die verbeleibende Hauptemailadressen automatisch zu bestimmen. Ist dies nicht eindeutig möglich muss der Sachbearbeiter die Hauptemailadressen festlegen um einen Merge durchführen zu können.</p> <p>Folgende Regeln könnte man für die Bestimmung der neuen Hauptemailadresse (HEA) anwenden: 1. Nur einer der Beiden hat eine erzwungene Hauptemailadresse = neue HEA 2. Nur einer der Beiden hat einen verknüpften odoo Account = neue HEA 3. Nur einer der Beiden hat einen verknüpften odoo Account mit FS-Tokens = neue HEA 4. Nur einer der Beiden hat einen vernküfpten odoo Account mit FS-Tokens der für ein Login verwendet wurde = neue HEA 5. Nur einer der Beiden hat PersonEmailGruppen = neue HEA 6. Keine der Beiden hat eine erzwungene HEA, einen odoo Account oder PersonEmailGruppen -&gt; Die Neuere wird zur HEA 7. Keine der Regeln trifft zu = Sachbearbeiter muss HEA festlegen</p> <p>Diese Regeln werden einfach von oben nach unten durchgearbeitet! </p> <h3>Beispiel:</h3> <p>Regel 1: Person<em>A HEA und Person</em>B HEA haben beide keine erzwungene HEA = weiter zu Regel 2:\ Regel 2: Person<em>A HEA und Person</em>B HEA haben beide einen odoo Account = weiter zu Regel 3:\ Regel 3: Person<em>A HEA hat FS-Token, Person</em>B HEA hat keine = Person<em>A HEA wird zur HEA nach dem Merge Person</em>B HEA bleibt als PersonEmail erhalten da die E-Mails ja unterschiedlich sind</p> <h1>Ziele</h1> <ul> <li>Automatische Berechnung einer Hauptemailadresse</li> <li>(Todo) Manuelle (erzwungene) Festlegung der Hauptemailadresse</li> <li>Das Feld &#39;email&#39; bei res.partner stimmt immer mit dem Feld &#39;email&#39; der Haupt-PersonEmail überein</li> <li>Die Haupt-PersonEmail wird beim res.partner verlinkt (für Comfort und Kontrolle)</li> <li>Wir berechnen die Haupt-PersonEmail immer nach dem selben Schema!\ (Es gibt daher keine gesonderten Regeln je nachdem <em>woher</em> die Daten oder Datenänderungen kommen. Ob die Daten von einem Import, einer Änderung im GUI oder durch den syncer angelegt oder verändert wurden ist also irrelevant)</li> <li>PersonEmail repariert sich wenn möglich selbst (z.B.: nach einem Merge oder bei bestehenden Datenfehlern)</li> <li>(Todo) Die Ermöglichung eines Umzuges einer PersonEmail</li> </ul> <h1>Annahmen zu PersonEmail</h1> <p>Die folgenden Annahmen müssen noch von Harald und Sebastian bestätigt werden! - Das Feld &#39;email&#39; darf nach der Anlage nicht mehr geändert werden! Lediglich durch einen Umzug\ (= Merge + Delete + Double-Opt-In) sollte man eine PersonEmail ändern können - Das Feld &#39;partner<em>id&#39; darf nach der Anlage nicht geändert werden (AUSNAHME: Merge) - Nur die Felder &#39;gueltig</em>von&#39; und &#39;gueltig<em>bis&#39; und &#39;HEA erzwingen&#39; dürfen nach der Anlage noch geändert werden\ (abgesehen von berechneten Feldern wie &#39;main</em>email&#39;, &#39;state&#39; oder &#39;last<em>email</em>update&#39;) - Es gibt immer nur eine Hauptemailadresse pro Person - Eine E-Mail darf pro Person nur einmal vorhanden sein - Eine E-Mail kann mehrfach vorkommen wenn sie bei untersch. Personen zugeordnet ist</p> <h1>Informationen zur Umsetzung</h1> <p>Um die Hauptemailadresse bestimmen zu können wird das Feld &#39;last<em>email</em>update&#39; zu PersonEmail hinzugefügt. Dieses Feld ermöglicht eine Sortierung der PersonEmails einer Person. Die gültige PersonEmail mit dem neuesten &#39;last<em>email</em>update&#39; Datum ist die Hauptemailadresse.</p> <h2>Berechnung der Hauptemailadresse</h2> <p>Die Hauptemailadresse ist von &#39;last<em>email</em>update&#39; und &#39;forced<em>main</em>address&#39; abhängig. Während &#39;forced<em>main</em>address&#39; vom Benutzer oder dem System vergeben wird um die Hauptadresse zu erzwingen wird &#39;last<em>email</em>update&#39; unter folgenden Umständen aktualisiert: - Erstellung einer neuen gültigen PersonEmail (state: active) - Statusänderung einer bestehenden PersonEmail von &quot;inactive&quot; zu &quot;active&quot;?\ (&#39;gueltig<em>von&#39;, &#39;gueltig</em>bis&#39; und das Format der E-Mail Adresse müssen passen) - Falls eine Änderung am Feld &#39;email&#39; zulässig ist wird nur wenn sich die email tatsächlich verändert hat &#39;last<em>email</em>update&#39; aktualisiert. (Diese Regel kann komplett entfallen wenn wir Änderungen am Feld &#39;email&#39; nicht zulassen sondern nur den Umzug anbieten!)</p> <h2>UMZUG: Änderung einer E-Mail Adresse</h2> <p>Wird die Hauptemailadresse geändert muss eine Umzug der PersonEmailGruppe(n) und des odoo-user-logins stattfinden. Dieser könnte in etwa so aussehen:</p> <ol> <li>Änderung des Feldes email bei res.partner -&gt; Führt zu der Anlage einer neuen PersonEmail</li> <li>Anlage einer neuen PersonEmail die zur neue Hauptemailadresse wird (status: &#39;active&#39;)</li> <li>Kopie aller (nicht bereits vorhandenen) PersonEmailGruppe(n)\ WICHTIG: Aktive PersonEmailGruppe(n) (im Status active oder approved) werden mit dem Status &#39;waiting<em>for</em>email_approval&#39; erstellt, und sind daher inaktiv bis die neue E-Mail Adresse bestätigt wird.</li> <li>Aussendung einer DOI E-Mail zur Bestätigung der neuen PersonEmail (Durch FRST oder FSON)</li> <li>Nach dem Klick auf den Bestätigungslink wechselt der Status der neuen PersonEmail von &#39;active&#39; zu &#39;approved&#39;! Weiters werden alle PersonEmailGruppen im Status &quot;waiting<em>for</em>email<em>approval&quot; auf den status &#39;active&#39; oder &#39;approved&#39; geändert (je nachdem was in ihrem Feld &#39;bestaetigt</em>am_um&#39; und bei dem zugehörigen Gruppenordner für das DOI eingestellt ist)</li> </ol> <p>Falls es keine relevanten Verknüpfungen gibt kann der Bestätigungsablauf/Umzug auch übersprungen werden.</p> <h3>E-Mail UMZUG für odoo-login-user und FS-Tokens</h3> <p>Besteht für die Person (res.partner) bereits ein odoo user (Login) muss dieser beim Umzug einer E-Mail Adresse berücksichtigt werden. Es muss also - geprüft werden ob die neue E-Mail Adresse noch als login verfügbar ist - der aktuelle odoo-login gesperrt werden - alle aktuellen fs-tokens müssen gesperrt werden</p> <p>Sobald die neue E-Mail Adresse bestätigt ist wird - das login des odoo res.user auf die neue E-Mail geändert - Die Tokens wieder aktiviert</p> <h1>Alternative Umsetzung von E-Mail Änderungen</h1> <p>Falls durch das obige Schema (zu viele) ungewollte Umzüge entstehen könnte man auch entscheiden das ein Umzug nur durch - den Sachbearbeiter in FRST mittels eigens dafür zu programmierenden GUI - oder bei Änderungen an der e-mail wenn ein User in FSO eingeloggt ist (z.B.: via Token) - oder einem PersonenMerge in FRST der sich trotz abweichender E-Mails sicher ist die Personen zusammen zu legen durchgeführt werden.</p> <p>Änderungen an dem Feld &#39;email&#39; bei res.partner würden dann zwar zu einer neuen PersonEmail führen diese würde jedoch nicht automatisch zur neuen Hauptemailadresse werden sofern für die bestehende Hauptemailadresse Gruppenanmeldungen oder ein odoo-login existieren.</p>