From 171161ae18eca586ae2e151054882968db667361 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Wed, 28 Feb 2024 18:14:03 +0100 Subject: [PATCH] Add LSattr_html_gpg_pub_key & LSformRule_gpg_pub_key --- debian/control | 2 +- doc/mkdocs.yml | 2 + .../LSattr_html/LSattr_html_gpg_pub_key.md | 4 + .../LSattribute/check_data/gpg_pub_key.md | 4 + src/css/default/LSformElement_gpg_pub_key.css | 34 ++++++ .../class/class.LSattr_html_gpg_pub_key.php | 32 +++++ .../class/class.LSformElement_gpg_pub_key.php | 110 ++++++++++++++++++ .../class/class.LSformRule_gpg_pub_key.php | 58 +++++++++ src/includes/js/LSformElement_gpg_pub_key.js | 23 ++++ src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo | Bin 95401 -> 95861 bytes src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po | 54 ++++++--- src/lang/ldapsaisie.pot | 48 +++++--- .../default/LSformElement_gpg_pub_key.tpl | 7 ++ .../LSformElement_gpg_pub_key_field.tpl | 16 +++ src/tmp/.gitignore | 2 + 15 files changed, 362 insertions(+), 34 deletions(-) create mode 100644 doc/src/conf/LSobject/LSattribute/LSattr_html/LSattr_html_gpg_pub_key.md create mode 100644 doc/src/conf/LSobject/LSattribute/check_data/gpg_pub_key.md create mode 100644 src/css/default/LSformElement_gpg_pub_key.css create mode 100644 src/includes/class/class.LSattr_html_gpg_pub_key.php create mode 100644 src/includes/class/class.LSformElement_gpg_pub_key.php create mode 100644 src/includes/class/class.LSformRule_gpg_pub_key.php create mode 100644 src/includes/js/LSformElement_gpg_pub_key.js create mode 100644 src/templates/default/LSformElement_gpg_pub_key.tpl create mode 100644 src/templates/default/LSformElement_gpg_pub_key_field.tpl diff --git a/debian/control b/debian/control index 7ebef571..9ec3766e 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Maintainer: Benjamin Renard Package: ldapsaisie Architecture: all Depends: apache2 | httpd, php-ldap | php5-ldap, php-fpm | libapache2-mod-php5 | libapache2-mod-php | php5-cli | php-cli, smarty | smarty3, php-net-ldap2, php-console-table -Recommends: php-mbstring, php-phpseclib, php-unidecode, php-zxcvbn, php-ftp, php-mail, php-mail-mime, php-html2text +Recommends: php-mbstring, php-phpseclib, php-unidecode, php-zxcvbn, php-ftp, php-mail, php-mail-mime, php-html2text, php-gnupg Description: web based interface for managing LDAP servers content LdapSaisie is a Web application developed to manage LDAP directory. It has been written in PHP / JavaScript and is published under the diff --git a/doc/mkdocs.yml b/doc/mkdocs.yml index 8aa63272..a3b68d44 100644 --- a/doc/mkdocs.yml +++ b/doc/mkdocs.yml @@ -97,6 +97,7 @@ nav: - Introduction: conf/LSobject/LSattribute/LSattr_html/index.md - boolean: conf/LSobject/LSattribute/LSattr_html/LSattr_html_boolean.md - date: conf/LSobject/LSattribute/LSattr_html/LSattr_html_date.md + - gpg_pub_key: conf/LSobject/LSattribute/LSattr_html/LSattr_html_gpg_pub_key.md - image: conf/LSobject/LSattribute/LSattr_html/LSattr_html_image.md - jsonCompositeAttribute: conf/LSobject/LSattribute/LSattr_html/LSattr_html_jsonCompositeAttribute.md - labeledValue: conf/LSobject/LSattribute/LSattr_html/LSattr_html_labeledValue.md @@ -127,6 +128,7 @@ nav: - differentPassword: conf/LSobject/LSattribute/check_data/differentPassword.md - email: conf/LSobject/LSattribute/check_data/email.md - filesize: conf/LSobject/LSattribute/check_data/filesize.md + - gpg_pub_key: conf/LSobject/LSattribute/check_data/gpg_pub_key.md - imagefile: conf/LSobject/LSattribute/check_data/imagefile.md - imagesize: conf/LSobject/LSattribute/check_data/imagesize.md - inarray: conf/LSobject/LSattribute/check_data/inarray.md diff --git a/doc/src/conf/LSobject/LSattribute/LSattr_html/LSattr_html_gpg_pub_key.md b/doc/src/conf/LSobject/LSattribute/LSattr_html/LSattr_html_gpg_pub_key.md new file mode 100644 index 00000000..082667b6 --- /dev/null +++ b/doc/src/conf/LSobject/LSattribute/LSattr_html/LSattr_html_gpg_pub_key.md @@ -0,0 +1,4 @@ +# LSattr_html_gpg_pub_key + +Ce type est utilisé pour la gestion des attributs dont la valeur est une clef publique GPG. Il +permet dans l'interface, d'avoir un affichage adapté à ce type de donnée. diff --git a/doc/src/conf/LSobject/LSattribute/check_data/gpg_pub_key.md b/doc/src/conf/LSobject/LSattribute/check_data/gpg_pub_key.md new file mode 100644 index 00000000..54c9a52c --- /dev/null +++ b/doc/src/conf/LSobject/LSattribute/check_data/gpg_pub_key.md @@ -0,0 +1,4 @@ +# gpg_pub_key + +Cette règle vérifie que la valeur est une clé publique GPG. Pour cela, la clé est importée dans un +_keyring_ GnuPG. diff --git a/src/css/default/LSformElement_gpg_pub_key.css b/src/css/default/LSformElement_gpg_pub_key.css new file mode 100644 index 00000000..e6a1233a --- /dev/null +++ b/src/css/default/LSformElement_gpg_pub_key.css @@ -0,0 +1,34 @@ +/* + * LSformElement_gpg_pub_key + */ +.LSformElement_gpg_pub_key_value { + display: none; + width: 30em; + font-style: italic; + font-family: courier; + background-color: #b5e4f6; + border: 1px solid #ccc; + overflow: auto; +} + +.LSformElement_gpg_pub_key_short_display { + font-style: italic; + font-family: courier; + cursor: pointer; +} + +textarea.LSformElement_gpg_pub_key { + height: 10em; +} + +@media (max-width: 1024px) { + .LSformElement_gpg_pub_key_value { + width: 40vw; + } +} + +@media (max-width: 400px) { + .LSformElement_gpg_pub_key_value { + width: calc(100% - 1em); + } +} diff --git a/src/includes/class/class.LSattr_html_gpg_pub_key.php b/src/includes/class/class.LSattr_html_gpg_pub_key.php new file mode 100644 index 00000000..eaa5eb7b --- /dev/null +++ b/src/includes/class/class.LSattr_html_gpg_pub_key.php @@ -0,0 +1,32 @@ + + */ +class LSattr_html_gpg_pub_key extends LSattr_html { + + var $LSformElement_type = 'gpg_pub_key'; + +} diff --git a/src/includes/class/class.LSformElement_gpg_pub_key.php b/src/includes/class/class.LSformElement_gpg_pub_key.php new file mode 100644 index 00000000..88695571 --- /dev/null +++ b/src/includes/class/class.LSformElement_gpg_pub_key.php @@ -0,0 +1,110 @@ + + */ + +class LSformElement_gpg_pub_key extends LSformElement { + + var $template = 'LSformElement_gpg_pub_key.tpl'; + var $fieldTemplate = 'LSformElement_gpg_pub_key_field.tpl'; + + + /** + * Parse one value + * + * @param string $value The value to parse + * @param boolean $details Enable/disable details return (optional, default: true) + * + * @return array|string Parsed value as array is $details is enabled, the raw value otherwise + */ + public function parseValue($value, $details=true) { + if (!$details) + return $value; + if (function_exists('gnupg_init')) { + // @phpstan-ignore-next-line + $res = gnupg_init(["home_dir" => LS_TMP_DIR_PATH]); + $info = gnupg_import($res, $value); + } + else { + LSerror :: addErrorCode('LSformElement_gpg_pub_key_01'); + $info = false; + } + if ( + is_array($info) + // @phpstan-ignore-next-line + && ($info['imported'] + $info['unchanged']) != 1 + ) + $info = false; + return array( + 'fingerprint' => is_array($info)?$info["fingerprint"]:null, + 'value' => $value + ); + } + + /** + * Retourne les infos d'affichage de l'élément + * + * Cette méthode retourne les informations d'affichage de l'élement + * + * @return array + */ + public function getDisplay(){ + LStemplate :: addCssFile('LSformElement_gpg_pub_key.css'); + $return = $this -> getLabelInfos(); + $params = array(); + if (!$this -> isFreeze()) { + $params['values_txt'] = $this -> values; + } + else { + LStemplate :: addJSscript('LSformElement_gpg_pub_key.js'); + LStemplate :: addHelpInfo( + 'LSformElement_gpg_pub_key', + array( + 'display' => _("Display the full key.") + ) + ); + + $values_txt = array(); + foreach ($this -> values as $value) { + $parsedValue = $this -> parseValue($value); + $values_txt[] = $parsedValue; + } + $params['values_txt'] = $values_txt; + $params['invalidValueTxt'] = _('Invalid value'); + } + $return['html'] = $this -> fetchTemplate(NULL, $params); + return $return; + } + +} + +/* + * Error Codes + */ +LSerror :: defineError('LSformElement_gpg_pub_key_01', +___("LSformElement_gpg_pub_key: PHP GnuPG extension is missing, can't parse value.") +); diff --git a/src/includes/class/class.LSformRule_gpg_pub_key.php b/src/includes/class/class.LSformRule_gpg_pub_key.php new file mode 100644 index 00000000..2b64b78a --- /dev/null +++ b/src/includes/class/class.LSformRule_gpg_pub_key.php @@ -0,0 +1,58 @@ + + */ +class LSformRule_gpg_pub_key extends LSformRule { + + /** + * Validate SSH public key value + * + * @param string $value The value to validate + * @param array $options Validation options + * @param LSformElement &$formElement The related formElement object + * + * @return boolean true if the value is valide, false if not + */ + public static function validate($value, $options, &$formElement) { + if (!function_exists('gnupg_init')) { + LSerror :: addErrorCode('LSformRule_gpg_pub_key_01'); + return false; + } + // @phpstan-ignore-next-line + $res = gnupg_init(["home_dir" => LS_TMP_DIR_PATH]); + $info = gnupg_import($res, $value); + // @phpstan-ignore-next-line + return is_array($info) && ($info['imported'] + $info['unchanged']) == 1 && $info['fingerprint']; + } + +} + +/* + * Error Codes + */ +LSerror :: defineError('LSformRule_gpg_pub_key_01', +___("LSformRule_gpg_pub_key: PHP GnuPG extension is missing, can't validate value.") +); diff --git a/src/includes/js/LSformElement_gpg_pub_key.js b/src/includes/js/LSformElement_gpg_pub_key.js new file mode 100644 index 00000000..22f652bd --- /dev/null +++ b/src/includes/js/LSformElement_gpg_pub_key.js @@ -0,0 +1,23 @@ +var LSformElement_gpg_pub_key = new Class({ + initialize: function(){ + $$('span.LSformElement_gpg_pub_key_short_display').each(function(span) { + span.addEvent('click',this.onShortDisplayClick.bind(this,span)); + varLSdefault.addHelpInfo(span,'LSformElement_gpg_pub_key','display'); + }, this); + }, + + onShortDisplayClick: function(span) { + var p = span.getParent().getFirst('p.LSformElement_gpg_pub_key_value'); + if (typeof(p)) { + if (p.getStyle('display')=='none') { + p.setStyle('display','block'); + } + else { + p.setStyle('display',' none'); + } + } + } +}); +window.addEvent(window.ie ? 'load' : 'domready', function() { + varLSformElement_gpg_pub_key = new LSformElement_gpg_pub_key(); +}); diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo index 79ab9d4e052ca4ed40237a0138324f5e2c387244..4c3d2f1fd5bc1ff2c0d39e0142fe0315fdcbaa93 100644 GIT binary patch delta 16034 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 delta 15663 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 ay!H8);XC&}3<%mCTfno$cQ-A<)Bgv>=8mcW diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po index 686decfe..c48f2132 100644 --- a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po +++ b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: LdapSaisie\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2024-02-22 15:25+0100\n" +"PO-Revision-Date: 2024-02-28 18:00+0100\n" "Last-Translator: Benjamin Renard \n" "Language-Team: LdapSaisie \n" @@ -269,16 +269,16 @@ msgstr "" "MAIL : Une erreur est survenue en enregistrant vos modifications sur ce " "modèle." -#: includes/addons/LSaddons.mail.php:158 includes/addons/LSaddons.mail.php:568 +#: includes/addons/LSaddons.mail.php:158 includes/addons/LSaddons.mail.php:573 msgid "Email templates" msgstr "Modèles de courriels" -#: includes/addons/LSaddons.mail.php:206 +#: includes/addons/LSaddons.mail.php:208 #, php-format msgid "

Mail initialy intended for %s.

" msgstr "

Mail initialement adressé à %s.

" -#: includes/addons/LSaddons.mail.php:207 +#: includes/addons/LSaddons.mail.php:209 #, php-format msgid "" "\n" @@ -291,12 +291,12 @@ msgstr "" "\n" "Mail initialement adressé à %s." -#: includes/addons/LSaddons.mail.php:235 +#: includes/addons/LSaddons.mail.php:238 #, php-format msgid "

%s: %s

" msgstr "

%s: %s

" -#: includes/addons/LSaddons.mail.php:236 +#: includes/addons/LSaddons.mail.php:239 #, php-format msgid "" "\n" @@ -305,22 +305,22 @@ msgstr "" "\n" "%s: %s" -#: includes/addons/LSaddons.mail.php:458 +#: includes/addons/LSaddons.mail.php:463 msgid "An exception occured forging message from email template '%{template}'" msgstr "" "Une exception est survenue en générant le message à partir du modèle de " "courriel '%{template}'" -#: includes/addons/LSaddons.mail.php:498 +#: includes/addons/LSaddons.mail.php:503 msgid "Email template: %{name}" msgstr "Modèle de courriel : %{name}" -#: includes/addons/LSaddons.mail.php:508 includes/addons/LSaddons.mail.php:524 -#: includes/addons/LSaddons.mail.php:542 +#: includes/addons/LSaddons.mail.php:513 includes/addons/LSaddons.mail.php:529 +#: includes/addons/LSaddons.mail.php:547 msgid "Your changes have been saved." msgstr "Vos modifications ont été enregistrées." -#: includes/addons/LSaddons.mail.php:560 +#: includes/addons/LSaddons.mail.php:565 #: includes/addons/LSaddons.showSupportInfo.php:78 #: includes/addons/LSaddons.accesslog.php:248 #: includes/addons/LSaddons.showTechInfo.php:117 @@ -813,8 +813,10 @@ msgstr "" #: includes/class/class.LSformRule.php:89 #: includes/class/class.LSformRule.php:292 +#: includes/class/class.LSformElement_gpg_pub_key.php:90 #: includes/class/class.LSattr_html_date.php:47 #: includes/class/class.LSattr_html_select_list.php:63 +#: templates/default/LSformElement_gpg_pub_key_field.tpl:9 msgid "Invalid value" msgstr "Valeur invalide" @@ -1070,6 +1072,7 @@ msgstr "" "formater la valeur de l'attribut LDAP." #: includes/class/class.LSformElement_ssh_key.php:83 +#: includes/class/class.LSformElement_gpg_pub_key.php:80 msgid "Display the full key." msgstr "Affichier la clé en entier." @@ -2084,6 +2087,13 @@ msgstr "" "LSrelation : Des paramètres sont manquants dans l'appel des méthodes de " "manipulation des relations standards (méthode : %{meth})." +#: includes/class/class.LSformElement_gpg_pub_key.php:103 +msgid "" +"LSformElement_gpg_pub_key: PHP GnuPG extension is missing, can't parse value." +msgstr "" +"LSformElement_gpg_pub_key : L'extension PHP GnuPG n'est pas installée, " +"impossible d'analyser la valeur." + #: includes/class/class.LSformRule_password.php:58 msgid "Password is too long (maximum: %{maxLength})." msgstr "Le mot de passe est trop long (maximum : %{maxLength})." @@ -3286,6 +3296,13 @@ msgstr "Erreur inconnue" msgid "Unknown error : %{error}" msgstr "Erreur inconnue : %{error}" +#: includes/class/class.LSformRule_gpg_pub_key.php:55 +msgid "" +"LSformRule_gpg_pub_key: PHP GnuPG extension is missing, can't validate value." +msgstr "" +"LSformRule_gpg_pub_key : L'extension PHP GnuPG n'est pas installée, " +"impossible de valider la valeur." + #: includes/class/class.LSsearchEntry.php:213 includes/routes.php:1211 #: includes/routes.php:1305 includes/routes.php:1452 msgid "View" @@ -3643,6 +3660,10 @@ msgstr "Erreurs" msgid "File" msgstr "Fichier" +#: templates/default/LSformElement_gpg_pub_key_field.tpl:3 +msgid "Fingerprint:" +msgstr "Empreinte :" + #: templates/default/login.tpl:34 msgid "Forgot your password ?" msgstr "Mot de passe perdu ?" @@ -3727,20 +3748,20 @@ msgstr "Aucun objet importé" msgid "No value" msgstr "Aucune valeur" -#: templates/default/email_template.tpl:30 +#: templates/default/email_template.tpl:29 msgid "" "No writable path to save your changes on the HTML message of this template." msgstr "" "Aucun emplacement accessible en écriture pour enregistrer vos modifications " "sur le contenu HTML de ce modèle." -#: templates/default/email_template.tpl:25 +#: templates/default/email_template.tpl:24 msgid "No writable path to save your changes on the subject of this template." msgstr "" "Aucun emplacement accessible en écriture pour enregistrer vos modifications " "sur le sujet de ce modèle." -#: templates/default/email_template.tpl:35 +#: templates/default/email_template.tpl:34 msgid "" "No writable path to save your changes on the text message of this template." msgstr "" @@ -3828,7 +3849,7 @@ msgstr "Résultat" msgid "Right inherited from all connected users profile" msgstr "Droit hérité du profile \"Tous les utilisateurs connectés\"" -#: templates/default/email_template.tpl:40 +#: templates/default/email_template.tpl:39 msgid "Save" msgstr "Enregistrer" @@ -3837,8 +3858,7 @@ msgid "Show/hide menu" msgstr "Afficher/cacher le menu" #: templates/default/email_templates.tpl:8 -#: templates/default/email_template.tpl:9 -#: templates/default/email_template.tpl:22 templates/default/LSmail.tpl:21 +#: templates/default/email_template.tpl:9 templates/default/LSmail.tpl:21 msgid "Subject" msgstr "Sujet" diff --git a/src/lang/ldapsaisie.pot b/src/lang/ldapsaisie.pot index 996df7ed..1da8c40b 100644 --- a/src/lang/ldapsaisie.pot +++ b/src/lang/ldapsaisie.pot @@ -205,16 +205,16 @@ msgstr "" msgid "MAIL: An error occured saving your changes on this template." msgstr "" -#: includes/addons/LSaddons.mail.php:158 includes/addons/LSaddons.mail.php:568 +#: includes/addons/LSaddons.mail.php:158 includes/addons/LSaddons.mail.php:573 msgid "Email templates" msgstr "" -#: includes/addons/LSaddons.mail.php:206 +#: includes/addons/LSaddons.mail.php:208 #, php-format msgid "

Mail initialy intended for %s.

" msgstr "" -#: includes/addons/LSaddons.mail.php:207 +#: includes/addons/LSaddons.mail.php:209 #, php-format msgid "" "\n" @@ -223,32 +223,32 @@ msgid "" "Mail initialy intended for %s." msgstr "" -#: includes/addons/LSaddons.mail.php:235 +#: includes/addons/LSaddons.mail.php:238 #, php-format msgid "

%s: %s

" msgstr "" -#: includes/addons/LSaddons.mail.php:236 +#: includes/addons/LSaddons.mail.php:239 #, php-format msgid "" "\n" "%s: %s" msgstr "" -#: includes/addons/LSaddons.mail.php:458 +#: includes/addons/LSaddons.mail.php:463 msgid "An exception occured forging message from email template '%{template}'" msgstr "" -#: includes/addons/LSaddons.mail.php:498 +#: includes/addons/LSaddons.mail.php:503 msgid "Email template: %{name}" msgstr "" -#: includes/addons/LSaddons.mail.php:508 includes/addons/LSaddons.mail.php:524 -#: includes/addons/LSaddons.mail.php:542 +#: includes/addons/LSaddons.mail.php:513 includes/addons/LSaddons.mail.php:529 +#: includes/addons/LSaddons.mail.php:547 msgid "Your changes have been saved." msgstr "" -#: includes/addons/LSaddons.mail.php:560 +#: includes/addons/LSaddons.mail.php:565 #: includes/addons/LSaddons.showSupportInfo.php:78 #: includes/addons/LSaddons.accesslog.php:248 #: includes/addons/LSaddons.showTechInfo.php:117 @@ -688,8 +688,10 @@ msgstr "" #: includes/class/class.LSformRule.php:89 #: includes/class/class.LSformRule.php:292 +#: includes/class/class.LSformElement_gpg_pub_key.php:90 #: includes/class/class.LSattr_html_date.php:47 #: includes/class/class.LSattr_html_select_list.php:63 +#: templates/default/LSformElement_gpg_pub_key_field.tpl:9 msgid "Invalid value" msgstr "" @@ -919,6 +921,7 @@ msgid "" msgstr "" #: includes/class/class.LSformElement_ssh_key.php:83 +#: includes/class/class.LSformElement_gpg_pub_key.php:80 msgid "Display the full key." msgstr "" @@ -1745,6 +1748,11 @@ msgid "" "standard relations (Method : %{meth})." msgstr "" +#: includes/class/class.LSformElement_gpg_pub_key.php:103 +msgid "" +"LSformElement_gpg_pub_key: PHP GnuPG extension is missing, can't parse value." +msgstr "" + #: includes/class/class.LSformRule_password.php:58 msgid "Password is too long (maximum: %{maxLength})." msgstr "" @@ -2793,6 +2801,11 @@ msgstr "" msgid "Unknown error : %{error}" msgstr "" +#: includes/class/class.LSformRule_gpg_pub_key.php:55 +msgid "" +"LSformRule_gpg_pub_key: PHP GnuPG extension is missing, can't validate value." +msgstr "" + #: includes/class/class.LSsearchEntry.php:213 includes/routes.php:1211 #: includes/routes.php:1305 includes/routes.php:1452 msgid "View" @@ -3128,6 +3141,10 @@ msgstr "" msgid "File" msgstr "" +#: templates/default/LSformElement_gpg_pub_key_field.tpl:3 +msgid "Fingerprint:" +msgstr "" + #: templates/default/login.tpl:34 msgid "Forgot your password ?" msgstr "" @@ -3212,16 +3229,16 @@ msgstr "" msgid "No value" msgstr "" -#: templates/default/email_template.tpl:30 +#: templates/default/email_template.tpl:29 msgid "" "No writable path to save your changes on the HTML message of this template." msgstr "" -#: templates/default/email_template.tpl:25 +#: templates/default/email_template.tpl:24 msgid "No writable path to save your changes on the subject of this template." msgstr "" -#: templates/default/email_template.tpl:35 +#: templates/default/email_template.tpl:34 msgid "" "No writable path to save your changes on the text message of this template." msgstr "" @@ -3307,7 +3324,7 @@ msgstr "" msgid "Right inherited from all connected users profile" msgstr "" -#: templates/default/email_template.tpl:40 +#: templates/default/email_template.tpl:39 msgid "Save" msgstr "" @@ -3316,8 +3333,7 @@ msgid "Show/hide menu" msgstr "" #: templates/default/email_templates.tpl:8 -#: templates/default/email_template.tpl:9 -#: templates/default/email_template.tpl:22 templates/default/LSmail.tpl:21 +#: templates/default/email_template.tpl:9 templates/default/LSmail.tpl:21 msgid "Subject" msgstr "" diff --git a/src/templates/default/LSformElement_gpg_pub_key.tpl b/src/templates/default/LSformElement_gpg_pub_key.tpl new file mode 100644 index 00000000..cebea848 --- /dev/null +++ b/src/templates/default/LSformElement_gpg_pub_key.tpl @@ -0,0 +1,7 @@ +
    + {foreach from=$values_txt item=value} +
  • {include file="ls:$fieldTemplate"}
  • + {foreachelse} +
  • {include file="ls:$fieldTemplate"}
  • + {/foreach} +
diff --git a/src/templates/default/LSformElement_gpg_pub_key_field.tpl b/src/templates/default/LSformElement_gpg_pub_key_field.tpl new file mode 100644 index 00000000..2104e676 --- /dev/null +++ b/src/templates/default/LSformElement_gpg_pub_key_field.tpl @@ -0,0 +1,16 @@ +{if $freeze} + {if $value.fingerprint} + {tr msg="Fingerprint:"} + + {$value.fingerprint|escape:"htmlall"} + +

{$value.value|escape:"htmlall"}

+ {elseif $value} + {tr msg="Invalid value"} +

{$value.value|escape:"htmlall"}

+ {else} + {$noValueTxt|escape:"htmlall"} + {/if} +{else} + +{/if} diff --git a/src/tmp/.gitignore b/src/tmp/.gitignore index b00e673f..3fb9bd73 100644 --- a/src/tmp/.gitignore +++ b/src/tmp/.gitignore @@ -1,3 +1,5 @@ *.php *.tmp *.log +*.kbx +*.gpg