Znuny/Znuny LTS is a fork of the ((OTRS)) Community Edition, one of the most flexible web-based ticketing systems used for Customer Service, Help Desk, IT Service Management.
The original code snippet was intended to skip over a module if its ReturnSubType did not match the required ReturnSubType. Due to an error in the condition logic, the module skipping function does not operating as expected.
next MODULENAME if !$Module->{ReturnSubType} eq $Param{ReturnSubType};
!$Module->{ReturnSubType} results in an empty string, that is then checked for equality with $Param{ReturnSubType}.
This code runs only if $Param{ReturnSubType} is given. The result is the same as if a ReturnSubType would not be checked at all and the code runs for every sub type.
Update:
Additionally the ReturnSubType can also given as an array of possible sub types, but the condition checks for a hash reference. If it was intended, that the subtype could be given as hash, then the code inside the condition is wrong.
Either way, currently none of the restrictions are working.
Checklist
[x] The code change is tested and works locally.(❗)
[x] There is no commented out code in this PR.(❕)
[ ] You improved or added new unit tests.(❕)
[x] Local ZnunyCodePolicy passed.(❕)
[ ] Local UnitTests / Selenium passed.(❕)
[ ] GitHub workflow CI (UnitTests / Selenium) passed.(❗)
Proposed change
The original code snippet was intended to skip over a module if its ReturnSubType did not match the required ReturnSubType. Due to an error in the condition logic, the module skipping function does not operating as expected.
!$Module->{ReturnSubType}
results in an empty string, that is then checked for equality with$Param{ReturnSubType}
. This code runs only if $Param{ReturnSubType} is given. The result is the same as if a ReturnSubType would not be checked at all and the code runs for every sub type.Update: Additionally the
ReturnSubType
can also given as an array of possible sub types, but the condition checks for a hash reference. If it was intended, that the subtype could be given as hash, then the code inside the condition is wrong. Either way, currently none of the restrictions are working.Checklist