| Commit message (Collapse) | Author | Age |
|\
| |
| | |
Add experimental tree builder classes
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These classes provide mechanisms to build a traversable tree of pages
and links. Either from the existing namespace structure, or from a
control page containing (possibly a nested) set of links.
The nodes returned by the tree are deliberately sparse. No ACL checking
is taking place. Developers can enrich (or omit) nodes and influence
recursion decisions via callbacks.
The tree can optionally be sorted by comparators provided in the
TreeSort class or a custom callback.
The API provided by these classes is not considered stable yet and may
change over time. Plugin authors are encouraged to use them and provide
feedback.
|
|/
|
|
| |
squashed commits of #4369
|
|\
| |
| | |
use http_build_query() in buildURLparams()
|
| |
| |
| |
| | |
null values are no longer added as empty parameters.
|
| |
| |
| |
| | |
We no longer use the old regexp based config, so the tests failed.
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
* pr/3815:
Move IP functions into a class
Factor out IP address functions; all proxies must be trusted
Fix clientIP() returning the wrong address
|
| | | |
|
| |\ \ |
|
| | | | |
|
| | | | |
|
| |_|/
|/| |
| | |
| | |
| | | |
This could be used by plugins such as dokuwiki-plugin-oauth to create
accounts that can only by accessed via SSO.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
alternative token header support
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The Authorization header is not always passed on to PHP, depending on
the setup (See https://stackoverflow.com/q/34472303 for examples and
workarounds).
This patch adds support for an alternative X-DokuWiki-Token header that
can be used when using token authentication and the standard
Authorization header can not be used.
|
|/ / /
| | |
| | |
| | |
| | | |
The Woltlab forum software uses bcrypt passwords, but prefixes them with
"Bcrypt:". This adds support for this in our PassHash class.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Prompted by https://forum.dokuwiki.org/d/22108-authpdo-with-postgres-and-lemmy/3
As stated on https://stackoverflow.com/a/36225192
> there is no difference between 2, 2a, 2x, 2y, and 2b. If you wrote your
> implementation correctly, they all output the same result.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
fixes #3811
Replaces at() with withConsecutive() in these tests:
- TestOfLexer::testSinglePattern
- TestOfLexer::testMultiplePattern
- TestOfLexerModes::testIsolatedPattern
- TestOfLexerModes::testModeChange
- TestOfLexerModes::testNesting
- TestOfLexerModes::testSingular
- TestOfLexerModes::testUnwindTooFar
- TestOfLexerHandlers::testModeMapping
- TestOfLexerByteIndices::testIndex
- TestOfLexerByteIndices::testIndexLookaheadEqual
- TestOfLexerByteIndices::testIndexLookaheadNotEqual
- TestOfLexerByteIndices::testIndexLookbehindEqual
- TestOfLexerByteIndices::testIndexLookbehindNotEqual
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There was a global statement missing? This seems to have to been
broken in one of the recent merges.
Tests have been cleaned up but not changes in logic.
|
|\ \ \
| | | |
| | | | |
Feed creation refactoring
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It seems that the dataProvider generator runs before the rest of the
test suite, resulting in a wrong modification timestamp being read.
It's unclear why this happens on Github only.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This breaks up the humongous functions from feed.php into multiple
classes. To keep compatibility with existing Plugin events, the basic
principle of how the feed is assembled has not been changed:
* depending on the given mode and other options lose arrays of items are
gathered
* these items are then converted (again based on the various options)
into proper FeedItems
* the FeedItems are then added to the Feed
The conversion from loosely typed item data to something more structured
is now done by the FeedItemProcessor classes. Some very basic tests have
been added. It does not cover erverything but covers more than before
(which was nothing).
Manual testing before merging this is highly recommended. I am not
confident that I ported over everything correctly.
No new features have been added, but especially media support could and
should be improved in the future.
|
|\ \ \ \
| |/ / /
|/| | | |
Add support for X-Forwarded-Host proxy header
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When a basedir could not be detected, the default previously was '.'
resulting in a valid but weird URL (http://example.com/./doku.php). We
now default to an empty dir, resulting in a more sensible URL of
http://example.com/doku.php
This should not matter in real web server setups but will be in effect
while testing.
|
|\ \ \ \
| | | | |
| | | | | |
Complete API Refactoring
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We test against the MockAPICore now since the tests are meant to ensure
the general functionality of accepting XML and correctly calling
APICalls works, not that the API returns the right things (this is
tested in the ApiCore tests).
Since we no longer use dates but always integers, we no longer need to
handle that.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is mostly syntactic fix. I did not check how sensible these tests
are and did not switch from positional to named arguments
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When using named parameters, you can expect to be able to leave out any
optional parameter and have it take it's default, even when you specify
another "later" parameter. Luckily we already know all the defaults from
reflection anyway.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
No need to retest all the docblock parsing when that is tested elsewhere
already.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We cannot set missing paramerers to null. We need to make sure they are
not set at all.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This introduces a new DocBlock parser to properly generate API
specifications. It also introduces the concept of Response classes to
better specify the response format.
This is still very much in progress.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since PHP7.4 has no primitive type hints and PHP native methods have no
accessible docblocks, we can not use a native function for testing
(types always come back as string).
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This introduces an ApiCall class that wraps around the actual method
that produces the result. This replaces various loose array structures
that provided the meta information before.
The ApiCall streamlines the aggregation of meta information between core
and plugin methods. Now all data is produced by Reflection based
introspection. Certain aspects can be overridden if needed. See
ApiCore::getRemoteInfo() for examples
This change removes the _getMethods() method from remote plugins and
introduces a getMethods() method. The two are NOT compatible as the
latter now returns a list of ApiCalls. However when looking at the
existing plugins, it seems that _getMethods() was nearly 100% obsolete
with the Reflection based default implementation. So most plugins will
not be affected at all. Some might now export one or two more methods
than before because of poor visibility settings (eg. not declaring
private/protected methods as such).
This change removes the RPC_CALL_ADD hook. Only a single plugin ever
implemented it. I'm not sure what this hook was supposed to do anyway.
Being able to declare arbitrarily named API endpoints seems wrong to me
anyway.
The new ApiCall now also supports passing named instead of positional
parameters. This will open up a new opportunity to get a proper openapi
spec running.
Next step is fixing the tests.
|