{"en_US": "<t t-name=\"portal.portal_my_security\">\n        <t t-call=\"portal.portal_layout\"><div class=\"o_portal_security_body w-md-75 w-lg-50 pb-5\">\n            <t t-set=\"additional_title\">Security</t>\n            <t t-set=\"no_breadcrumbs\" t-value=\"1\"/>\n            <div class=\"alert alert-danger\" role=\"alert\" t-if=\"get_error(errors)\">\n                <t t-esc=\"errors\"/>\n            </div>\n            <div class=\"d-flex gap-2 my-3\">\n                <a href=\"/my/\" title=\"Go Back\" class=\"btn btn-light px-2\"><i class=\"oi oi-chevron-left\"/></a>\n                <h3 class=\"my-0\">Connection &amp; Security</h3>\n            </div>\n            <section name=\"portal_change_password\">\n                <h4>Change Password</h4>\n                <t t-set=\"path\">password</t>\n                <div class=\"alert alert-success\" role=\"alert\" t-if=\"success and success.get('password')\">\n                    Password Updated!\n                </div>\n                <div class=\"alert alert-danger\" role=\"alert\" t-if=\"get_error(errors, 'password')\">\n                    <t t-esc=\"errors['password']\"/>\n                </div>\n                <form action=\"/my/security\" method=\"post\" class=\"oe_reset_password_form\">\n                    <input type=\"hidden\" name=\"csrf_token\" t-att-value=\"request.csrf_token()\"/>\n                    <input type=\"hidden\" name=\"op\" value=\"password\"/>\n                    <div class=\"mb-4\">\n                        <label for=\"current\">Password:</label>\n                        <div class=\"input-group input-group-sm\">\n                            <input type=\"password\" t-attf-class=\"form-control {{ 'is-invalid' if get_error(errors, 'password.old') else '' }}\" id=\"current\" name=\"old\" autocomplete=\"current-password\" required=\"required\"/>\n                            <button class=\"btn btn-secondary o_show_password rounded-end\" type=\"button\">\n                                <i class=\"fa fa-eye\"/>\n                            </button>\n                            <div class=\"invalid-feedback\">\n                                <t t-out=\"get_error(errors, 'password.old')\"/>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"mb-1 o_caps_lock_warning\">\n                        <label for=\"new\">New Password:</label>\n                        <div class=\"input-group input-group-sm mb-1\">\n                            <input type=\"password\" t-attf-class=\"form-control {{ 'is-invalid' if get_error(errors, 'password.new1') else '' }}\" id=\"new\" name=\"new1\" autocomplete=\"new-password\" required=\"required\"/>\n                            <button type=\"button\" class=\"btn btn-secondary o_show_password rounded-end\">\n                                <i class=\"fa fa-eye\"/>\n                            </button>\n                            <div class=\"invalid-feedback\">\n                                <t t-out=\"get_error(errors, 'password.new1')\"/>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"mb-3\">\n                        <label for=\"new2\">Verify New Password:</label>\n                        <div class=\"input-group input-group-sm\">\n                            <input type=\"password\" t-attf-class=\"form-control {{ 'is-invalid' if get_error(errors, 'password.new2') else '' }}\" id=\"new2\" name=\"new2\" autocomplete=\"new-password\" required=\"required\"/>\n                            <button type=\"button\" class=\"btn btn-secondary o_show_password rounded-end\">\n                                <i class=\"fa fa-eye\"/>\n                            </button>\n                            <div class=\"invalid-feedback\">\n                                <t t-out=\"get_error(errors, 'password.new2')\"/>\n                            </div>\n                        </div>\n                    </div>\n                    <button type=\"submit\" class=\"btn btn-light\">Change Password</button>\n                </form>\n            </section>\n            <section name=\"portal_revoke_all_devices_popup\">\n            <h4>Revoke All Sessions</h4>\n                <t t-set=\"path\"/>\n                    <button type=\"button\" class=\"btn btn-light\" id=\"portal_revoke_all_sessions_popup\">\n                        Log out from all devices\n                    </button>\n            </section>\n            <section t-if=\"debug and allow_api_keys\">\n                <h4>\n                Developer API Keys\n                    <a href=\"https://www.odoo.com/documentation/master/developer/misc/api/external_api.html#api-keys\" target=\"_blank\">\n                        <i title=\"Documentation\" class=\"fa fa-fw o_button_icon fa-info-circle\"/>\n                    </a>\n                </h4>\n                <div>\n                    <table class=\"table o_main_table\">\n                        <thead>\n                            <tr>\n                                <th>Description</th>\n                                <th>Scope</th>\n                                <th>Added On</th>\n                                <th>Expiration Date</th>\n                                <th/>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <t t-foreach=\"request.env.user.api_key_ids\" t-as=\"key\">\n                                <tr>\n                                    <td><span t-field=\"key.name\"/></td>\n                                    <td><span t-field=\"key.scope\"/></td>\n                                    <td><span t-field=\"key.create_date\"/></td>\n                                    <td><span t-field=\"key.expiration_date\"/></td>\n                                    <td>\n                                        <i class=\"fa fa-trash text-danger o_portal_remove_api_key\" type=\"button\" t-att-id=\"key.id\"/>\n                                    </td>\n                                </tr>\n                            </t>\n                        </tbody>\n                    </table>\n                </div>\n                <div>\n                    <button type=\"submit\" class=\"btn btn-light o_portal_new_api_key\">New API Key</button>\n                </div>\n            </section>\n            <section name=\"portal_deactivate_account\" groups=\"base.group_portal\">\n                <h4>Delete Account</h4>\n                <t t-set=\"deactivate_error\" t-value=\"get_error(errors, 'deactivate')\"/>\n                <button class=\"btn btn-light\" data-bs-toggle=\"modal\" data-bs-target=\"#portal_deactivate_account_modal\">\n                    Delete Account\n                </button>\n                <div t-attf-class=\"modal #{'show d-block' if open_deactivate_modal else ''}\" id=\"portal_deactivate_account_modal\" tabindex=\"-1\" role=\"dialog\">\n                    <div class=\"modal-dialog\" role=\"document\">\n                        <div class=\"modal-content\">\n                            <div class=\"modal-header bg-danger\">\n                                <h5 class=\"modal-title\">Are you sure you want to do this?</h5>\n                                <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"/>\n                            </div>\n                            <form action=\"/my/deactivate_account\" method=\"post\" class=\"modal-body\" id=\"portal_deactivate_account_form\">\n                                <div>\n                                    <div class=\"alert alert-danger\" t-esc=\"get_error(errors, 'deactivate.other')\"/>\n                                    <p class=\"text-muted\">\n                                        Disable your account, preventing any further login.<br/>\n                                        <b>\n                                            <i class=\"fa fa-exclamation-triangle text-danger\"/>\n                                            This action cannot be undone.\n                                        </b>\n                                    </p>\n                                    <hr/>\n                                    <p>1. Enter your password to confirm you own this account</p>\n                                    <input name=\"password\" type=\"password\" required=\"1\" t-attf-class=\"form-control #{'is-invalid' if deactivate_error == 'password' else ''}\" placeholder=\"Password\"/>\n                                    <div t-if=\"deactivate_error == 'password'\" class=\"invalid-feedback\">\n                                        Wrong password.\n                                    </div>\n                                    <hr/>\n                                    <p>\n                                        2. Confirm you want to delete your account by\n                                        copying down your login (<t t-esc=\"env.user.login\"/>).\n                                    </p>\n                                    <input name=\"validation\" type=\"text\" required=\"1\" t-attf-class=\"form-control #{'is-invalid' if deactivate_error == 'validation' else ''}\"/>\n                                    <div t-if=\"deactivate_error == 'validation'\" class=\"invalid-feedback\">\n                                        You should enter \"<t t-esc=\"env.user.login\"/>\" to validate your action.\n                                    </div>\n                                    <div class=\"d-flex flex-row align-items-center\">\n                                        <input type=\"checkbox\" name=\"request_blacklist\" id=\"request_blacklist\" checked=\"1\"/>\n                                        <label for=\"request_blacklist\" class=\"ms-2 mw-100 fw-normal mt-3\">\n                                            Put my email and phone in a block list to make sure I'm never contacted again\n                                        </label>\n                                    </div>\n                                </div>\n                                <input type=\"hidden\" name=\"csrf_token\" t-att-value=\"request.csrf_token()\"/>\n                            </form>\n                            <div class=\"modal-footer justify-content-start\">\n                                <input type=\"submit\" class=\"btn btn-danger\" form=\"portal_deactivate_account_form\" value=\"Delete Account\"/>\n                                <button type=\"button\" class=\"btn\" data-bs-dismiss=\"modal\">\n                                    Cancel\n                                </button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </section>\n        </div></t>\n    </t>", "fr_FR": "<t t-name=\"portal.portal_my_security\">\n        <t t-call=\"portal.portal_layout\"><div class=\"o_portal_security_body w-md-75 w-lg-50 pb-5\">\n            <t t-set=\"additional_title\">Sécurité</t>\n            <t t-set=\"no_breadcrumbs\" t-value=\"1\"/>\n            <div class=\"alert alert-danger\" role=\"alert\" t-if=\"get_error(errors)\">\n                <t t-esc=\"errors\"/>\n            </div>\n            <div class=\"d-flex gap-2 my-3\">\n                <a href=\"/my/\" title=\"Retour\" class=\"btn btn-light px-2\"><i class=\"oi oi-chevron-left\"/></a>\n                <h3 class=\"my-0\">Connexion &amp; Sécurité</h3>\n            </div>\n            <section name=\"portal_change_password\">\n                <h4>Modifier le mot de passe</h4>\n                <t t-set=\"path\">mot de passe</t>\n                <div class=\"alert alert-success\" role=\"alert\" t-if=\"success and success.get('password')\">\n                    Mot de passe mis à jour !\n                </div>\n                <div class=\"alert alert-danger\" role=\"alert\" t-if=\"get_error(errors, 'password')\">\n                    <t t-esc=\"errors['password']\"/>\n                </div>\n                <form action=\"/my/security\" method=\"post\" class=\"oe_reset_password_form\">\n                    <input type=\"hidden\" name=\"csrf_token\" t-att-value=\"request.csrf_token()\"/>\n                    <input type=\"hidden\" name=\"op\" value=\"password\"/>\n                    <div class=\"mb-4\">\n                        <label for=\"current\">Mot de passe :</label>\n                        <div class=\"input-group input-group-sm\">\n                            <input type=\"password\" t-attf-class=\"form-control {{ 'is-invalid' if get_error(errors, 'password.old') else '' }}\" id=\"current\" name=\"old\" autocomplete=\"current-password\" required=\"required\"/>\n                            <button class=\"btn btn-secondary o_show_password rounded-end\" type=\"button\">\n                                <i class=\"fa fa-eye\"/>\n                            </button>\n                            <div class=\"invalid-feedback\">\n                                <t t-out=\"get_error(errors, 'password.old')\"/>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"mb-1 o_caps_lock_warning\">\n                        <label for=\"new\">Nouveau mot de passe :</label>\n                        <div class=\"input-group input-group-sm mb-1\">\n                            <input type=\"password\" t-attf-class=\"form-control {{ 'is-invalid' if get_error(errors, 'password.new1') else '' }}\" id=\"new\" name=\"new1\" autocomplete=\"new-password\" required=\"required\"/>\n                            <button type=\"button\" class=\"btn btn-secondary o_show_password rounded-end\">\n                                <i class=\"fa fa-eye\"/>\n                            </button>\n                            <div class=\"invalid-feedback\">\n                                <t t-out=\"get_error(errors, 'password.new1')\"/>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"mb-3\">\n                        <label for=\"new2\">Vérifier le nouveau mot de passe :</label>\n                        <div class=\"input-group input-group-sm\">\n                            <input type=\"password\" t-attf-class=\"form-control {{ 'is-invalid' if get_error(errors, 'password.new2') else '' }}\" id=\"new2\" name=\"new2\" autocomplete=\"new-password\" required=\"required\"/>\n                            <button type=\"button\" class=\"btn btn-secondary o_show_password rounded-end\">\n                                <i class=\"fa fa-eye\"/>\n                            </button>\n                            <div class=\"invalid-feedback\">\n                                <t t-out=\"get_error(errors, 'password.new2')\"/>\n                            </div>\n                        </div>\n                    </div>\n                    <button type=\"submit\" class=\"btn btn-light\">Modifier le mot de passe</button>\n                </form>\n            </section>\n            <section name=\"portal_revoke_all_devices_popup\">\n            <h4>Révoquer toutes les sessions</h4>\n                <t t-set=\"path\"/>\n                    <button type=\"button\" class=\"btn btn-light\" id=\"portal_revoke_all_sessions_popup\">\n                        Se déconnecter de tous les appareils\n                    </button>\n            </section>\n            <section t-if=\"debug and allow_api_keys\">\n                <h4>\n                Clés API développeur\n                    <a href=\"https://www.odoo.com/documentation/master/developer/misc/api/external_api.html#api-keys\" target=\"_blank\">\n                        <i title=\"Documentation\" class=\"fa fa-fw o_button_icon fa-info-circle\"/>\n                    </a>\n                </h4>\n                <div>\n                    <table class=\"table o_main_table\">\n                        <thead>\n                            <tr>\n                                <th>Description</th>\n                                <th>Portée</th>\n                                <th>Ajoute lé</th>\n                                <th>Expiration Date</th>\n                                <th/>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <t t-foreach=\"request.env.user.api_key_ids\" t-as=\"key\">\n                                <tr>\n                                    <td><span t-field=\"key.name\"/></td>\n                                    <td><span t-field=\"key.scope\"/></td>\n                                    <td><span t-field=\"key.create_date\"/></td>\n                                    <td><span t-field=\"key.expiration_date\"/></td>\n                                    <td>\n                                        <i class=\"fa fa-trash text-danger o_portal_remove_api_key\" type=\"button\" t-att-id=\"key.id\"/>\n                                    </td>\n                                </tr>\n                            </t>\n                        </tbody>\n                    </table>\n                </div>\n                <div>\n                    <button type=\"submit\" class=\"btn btn-light o_portal_new_api_key\">Nouvelle clé API</button>\n                </div>\n            </section>\n            <section name=\"portal_deactivate_account\" groups=\"base.group_portal\">\n                <h4>Supprimer le compte</h4>\n                <t t-set=\"deactivate_error\" t-value=\"get_error(errors, 'deactivate')\"/>\n                <button class=\"btn btn-light\" data-bs-toggle=\"modal\" data-bs-target=\"#portal_deactivate_account_modal\">\n                    Supprimer le compte\n                </button>\n                <div t-attf-class=\"modal #{'show d-block' if open_deactivate_modal else ''}\" id=\"portal_deactivate_account_modal\" tabindex=\"-1\" role=\"dialog\">\n                    <div class=\"modal-dialog\" role=\"document\">\n                        <div class=\"modal-content\">\n                            <div class=\"modal-header bg-danger\">\n                                <h5 class=\"modal-title\">Êtes-vous sûr de vouloir continuer ?</h5>\n                                <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"/>\n                            </div>\n                            <form action=\"/my/deactivate_account\" method=\"post\" class=\"modal-body\" id=\"portal_deactivate_account_form\">\n                                <div>\n                                    <div class=\"alert alert-danger\" t-esc=\"get_error(errors, 'deactivate.other')\"/>\n                                    <p class=\"text-muted\">\n                                        Désactivez votre compte pour éviter toute connexion future.<br/>\n                                        <b>\n                                            <i class=\"fa fa-exclamation-triangle text-danger\"/>\n                                            Cette action ne peut pas être annulée.\n                                        </b>\n                                    </p>\n                                    <hr/>\n                                    <p>1. Saisissez votre mot de passe pour confirmer que ceci est votre compte</p>\n                                    <input name=\"password\" type=\"password\" required=\"1\" t-attf-class=\"form-control #{'is-invalid' if deactivate_error == 'password' else ''}\" placeholder=\"Mot de passe\"/>\n                                    <div t-if=\"deactivate_error == 'password'\" class=\"invalid-feedback\">\n                                        Mot de passe erroné.\n                                    </div>\n                                    <hr/>\n                                    <p>\n                                        2. Confirmez que vous voulez supprimer votre compte en\n                                        saisissant vos données de connexion (<t t-esc=\"env.user.login\"/>).\n                                    </p>\n                                    <input name=\"validation\" type=\"text\" required=\"1\" t-attf-class=\"form-control #{'is-invalid' if deactivate_error == 'validation' else ''}\"/>\n                                    <div t-if=\"deactivate_error == 'validation'\" class=\"invalid-feedback\">\n                                        Vous devriez saisir \"<t t-esc=\"env.user.login\"/>\" pour valider votre action.\n                                    </div>\n                                    <div class=\"d-flex flex-row align-items-center\">\n                                        <input type=\"checkbox\" name=\"request_blacklist\" id=\"request_blacklist\" checked=\"1\"/>\n                                        <label for=\"request_blacklist\" class=\"ms-2 mw-100 fw-normal mt-3\">\n                                            Inscrivez mon e-mail et mon numéro de téléphone sur une liste de blocage pour veiller à ne plus jamais me contacter\n                                        </label>\n                                    </div>\n                                </div>\n                                <input type=\"hidden\" name=\"csrf_token\" t-att-value=\"request.csrf_token()\"/>\n                            </form>\n                            <div class=\"modal-footer justify-content-start\">\n                                <input type=\"submit\" class=\"btn btn-danger\" form=\"portal_deactivate_account_form\" value=\"Delete Account\"/>\n                                <button type=\"button\" class=\"btn\" data-bs-dismiss=\"modal\">\n                                    Annuler\n                                </button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </section>\n        </div></t>\n    </t>"}