jackburton79 / room

Room GLPI plugin
GNU General Public License v2.0
3 stars 3 forks source link

Uncaught Exception #7

Closed theuwguy closed 3 months ago

theuwguy commented 7 months ago

Would you happen to have seen this error before?

[2024-01-13 05:05:29] glpiphplog.WARNING:   *** PHP Warning (2): Undefined array key "glpiactiveprofile" in /var/www/html/glpi/plugins/room/hook.php at line 367
  Backtrace :
  src/Plugin.php:1766                                plugin_room_AssignToTicket()
  src/CommonITILObject.php:5230                      Plugin::doOneHook()
  marketplace/releases/hook.php:148                  CommonITILObject::getAllTypesForHelpdesk()
  src/Plugin.php:1696                                plugin_releases_postinit()
  src/Plugin.php:276                                 Plugin::doHook()
  inc/includes.php:98                                Plugin->init()
  index.php:87                                       include()
  public/index.php:82                                require()

[2024-01-13 05:05:29] glpiphplog.WARNING:   *** PHP Warning (2): Trying to access array offset on value of type null in /var/www/html/glpi/plugins/room/hook.php at line 367
  Backtrace :
  src/Plugin.php:1766                                plugin_room_AssignToTicket()
  src/CommonITILObject.php:5230                      Plugin::doOneHook()
  marketplace/releases/hook.php:148                  CommonITILObject::getAllTypesForHelpdesk()
  src/Plugin.php:1696                                plugin_releases_postinit()
  src/Plugin.php:276                                 Plugin::doHook()
  inc/includes.php:98                                Plugin->init()
  index.php:87                                       include()
  public/index.php:82                                require()

[2024-01-13 05:05:29] glpiphplog.CRITICAL:   *** Uncaught Exception TypeError: in_array(): Argument #2 ($haystack) must be of type array, null given in /var/www/html/glpi/plugins/room/hook.php at line 367
  Backtrace :
  plugins/room/hook.php:367                          in_array()
  src/Plugin.php:1766                                plugin_room_AssignToTicket()
  src/CommonITILObject.php:5230                      Plugin::doOneHook()
  marketplace/releases/hook.php:148                  CommonITILObject::getAllTypesForHelpdesk()
  src/Plugin.php:1696                                plugin_releases_postinit()
  src/Plugin.php:276                                 Plugin::doHook()
  inc/includes.php:98                                Plugin->init()
  index.php:87                                       include()
  public/index.php:82                                require()
theuwguy commented 7 months ago
Information about system installation & configuration
GLPI 10.0.11 ( => /var/www/html/glpi)
Installation mode: TARBALL
Current language:en_US

Server
 
Operating system: Linux prj-glpi1 5.4.0-169-generic #​187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
PHP 8.2.14 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, imagick, imap, intl, json, ldap, libxml,
    mbstring, memcache, mysqli, mysqlnd, openssl, pcre, pdo_mysql, posix, pspell, random, readline, session, shmop, snmp, sockets,
    sodium, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib)
Setup: max_execution_time="30" memory_limit="256M" post_max_size="8M" safe_mode="" session.save_handler="files"
    upload_max_filesize="2M" disable_functions="" 
Software: Apache/2.4.41 (Ubuntu) (Apache/2.4.41 (Ubuntu) Server at prj-glpi1.cui.apluw.local Port 443
)
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0
Server Software: Ubuntu 20.04
    Server Version: 10.3.38-MariaDB-0ubuntu0.20.04.1
    Server SQL Mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    Parameters: glpi@127.0.0.1/glpi
    Host info: 127.0.0.1 via TCP/IP

PHP version (8.2.14) is supported.
Sessions configuration is OK.
Allocated memory is sufficient.
mysqli extension is installed.
Following extensions are installed: dom, fileinfo, filter, libxml, json, simplexml, xmlreader, xmlwriter.
curl extension is installed.
gd extension is installed.
intl extension is installed.
zlib extension is installed.
The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.
Database engine version (10.3.38) is supported.
No files from previous GLPI version detected.
The log file has been created successfully.
Write access to /var/www/html/glpi/files/_cache has been validated.
Write access to /var/www/html/glpi/files/_cron has been validated.
Write access to /var/www/html/glpi/files has been validated.
Write access to /var/www/html/glpi/files/_dumps has been validated.
Write access to /var/www/html/glpi/files/_graphs has been validated.
Write access to /var/www/html/glpi/files/_lock has been validated.
Write access to /var/www/html/glpi/files/_pictures has been validated.
Write access to /var/www/html/glpi/files/_plugins has been validated.
Write access to /var/www/html/glpi/files/_rss has been validated.
Write access to /var/www/html/glpi/files/_sessions has been validated.
Write access to /var/www/html/glpi/files/_tmp has been validated.
Write access to /var/www/html/glpi/files/_uploads has been validated.

Web server root directory configuration seems safe.
Sessions configuration is secured.
OS and PHP are relying on 64 bits integers.
exif extension is installed.
ldap extension is installed.
openssl extension is installed.
Following extensions are installed: bz2, Phar, zip.
Zend OPcache extension is installed.
Following extensions are installed: ctype, iconv, mbstring, sodium.
Write access to /var/www/html/glpi/marketplace has been validated.
Access to timezone database (mysql) is not allowed.

GLPI constants
 
GLPI_ROOT: "/var/www/html/glpi"
GLPI_CONFIG_DIR: "/var/www/html/glpi/config"
GLPI_VAR_DIR: "/var/www/html/glpi/files"
GLPI_MARKETPLACE_DIR: "/var/www/html/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_TEXT_MAXSIZE: "4000"
GLPI_DOC_DIR: "/var/www/html/glpi/files"
GLPI_CACHE_DIR: "/var/www/html/glpi/files/_cache"
GLPI_CRON_DIR: "/var/www/html/glpi/files/_cron"
GLPI_DUMP_DIR: "/var/www/html/glpi/files/_dumps"
GLPI_GRAPH_DIR: "/var/www/html/glpi/files/_graphs"
GLPI_LOCAL_I18N_DIR: "/var/www/html/glpi/files/_locales"
GLPI_LOCK_DIR: "/var/www/html/glpi/files/_lock"
GLPI_LOG_DIR: "/var/www/html/glpi/files/_log"
GLPI_PICTURE_DIR: "/var/www/html/glpi/files/_pictures"
GLPI_PLUGIN_DOC_DIR: "/var/www/html/glpi/files/_plugins"
GLPI_RSS_DIR: "/var/www/html/glpi/files/_rss"
GLPI_SESSION_DIR: "/var/www/html/glpi/files/_sessions"
GLPI_TMP_DIR: "/var/www/html/glpi/files/_tmp"
GLPI_UPLOAD_DIR: "/var/www/html/glpi/files/_uploads"
GLPI_INVENTORY_DIR: "/var/www/html/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/marketplace/"
GLPI_I18N_DIR: "/var/www/html/glpi/locales"
GLPI_VERSION: "10.0.11"
GLPI_SCHEMA_VERSION: "10.0.11@6795e1eea6621428b5ef42350d555715bda8a96f"
GLPI_MARKETPLACE_PRERELEASES: false
GLPI_MIN_PHP: "7.4.0"
GLPI_MAX_PHP: "8.4.0"
GLPI_YEAR: "2023"

Libraries
 
htmlawed/htmlawed version 1.2.14 in (/var/www/html/glpi/vendor/htmlawed/htmlawed)
phpmailer/phpmailer version 6.8.0 in (/var/www/html/glpi/vendor/phpmailer/phpmailer/src)
simplepie/simplepie version 1.5.8 in (/var/www/html/glpi/vendor/simplepie/simplepie/library)
tecnickcom/tcpdf version 6.6.2 in (/var/www/html/glpi/vendor/tecnickcom/tcpdf)
michelf/php-markdown in (/var/www/html/glpi/vendor/michelf/php-markdown/Michelf)
true/punycode in (/var/www/html/glpi/vendor/true/punycode/src)
iamcal/lib_autolink in (/var/www/html/glpi/vendor/iamcal/lib_autolink)
sabre/dav in (/var/www/html/glpi/vendor/sabre/dav/lib/DAV)
sabre/http in (/var/www/html/glpi/vendor/sabre/http/lib)
sabre/uri in (/var/www/html/glpi/vendor/sabre/uri/lib)
sabre/vobject in (/var/www/html/glpi/vendor/sabre/vobject/lib)
laminas/laminas-i18n in (/var/www/html/glpi/vendor/laminas/laminas-i18n/src)
laminas/laminas-servicemanager in (/var/www/html/glpi/vendor/laminas/laminas-servicemanager/src)
monolog/monolog in (/var/www/html/glpi/vendor/monolog/monolog/src/Monolog)
sebastian/diff in (/var/www/html/glpi/vendor/sebastian/diff/src)
donatj/phpuseragentparser in (/var/www/html/glpi/vendor/donatj/phpuseragentparser/src/UserAgent)
elvanto/litemoji in (/var/www/html/glpi/vendor/elvanto/litemoji/src)
symfony/console in (/var/www/html/glpi/vendor/symfony/console)
scssphp/scssphp in (/var/www/html/glpi/vendor/scssphp/scssphp/src)
laminas/laminas-mail in (/var/www/html/glpi/vendor/laminas/laminas-mail/src/Protocol)
laminas/laminas-mime in (/var/www/html/glpi/vendor/laminas/laminas-mime/src)
rlanvin/php-rrule in (/var/www/html/glpi/vendor/rlanvin/php-rrule/src)
ramsey/uuid in (/var/www/html/glpi/vendor/ramsey/uuid/src)
psr/log in (/var/www/html/glpi/vendor/psr/log/Psr/Log)
psr/simple-cache in (/var/www/html/glpi/vendor/psr/simple-cache/src)
psr/cache in (/var/www/html/glpi/vendor/psr/cache/src)
league/csv in (/var/www/html/glpi/vendor/league/csv/src)
mexitek/phpcolors in (/var/www/html/glpi/vendor/mexitek/phpcolors/src/Mexitek/PHPColors)
guzzlehttp/guzzle in (/var/www/html/glpi/vendor/guzzlehttp/guzzle/src)
guzzlehttp/psr7 in (/var/www/html/glpi/vendor/guzzlehttp/psr7/src)
glpi-project/inventory_format in (/var/www/html/glpi/vendor/glpi-project/inventory_format/lib/php)
wapmorgan/unified-archive in (/var/www/html/glpi/vendor/wapmorgan/unified-archive/src)
paragonie/sodium_compat in (/var/www/html/glpi/vendor/paragonie/sodium_compat/src)
symfony/cache in (/var/www/html/glpi/vendor/symfony/cache)
html2text/html2text in (/var/www/html/glpi/vendor/html2text/html2text/src)
symfony/css-selector in (/var/www/html/glpi/vendor/symfony/css-selector)
symfony/dom-crawler in (/var/www/html/glpi/vendor/symfony/dom-crawler)
twig/twig in (/var/www/html/glpi/vendor/twig/twig/src)
twig/string-extra in (/var/www/html/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/html/glpi/vendor/symfony/polyfill-php82)
league/oauth2-client in (/var/www/html/glpi/vendor/league/oauth2-client/src/Provider)
league/oauth2-google in (/var/www/html/glpi/vendor/league/oauth2-google/src/Provider)
thenetworg/oauth2-azure in (/var/www/html/glpi/vendor/thenetworg/oauth2-azure/src/Provider)

SQL replicas
 
Not active

Notifications
 
Way of sending emails: SMTP+TLS (help-admin@smtp1.mta.apl.uw.edu)

Plugins list
 
    accounts             Name: Accounts                       Version: 3.0.3      State: Enabled                                 
        Install Method: Marketplace
    activity             Name: Activities                     Version: 3.1.2      State: Enabled                                 
        Install Method: Marketplace
    fields               Name: Additional Fields              Version: 1.21.6     State: Enabled                                 
        Install Method: Marketplace
    advancedplanning     Name: advancedplanning               Version: 1.1.0      State: Installed / not activated               
        Install Method: Marketplace
    news                 Name: Alerts                         Version: 1.12.1     State: Enabled                                 
        Install Method: Marketplace
    archisw              Name: Apps structures                Version: 3.0.17     State: Enabled                                 
        Install Method: Marketplace
    badges               Name: Badges                         Version: 3.0.0      State: Enabled                                 
        Install Method: Marketplace
    behaviors            Name: Behaviours                     Version: 2.7.2      State: Enabled                                 
        Install Method: Marketplace
    archibp              Name: Business Processes             Version: 2.0.8      State: Enabled                                 
        Install Method: Marketplace
    cmdb                 Name: CMDB                           Version: 3.0.3      State: Installed / not activated               
        Install Method: Marketplace
    connections          Name: Connections                    Version: 10.0.0     State: Enabled                                 
        Install Method: Marketplace
    consumables          Name: Consumable request             Version: 2.0.1      State: Enabled                                 
        Install Method: Marketplace
    datainjection        Name: Data injection                 Version: 2.13.4     State: Enabled                                 
        Install Method: Marketplace
    archidata            Name: Data structures                Version: 1.0.14     State: Enabled                                 
        Install Method: Marketplace
    databaseinventory    Name: Database Inventory             Version: 1.0.0      State: Enabled                                 
        Install Method: Marketplace
    dataflows            Name: Dataflows                      Version: 3.0.9      State: Enabled                                 
        Install Method: Marketplace
    archimap             Name: Diagrams                       Version: 3.3.3      State: Enabled                                 
        Install Method: Marketplace
    manageentities       Name: Entities portal                Version: 4.0.3      State: Enabled                                 
        Install Method: Marketplace
    formcreator          Name: Form Creator                   Version: 2.13.8     State: Enabled                                 
        Install Method: Marketplace
    archifun             Name: Functional Areas               Version: 2.2.11     State: Enabled                                 
        Install Method: Marketplace
    gantt                Name: gantt                          Version: 1.0.4      State: Enabled                                 
        Install Method: Marketplace
    glpiinventory        Name: GLPI Inventory                 Version: 1.3.4      State: Enabled                                 
        Install Method: Marketplace
    resources            Name: Human Resources                Version: 3.0.4      State: Enabled                                 
        Install Method: Marketplace
    sccm                 Name: Interface - SCCM               Version: 2.4.3      State: Installed / not activated               
        Install Method: Marketplace
    geninventorynumber   Name: Inventory number generation    Version: 2.8.3      State: Enabled                                 
        Install Method: Marketplace
    addressing           Name: IP Adressing                   Version: 3.0.1      State: Enabled                                 
        Install Method: Marketplace
    uninstall            Name: Item's Lifecycle (uninstall)   Version: 2.9.0      State: Enabled                                 
        Install Method: Marketplace
    itilcategorygroups   Name: ItilCategory Groups            Version: 2.5.1      State: Enabled                                 
        Install Method: Marketplace
    jamf                 Name: JAMF Plugin for GLPI           Version: 3.0.1      State: Enabled                                 
        Install Method: Marketplace
    metademands          Name: Meta-Demands                   Version: 3.3.7      State: Enabled                                 
        Install Method: Marketplace
    mfa                  Name: MFA                            Version: 1.0.2      State: Installed / not activated               
        Install Method: Marketplace
    mreporting           Name: More Reporting                 Version: 1.8.5      State: Enabled                                 
        Install Method: Marketplace
    moreticket           Name: More ticket                    Version: 1.7.3      State: Enabled                                 
        Install Method: Marketplace
    mydashboard          Name: My Dashboard                   Version: 2.1.5      State: Enabled                                 
        Install Method: Marketplace
    genericobject        Name: Objects management             Version: 2.14.8     State: Enabled                                 
        Install Method: Marketplace
    order                Name: Orders management              Version: 2.10.4     State: Enabled                                 
        Install Method: Marketplace
    additionalalerts     Name: Others alerts                  Version: 2.4.0      State: Enabled                                 
        Install Method: Marketplace
    phpsaml              Name: PHP SAML                       Version: 1.2.1      State: Installed / not activated               
        Install Method: Marketplace
    pdf                  Name: Print to pdf                   Version: 3.0.0      State: Installed / not activated               
        Install Method: Marketplace
    printercounters      Name: Printer counters               Version: 2.0.0      State: Enabled                                 
        Install Method: Marketplace
    purchaserequest      Name: Purchase request               Version: 3.0.1      State: Enabled                                 
        Install Method: Marketplace
    releases             Name: Releases                       Version: 2.0.3      State: Enabled                                 
        Install Method: Marketplace
    reports              Name: Reports                        Version: 1.16.0     State: Enabled                                 
        Install Method: Marketplace
    room                 Name: Rooms                          Version: 3.1.3      State: Installed / not activated               
        Install Method: Manual
    roundrobin           Name: Round Robin                    Version: 1.0.0      State: Installed / not activated               
        Install Method: Marketplace
    screenshot           Name: Screenshot                     Version: 2.0.2      State: Enabled                                 
        Install Method: Marketplace
    shellcommands        Name: Shell Commands                 Version: 4.0.1      State: Enabled                                 
        Install Method: Marketplace
    stab                 Name: Split Timeline Action Buttons  Version: 1.1.3      State: Enabled                                 
        Install Method: Marketplace
    statecheck           Name: Statecheck Rules               Version: 2.4.3      State: Enabled                                 
        Install Method: Marketplace
    tag                  Name: Tag Management                 Version: 2.11.7     State: Enabled                                 
        Install Method: Marketplace
    taskdrop             Name: TaskDrop                       Version: 2.0.0      State: Enabled                                 
        Install Method: Marketplace
    tasklists            Name: Tasks list                     Version: 2.0.3      State: Enabled                                 
        Install Method: Marketplace
    ticketfilter         Name: Ticketfilter                   Version: 1.2.0      State: Installed / not activated               
        Install Method: Marketplace
    timelineticket       Name: Timeline of tickets            Version: 10.0+1.1   State: Enabled                                 
        Install Method: Marketplace
    treeview             Name: Tree view                      Version: 1.10.2     State: Enabled                                 
        Install Method: Marketplace
    typology             Name: Typologies                     Version: 3.0.0      State: Enabled                                 
        Install Method: Marketplace
    useditemsexport      Name: Used items export              Version: 2.5.1      State: Enabled                                 
        Install Method: Marketplace
    webresources         Name: Web Resources                  Version: 2.0.3      State: Enabled                                 
        Install Method: Marketplace

jackburton79 commented 7 months ago

Hi, unfortunately my company doesn't use this plugin anymore so I don't think I can fix these problems soon.

theuwguy commented 7 months ago

In case anyone comes up against this here is the fix :

Old Function

function plugin_room_AssignToTicket($types)
{
    if (in_array('PluginRoomRoom', $_SESSION['glpiactiveprofile']['helpdesk_item_type'])) {
        $types['PluginRoomRoom'] = __('Room Management', 'room');
    }
    return $types;
}

New Function

function plugin_room_AssignToTicket($types) 
{

   if (isset($_SESSION['glpiactiveprofile']['helpdesk_item_type'])
       && in_array('PluginRoomRoom', $_SESSION['glpiactiveprofile']['helpdesk_item_type'])) {
      $types['PluginRoomRoom'] = __('Room Management', 'room');
   }
   return $types;
}
jackburton79 commented 7 months ago

In case anyone comes up against this here is the fix :

Thanks! Could you do a PR against the glpi-10 branch, by chance ?