znuny / Znuny

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.
https://www.znuny.org
GNU General Public License v3.0
335 stars 82 forks source link

Fixed incorrect comparison in ACL module skipping logic #472

Open tipue-dev opened 11 months ago

tipue-dev commented 11 months ago

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.

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