On the advice of the Research Analyst, quote all data fields and add
slashes to escape quotes.
Change-Id: I3471475c0ae7a11398a774b1a14d023676259c04
Follows-up: Ifd640883e46f3e6c8179c63d122c704b046674ca
This allows action=paraminfo to indicate when a parameter is specifying
a submodule (so clients can detect what the submodule names are). This
will also allow the future action=help HTMLization to easily auto-link
to submodule docs, and will allow ApiSandbox to handle submodules more
generically.
For BC, rather than directly specifying "type": "submodule", it lists
the names of all the submodules as the type and adds an additional
"submodules" indicator on the param info object.
Change-Id: Id31babdc81d970ac781ec11daa3cdafef18ecd5d
- Added since to @deprecated
- Use lowercase array on @param
- Added missing type on @param
- Swapped type and variable on @param
- Fixed spelling of @return
Change-Id: Idbbc6b4c8aadb6d98c636f53024ac513346c912b
When deleting a page, only check that the user can edit through
protection, rather than running all of the other checks. This is Tim
Starling's option 3 from bug 69380.
Bug: 69380
Bug: 69398
Change-Id: I5a7c4147bd241dc086fda6c16827f9554d78599b
This was probably overlooked in the past because usually the only users
who can delete pages also have permission to edit the relevant
protection levels.
Change-Id: Ibe28a69c9fbab00b81c53b1643df722a3f1fbf19
The format for 'props' was never specified and the list for 'errors' is
impossible to keep updated when considering that many errors come from
MediaWiki backend code and extension hook functions. And since there
doesn't seem to be any real use case for either of these, let's just
kill both of them instead of wasting effort on trying to fix them.
Note that neither getResultProperties nor getPossibleErrors are called
from any extensions in gerrit, and none of the other deprecated methods
are called outside of the implementations of those two methods. Removing
the obsolete methods is left to the maintainers of the extensions, as
keeping them hurts nothing and is needed to maintain compatibility with
earlier versions of MediaWiki.
Change-Id: Ie11a401d60c834059fbf1b5625ca8ea093b3337c
This way we no longer need to disable size checking just for one operation
(enable|disable)SizeCheck functions were depricated.
Overall, this is a much better practice than disabling than re-enabling
the flag, as it might lead to accidentally forgetting to re-enable it,
just like the issue with the dangling file handlers, etc.
Example:
disable, do some complex logic, re-enable. And later, by accident,
the complex logic is changed to return a value half-way, or throws
an exception that gets handled as part of normal operations. This
results in the unsafe disabled state of the result object,
which is not good (tm).
Change-Id: I389a334d35f52f23a1847aca4aef5e96b262f589
Add a hint to the getError function which should be called in the
getPossibleErrors() function.
Also do this for getTitleOrPageId.
Change-Id: I601feb8a5b8699ce4d81814aa3cd127552a525ac
The existing doc blocks for all three of these functions is entirely
wrong.
* ApiBase::requireOnlyOneParameter
* ApiBase::requireMaxOneParameter
* ApiBase::requireAtLeastOneParameter
Change-Id: Id0dd86be3cbfa813a43f918c7d780c7ee2afc09e
Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.
Also added some missing @param.
Change-Id: I758fa4ad80ac95e2ddd3770bcb9b7d2e57ec34ea
Add support for ApiPageSet capabilities in ApiWatch to support batch
operation on titles, pageids etc. The old 'title' parameter (for a
single page) is still supported to keep backwards compatibility.
Moved a function from ApiPurge to ApiPageSet: getInvalidTitlesAndRevisions() gathers
warnings about invalid/missing titles/ids in the requested page set.
Split from If993f6e8.
Change-Id: I820dcb64d469616b10741df013911197cc5bde29
Fixes to patch that introduced ApiBase::requireAtLeastOneParameter.
Includes line breaks, code formatting, and documentation fixes.
Change-Id: I1a2faebf7cc9a2126def66d8a4ce64dbfa84059b
Follows-Up: Iae6649ed503fdbf14 (5e7a9c6f8e)
Added new ApiBase::requireAtLeastOneParameter() helper method for modules
that need one or more of a combination of parameters. The associated help
message function has also been added.
Change-Id: Iae6649ed503fdbf14b313d0be1a82f3dca8d7162
Fixed a little documentation issue, removed a line of unreachable code
and fixed up two formatting issues in the process.
Change-Id: If29391ee1a0daf19973437f36c3216b8716debd0
In general, the web UI does a check of the watchlist preferences along
the lines of "watch if watchdefault, or if watchcreations and the title
doesn't exist". So there's no way to have it watch edits but not
creations. Make the API behavior match this.
For API action=protect&watchlist=preferences, we want to use
'watchdefault' always to match the behavior of the web UI.
For Special:Upload, the code is all there to do a "watch if
watchdefault, or if watchcreations and the file doesn't exist". But for
some reason that code wasn't being used in favor of just using
watchcreations all the time. Fix that, too. And have the API use that
instead of checking if the file page exists.
Bug: 56766
Change-Id: I57fc46d9a97b3ea2169173727db842d0d7ecf81d
These are needed for OAuth grants.
Note that, even if 'editmywatchlist' is not granted, various actions
will still allow for adding but not removing of pages.
Change-Id: Ie33446a228dd6ed0114730935c1bf65667f5ce01
Currently, WatchAction::doWatch and WatchAction::doUnwatch return true
always. Let's have them return a status object instead.
This also cleans up the handling of Status objects in some of the API
modules.
Change-Id: I9dd9f0fd499c37f29fa12bcdb6142238a1f11e4d
Currently notoken is being listed as possible
API error twice if it's explicitly set as
required parameter and needsToken() returns
true.
See:
https://www.wikidata.org/w/api.php?action=paraminfo&modules=edit
Change-Id: Ia17c5cfa634919b43affa146df0d1dc0ff06b758
dieUsage will call encodeParamName, which will already prefix the error code with the module prefix
E.g. for ApiViewFeedbackArticleFeedbackv5 (prefix afvf), this error code was
(incorrectly): afvfafvfinvalidparammix. Should be: afvfinvalidparammix
Change-Id: Ia351678b49e96ef58dce773331ebe9a1b3ebf824
When writing a new extension the source:
public function getExamples() {
return array(
//TODO
);
}
would produce a empty "Example:" header on the help page. Avoid this, by
changing the condition to check for truthy instead of false and empty
string.
Change-Id: I67ecacbbac66b97ed96412abf79b49aebe0ebdbf
Badcontinue results in
<error code="unknownerror" info="Unknown error: "badcontinue""
/>
because there is one array deep too much.
Change-Id: Iff88c3864f65e5da6cd31594396dffdaa71b5593
This allows extensions to modify the array.
This completes the serie of hooks for similar get methods in ApiBase.
Change-Id: Ib398f5815ab57f25d56356b0997c55a03fd96874
The in_array gives true when the allowed values contains a 0 as value,
for example by namespaces,
action=query&list=allpages&apnamespace=test|tset
was not rejected
Change-Id: I9220a955ffaf2bcb0d1d5b27c948af2f85714110
* Removed spaces around array index
* Removed double spaces or added spaces to begin or end of function
calls, method signature, conditions or foreachs
* Added braces to one-line ifs
* Changed multi line conditions to one line conditions
* Realigned some arrays
Change-Id: Ia04d2a99d663b07101013c2d53b3b2e872fd9cc3
Also fix the condition in getPossibleErrors to avoid reporting of:
<error code="nosectiontitle" info="The sectiontitle parameter must be
set" />
Change-Id: Ifd808a040590ddffc0527da5ef0cc8cacdd008d9
Doxygen expects parameter types to come before the
parameter name in @param tags. Used a quick regex
to switch everything around where possible. This
only fixes cases where a primitve variable (or a
primitive followed by other types) is the variable
type. Other cases will need to be fixed manually.
Change-Id: Ic59fd20856eb0489d70f3469a56ebce0efb3db13