Rector and PHPCS fixes
replace E_USER_ERROR triggers with RuntimeExceptionsThe use of trigger_error with a E_USER_ERROR is deprecated in PHP 8.4
Use str_starts_with/str_ends_with
code style: operator spacing
coding style: control flow line breaks
coding style: control flow whitespaces
recover comments in list
coding style: function call spacing
coding style: loop declaration spacing
codestyle adjustments: function declaration braces/spaces
codestyle adjustments: class declaration braces
codestyle adjustments: function argument spacing
Apply rector fixes to the rest of inc
fix some php 8.2 deprecation warnings
Avoid some unnecessary index file writes.word_idx modified should be reset to false for each word index file, or all unchanged word index files after the first changed one will be resaved unnecessa
Avoid some unnecessary index file writes.word_idx modified should be reset to false for each word index file, or all unchanged word index files after the first changed one will be resaved unnecessarily.
show more ...
:fire: fix the calculation of file permissonsOur config allows to set the values for `dmode` and `fmode` to allowusers to explicitly define which permissions directories and filesshould have.To
:fire: fix the calculation of file permissonsOur config allows to set the values for `dmode` and `fmode` to allowusers to explicitly define which permissions directories and filesshould have.To avoid unnessary chmod operations, we check the current umask tocompare what permissions files and directories would get witout ourintervention. If the result is already what the user wants, no chmodswill happen later on. Otherwise we set new configs called `dperm` and`fperm` which will be used in chmod ops. This is done in`init_creationmodes()`When we created new directories, we used to pass the original `dmode`config to `mkdir()`. The system will then apply the umask to that`dmode`.This means the resulting directory will *always* have differentpermissions than `dmode`, *always* requiring a chmod operation.That's silly.**Breaking Change:** This patch removes the passing of `dmode` assecond parameter to all `mkdir` calls, making it default to `0700`which is also what we test against in `init_creationmodes()`.Plugins not relying on our `io_*` functions and do create their owndirectories and which currenlty pass `dmode` to it need to beadjusted to remove that second parameter.Users may want to reapply the proper file permissions to their datafolder.**Revert:** In 9fdcc8fcd87114ca59a1764a84d213a53c655c8c @movaticaintroduced a change to `init_creationmodes()` that compared the umaskagainst `fmode` instead of `0666`. I merged it because it looked logicalwhen compared to the code for directories which compared against `dmode`as described above. However we do not pass `fmode` to any file creationmethods (that's not possible).The result is that all changes made in the `fmode` setting resultedin the wrong permissions for newly created files as first reported inhttps://forum.dokuwiki.org/d/19463-setting-fmode-not-working-as-intendedI'm unsure about the orginal motivation behind @movatica's change. The"fix" however, is wrong.**Tests:** This patch introduces an integration test that will check theactual results of directory and file creations under various umask,`dmode` and `fmode` settings.
Fix Undefined array key in Search/Indexer.php
Fix Undefined array key "fperm" warningAlso removed a few, now unnecessary `!empty` checksFixes #3382
Fixed inconsistent handling of falsy values on fperm settingThe $conf['fperm'] value was checked in multiple files using different methods.This can cause permission trouble with restricted environ
Fixed inconsistent handling of falsy values on fperm settingThe $conf['fperm'] value was checked in multiple files using different methods.This can cause permission trouble with restricted environments, i.e. when chmod is forbidden and file permissions are non-default.Now, all checks use implicit cast to boolean which leads to consistent behaviour.Also, a misleading variable was renamed in context to better understand one of the checks.
Extract dokuwiki\Search\Indexer classNot sure why Doku_Indexer caused phpcs to complain about the class namenot being in PascalCase, but Doku_Handler didn't. The namespace and new class name w
Extract dokuwiki\Search\Indexer classNot sure why Doku_Indexer caused phpcs to complain about the class namenot being in PascalCase, but Doku_Handler didn't. The namespace and new class name was selected to be compatible with theupcoming changes in #2943. This should hpopefully reduce the overallhassle of touching the same code base.