glpi-project / glpi

GLPI is a Free Asset and IT Management Software package, Data center management, ITIL Service Desk, licenses tracking and software auditing.
https://glpi-project.org
GNU General Public License v3.0
4.12k stars 1.28k forks source link

[10.0.5] copied/pasted images won't load in tickets/followups #13793

Closed usrqmor closed 1 year ago

usrqmor commented 1 year ago

Code of Conduct

Is there an existing issue for this?

Version

10.0.5

Bug description

Hi, Some tickets or followups won't show the images in tickets when they're copied/pasted. image image

It doesnt happen all the time. Some users and even hotliners are affected. The bug occurs on Edge, Chrome and Firefox (all with the latest update)

Relevant log output

No response

Page URL

No response

Steps To reproduce

  1. Create a ticket (from the interface)
  2. Copy then paste an image
  3. When you check the ticket, you won't see the image (Juste an icon and the word image)

Your GLPI setup information

Informations sur le système, l'installation et la configuration

GLPI 10.0.5 ( => /var/www/support.glpi) Installation mode: TARBALL Current language:fr_FR


Server

Operating system: Linux OR-GLPI-APP 5.10.0-19-amd64 #1 SMP Debian 5.10.149-2 (2022-10-21) x86_64 PHP 8.1.12 apache2handler (Core, FFI, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, apache2handler, apcu, bz2, calendar, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, imap, intl, json, ldap, libxml, mbstring, mysqli, mysqlnd, openssl, pcre, pdo_mysql, pdo_sqlsrv, posix, readline, session, shmop, sockets, sodium, sqlsrv, standard, sysvmsg, sysvsem, sysvshm, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib) Setup: max_execution_time="600" memory_limit="128M" post_max_size="8M" safe_mode="" session.save_handler="files" upload_max_filesize="30M" Software: Apache/2.4.54 (Debian) (Apache/2.4.54 (Debian) Server at support.fr Port 443 ) Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.76 Server Software: Debian 11 Server Version: 10.5.15-MariaDB-0+deb11u1 Server SQL Mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION Parameters: glpi_prd_sql@192.168.91.240/prd_glpi Host info: 192.168.91.240 via TCP/IP

PHP version (8.1.12) is supported.PHP version (8.1.12) is supported. Sessions configuration is OK.Sessions configuration is OK. Allocated memory is sufficient.Allocated memory is sufficient. mysqli extension is installed.mysqli extension is installed. Following extensions are installed: dom, fileinfo, json, simplexml.Following extensions are installed: dom, fileinfo, json, simplexml. curl extension is installed.curl extension is installed. gd extension is installed.gd extension is installed. intl extension is installed.intl extension is installed. libxml extension is installed.libxml extension is installed. zlib extension is installed.zlib extension is installed. The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present. Database engine version (10.5.15) is supported.Database engine version (10.5.15) is supported. No files from previous GLPI version detected.No files from previous GLPI version detected. The log file has been created successfully.The log file has been created successfully. Write access to /var/www/support.glpi/files/_cache has been validated. Write access to /var/www/support.glpi/config has been validated. Write access to /var/www/support.glpi/files/_cron has been validated. Write access to /var/www/support.glpi/files has been validated. Write access to /var/www/support.glpi/files/_dumps has been validated. Write access to /var/www/support.glpi/files/_graphs has been validated. Write access to /var/www/support.glpi/files/_lock has been validated. Write access to /var/www/support.glpi/files/_pictures has been validated. Write access to /var/www/support.glpi/files/_plugins has been validated. Write access to /var/www/support.glpi/files/_rss has been validated. Write access to /var/www/support.glpi/files/_sessions has been validated. Write access to /var/www/support.glpi/files/_tmp has been validated. Write access to /var/www/support.glpi/files/_uploads has been validated.Write access to /var/www/support.glpi/files/_cache has been validated. Write access to /var/www/support.glpi/config has been validated. Write access to /var/www/support.glpi/files/_cron has been validated. Write access to /var/www/support.glpi/files has been validated. Write access to /var/www/support.glpi/files/_dumps has been validated. Write access to /var/www/support.glpi/files/_graphs has been validated. Write access to /var/www/support.glpi/files/_lock has been validated. Write access to /var/www/support.glpi/files/_pictures has been validated. Write access to /var/www/support.glpi/files/_plugins has been validated. Write access to /var/www/support.glpi/files/_rss has been validated. Write access to /var/www/support.glpi/files/_sessions has been validated. Write access to /var/www/support.glpi/files/_tmp has been validated. Write access to /var/www/support.glpi/files/_uploads has been validated. The following directories should be placed outside "/var/www/support.glpi": ‣ "/var/www/support.glpi/files" ("GLPI_VAR_DIR") ‣ "/var/www/support.glpi/config" ("GLPI_CONFIG_DIR") You can ignore this suggestion if you are certain that these directories are not accessible through your web server.The following directories should be placed outside "/var/www/support.glpi": ‣ "/var/www/support.glpi/files" ("GLPI_VAR_DIR") ‣ "/var/www/support.glpi/config" ("GLPI_CONFIG_DIR") You can ignore this suggestion if you are certain that these directories are not accessible through your web server. Sessions configuration is secured.Sessions configuration is secured. exif extension is installed.exif extension is installed. ldap extension is installed.ldap extension is installed. openssl extension is installed.openssl extension is installed. zip extension is installed.zip extension is installed. bz2 extension is installed.bz2 extension is installed. Zend OPcache extension is installed.Zend OPcache extension is installed. Following extensions are installed: ctype, iconv, mbstring, sodium.Following extensions are installed: ctype, iconv, mbstring, sodium. Write access to /var/www/support.glpi/marketplace has been validated.Write access to /var/www/support.glpi/marketplace has been validated. Timezones seems loaded in database.Timezones seems loaded in database.


GLPI constants

GLPI_ROOT: "/var/www/support.glpi" GLPI_CONFIG_DIR: "/var/www/support.glpi/config" GLPI_VAR_DIR: "/var/www/support.glpi/files" GLPI_MARKETPLACE_DIR: "/var/www/support.glpi/marketplace" GLPI_USE_CSRF_CHECK: "1" GLPI_CSRF_EXPIRES: "7200" GLPI_CSRF_MAX_TOKENS: "100" GLPI_USE_IDOR_CHECK: "1" GLPI_IDOR_EXPIRES: "7200" GLPI_ALLOW_IFRAME_IN_RICH_TEXT: false GLPI_SERVERSIDE_URL_ALLOWLIST: ["/^(https?|feed):\/\/[^@:]+(\/.*)?$/"] GLPI_TELEMETRY_URI: "https://telemetry.glpi-project.org" GLPI_INSTALL_MODE: "TARBALL" GLPI_NETWORK_MAIL: "glpi@teclib.com" GLPI_NETWORK_SERVICES: "https://services.glpi-network.com" GLPI_MARKETPLACE_ALLOW_OVERRIDE: true GLPI_MARKETPLACE_MANUAL_DOWNLOADS: true GLPI_USER_AGENT_EXTRA_COMMENTS: "" GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE: "1" GLPI_AJAX_DASHBOARD: "1" GLPI_CALDAV_IMPORT_STATE: 0 GLPI_DEMO_MODE: "0" GLPI_CENTRAL_WARNINGS: "1" GLPI_DOC_DIR: "/var/www/support.glpi/files" GLPI_CACHE_DIR: "/var/www/support.glpi/files/_cache" GLPI_CRON_DIR: "/var/www/support.glpi/files/_cron" GLPI_DUMP_DIR: "/var/www/support.glpi/files/_dumps" GLPI_GRAPH_DIR: "/var/www/support.glpi/files/_graphs" GLPI_LOCAL_I18N_DIR: "/var/www/support.glpi/files/_locales" GLPI_LOCK_DIR: "/var/www/support.glpi/files/_lock" GLPI_LOG_DIR: "/var/www/support.glpi/files/_log" GLPI_PICTURE_DIR: "/var/www/support.glpi/files/_pictures" GLPI_PLUGIN_DOC_DIR: "/var/www/support.glpi/files/_plugins" GLPI_RSS_DIR: "/var/www/support.glpi/files/_rss" GLPI_SESSION_DIR: "/var/www/support.glpi/files/_sessions" GLPI_TMP_DIR: "/var/www/support.glpi/files/_tmp" GLPI_UPLOAD_DIR: "/var/www/support.glpi/files/_uploads" GLPI_INVENTORY_DIR: "/var/www/support.glpi/files/_inventories" GLPI_NETWORK_REGISTRATION_API_URL: "https://services.glpi-network.com/api/registration/" GLPI_MARKETPLACE_PLUGINS_API_URI: "https://services.glpi-network.com/api/glpi-plugins/" GLPI_I18N_DIR: "/var/www/support.glpi/locales" GLPI_VERSION: "10.0.5" GLPI_SCHEMA_VERSION: "10.0.5@628dbfbb91eb4caf10c35969d9162b9300b141e0" GLPI_MARKETPLACE_PRERELEASES: false GLPI_MIN_PHP: "7.4.0" GLPI_MAX_PHP: "8.3.0" GLPI_YEAR: "2022"


Libraries

htmlawed/htmlawed version 1.2.9 in (/var/www/support.glpi/vendor/htmlawed/htmlawed) phpmailer/phpmailer version 6.6.0 in (/var/www/support.glpi/vendor/phpmailer/phpmailer/src) simplepie/simplepie version 1.5.8 in (/var/www/support.glpi/vendor/simplepie/simplepie/library) tecnickcom/tcpdf version 6.5.0 in (/var/www/support.glpi/vendor/tecnickcom/tcpdf) michelf/php-markdown in (/var/www/support.glpi/vendor/michelf/php-markdown/Michelf) true/punycode in (/var/www/support.glpi/vendor/true/punycode/src) iamcal/lib_autolink in (/var/www/support.glpi/vendor/iamcal/lib_autolink) sabre/dav in (/var/www/support.glpi/vendor/sabre/dav/lib/DAV) sabre/http in (/var/www/support.glpi/vendor/sabre/http/lib) sabre/uri in (/var/www/support.glpi/vendor/sabre/uri/lib) sabre/vobject in (/var/www/support.glpi/vendor/sabre/vobject/lib) laminas/laminas-i18n in (/var/www/support.glpi/vendor/laminas/laminas-i18n/src) laminas/laminas-servicemanager in (/var/www/support.glpi/vendor/laminas/laminas-servicemanager/src) monolog/monolog in (/var/www/support.glpi/vendor/monolog/monolog/src/Monolog) sebastian/diff in (/var/www/support.glpi/vendor/sebastian/diff/src) donatj/phpuseragentparser in (/var/www/support.glpi/vendor/donatj/phpuseragentparser/src/UserAgent) elvanto/litemoji in (/var/www/support.glpi/vendor/elvanto/litemoji/src) symfony/console in (/var/www/support.glpi/vendor/symfony/console) scssphp/scssphp in (/var/www/support.glpi/vendor/scssphp/scssphp/src) laminas/laminas-mail in (/var/www/support.glpi/vendor/laminas/laminas-mail/src/Protocol) laminas/laminas-mime in (/var/www/support.glpi/vendor/laminas/laminas-mime/src) rlanvin/php-rrule in (/var/www/support.glpi/vendor/rlanvin/php-rrule/src) blueimp/jquery-file-upload in (/var/www/support.glpi/vendor/blueimp/jquery-file-upload/server/php) ramsey/uuid in (/var/www/support.glpi/vendor/ramsey/uuid/src) psr/log in (/var/www/support.glpi/vendor/psr/log/Psr/Log) psr/simple-cache in (/var/www/support.glpi/vendor/psr/simple-cache/src) psr/cache in (/var/www/support.glpi/vendor/psr/cache/src) league/csv in (/var/www/support.glpi/vendor/league/csv/src) mexitek/phpcolors in (/var/www/support.glpi/vendor/mexitek/phpcolors/src/Mexitek/PHPColors) guzzlehttp/guzzle in (/var/www/support.glpi/vendor/guzzlehttp/guzzle/src) guzzlehttp/psr7 in (/var/www/support.glpi/vendor/guzzlehttp/psr7/src) glpi-project/inventory_format in (/var/www/support.glpi/vendor/glpi-project/inventory_format/lib/php) wapmorgan/unified-archive in (/var/www/support.glpi/vendor/wapmorgan/unified-archive/src) paragonie/sodium_compat in (/var/www/support.glpi/vendor/paragonie/sodium_compat/src) symfony/cache in (/var/www/support.glpi/vendor/symfony/cache) html2text/html2text in (/var/www/support.glpi/vendor/html2text/html2text/src) symfony/css-selector in (/var/www/support.glpi/vendor/symfony/css-selector) symfony/dom-crawler in (/var/www/support.glpi/vendor/symfony/dom-crawler) twig/twig in (/var/www/support.glpi/vendor/twig/twig/src) twig/string-extra in (/var/www/support.glpi/vendor/twig/string-extra) symfony/polyfill-ctype not found symfony/polyfill-iconv not found symfony/polyfill-mbstring not found symfony/polyfill-php80 not found symfony/polyfill-php81 not found symfony/polyfill-php82 in (/var/www/support.glpi/vendor/symfony/polyfill-php82)

LDAP directories

Server:

SQL replicas

Not active


Notifications

Way of sending emails: SMTP (smtp.mandrillapp.com)


Plugins list

news                 Name: Alertes                        Version: 1.10.5     State: Enabled                                 
    Install Method: Marketplace
behaviors            Name: Comportements                  Version: 2.7.2      State: Enabled                                 
    Install Method: Manual
mydashboard          Name: Dashboard                      Version: 2.1.4      State: Enabled                                 
    Install Method: Marketplace
datainjection        Name: Data Injection                 Version: 2.12.0     State: Enabled                                 
    Install Method: Marketplace
formcreator          Name: Form Creator                   Version: 2.13.3     State: Enabled                                 
    Install Method: Marketplace
tag                  Name: Gestion des tags               Version: 2.10.0     State: Enabled                                 
    Install Method: Marketplace
oauthimap            Name: Oauth IMAP                     Version: 1.4.1      State: Enabled                                 
    Install Method: Marketplace

Anything else?

I search in the log files :

I didn't find any error about a file that won't load.

I compare the opening date of the ticket with the last document added on GLPI and i didn't find the images. There's nothing in the history of the ticket.

Thanks for your help

cedric-anne commented 1 year ago

Maybe it is related to #13446.

usrqmor commented 1 year ago

Hi, Thank you for the reply. I apply the modification. I ll tell you after some days. I can't reproduce the bug but my colleagues and me will see if the issue will stop.

usrqmor commented 1 year ago

Hi @cedric-anne,

The problem persist. I just have another case this morning. I ask the user who created the ticket and for her, the copy/pasted image was added in document.

cedric-anne commented 1 year ago

Could you provide the source document and the exact way to reproduce ?

usrqmor commented 1 year ago

I found a way to reproduce the problem. When the user is creating his ticket and copy then paste his image. The image is loading in GLPI. image

But when the user choose the category after writing his ticket, the document loaded in GLPI disappear and we got the result in the 3rd image. image

image

It's only in simplified interfaces so that's why I had difficulties to reproduce the problem.

cedric-anne commented 1 year ago

I confirm there is an issue here. On my side, I see the image in resulting ticket, but file has not been converted correctly to a document and image is stored in its base64 form directly in ticket contents.