Commit graph

3224 commits

Author SHA1 Message Date
Alex Monk
78ebf8767e Add content-not-allowed-here to API message map
So we don't get 'Unknown error: "content-not-allowed-here"'

Bug: 70593
Change-Id: Ibde9eb45c798a7b3abef088f7abd78c926d13031
2014-09-09 02:16:04 +01:00
Kunal Mehta
056cad90bf APIQueryInfo: Allow fetching the canonical url of a page
Change-Id: If0f62481d059815390b74ccf8167957bc1dbce52
2014-09-05 03:20:27 -07:00
umherirrender
589f9ecbb7 Add missing space to autodoc of meta=siteinfo&siprop=languages
Change-Id: I56ba3b3282ea747b47016558513f96ca597e28d7
2014-09-01 05:05:20 +00:00
Bartosz Dziewoński
9605ac2f5f ApiQueryBase: wfDeprecated() takes a string as second parameter, not number
Change-Id: I86902f6f10928ef19efab56dcf065418ea1139ca
2014-08-29 19:42:26 +02:00
jenkins-bot
914e7e2b5d Merge "Indicate the actual version of HHVM in use" 2014-08-27 22:42:12 +00:00
Brad Jorsch
2bb0768d3c API: Organize classes
* Group methods in ApiBase by function
* ApiBase::validateLimit and ApiBase::validateTimestamp are now
  protected; there are no callers in any extensions in Gerrit
* Group methods in ApiQueryBase by function
* Move ApiFormatFeedWrapper out of ApiFormatBase.php
* Deprecate some methods in ApiQueryBase that seem useless and are
  unused in core or any extensions in Gerrit

Change-Id: I32092f13906b6826d2137401724c21ccefa6f670
2014-08-27 16:39:24 -04:00
Brad Jorsch
54d615f29c API: Internal cleanup
* Separate client-visible and internal release notes, because there are
  a lot of both and will be more coming up
* Correct errors in release notes
* Add detail on token changes to release notes
* List deprecated API classes and methods in release notes
* Add missing @deprecated on ApiFormat* classes

Change-Id: I577f3c8b9182f1625470c8bc52d3bdfe5d623d81
2014-08-27 16:18:19 -04:00
jenkins-bot
c1ad8bd3a7 Merge "API: Overhaul token handling" 2014-08-26 19:09:21 +00:00
Brad Jorsch
fdddf94570 API: Overhaul token handling
The current token handling is a mess. This simplifies things greatly:
* *All* tokens are obtained from action=query&meta=tokens, rather than
  being spread over action=tokens, action=query&prop=info,
  action=query&prop=revisions, action=query&prop=recentchanges, and
  action=query&prop=users. All these old methods are deprecated.
* Similarly, there is only one hook to register new token types. All old
  hooks are deprecated.
* All tokens are cacheable.
* Most token types are dropped in favor of a 'csrf' token. They already
  were returning the same token anyway.
* All token-using modules will document the required token type in a
  standard manner in action=help and are documented in machine-readable
  fashion in action=paraminfo.

Note this will require updates to all extensions using tokens.

Change-Id: I2793a3f2dd64a4bebb0b4d065e09af1e9f63fb89
2014-08-26 14:53:45 -04:00
umherirrender
7c6a25856c Add missing @return to function docs
Change-Id: I45b9d02f94ecc58372268ec5e6a0b572a0b7e2a9
2014-08-23 23:14:57 +02:00
jenkins-bot
0bb1a287dc Merge "API: Add iwprop=url, deprecate iwurl for prop=iwlinks" 2014-08-22 05:53:47 +00:00
Bryan Davis
9cd7d691cb Check for existence of iw_local in Interwiki::getAllPrefixes
Interwiki::getAllPrefixes only sets the iw_local member in a response
row if $local is set to a non-null value. Under certain error
reporting conditions, the unqualified access to the array key leads to
warnings such as "message repeated 1471 times: [ #012Notice: Undefined
index: iw_trans in ...".

Change-Id: Ibf434dc9c362984cad76ae6bdb29de826974d81e
2014-08-21 20:24:25 -06:00
Brad Jorsch
4e198a96e4 API: Adjust feature usage log format
On the advice of the Research Analyst, quote all data fields and add
slashes to escape quotes.

Change-Id: I3471475c0ae7a11398a774b1a14d023676259c04
Follows-up: Ifd640883e46f3e6c8179c63d122c704b046674ca
2014-08-20 11:17:35 -04:00
Brad Jorsch
bac75af45d API: Add iwprop=url, deprecate iwurl for prop=iwlinks
Someone objected to the possibility of removing the deprecated llurl
because prop=iwlinks still had an iwurl parameter, and they wanted
parallelism. So let's deprecate iwurl too.

Change-Id: I675c36868d6ce531a9de632203ca7b9742d63be1
2014-08-20 09:40:01 -04:00
jenkins-bot
377a12e5da Merge "API: Add a "submodule" param type" 2014-08-20 07:15:31 +00:00
jenkins-bot
92e31275a4 Merge "Test only against protection for deleting" 2014-08-19 17:22:57 +00:00
Brad Jorsch
afa153ae9d API: Add a "submodule" param type
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
2014-08-19 11:25:07 -04:00
Brad Jorsch
3ed94e8b3e API: Mark seldom-used formats as deprecated
While it doesn't take a lot to maintain most of these, there is some
effort needed (e.g. wddx was breaking with HHVM). None have much if any
usage that seems likely to be actual code of some sort, and humans
should be able to read the jsonfm format as easily as dbgfm, dumpfm, or
txtfm.

Change-Id: I4e3d2ef59d4306756b289a4be46caef7d359ccef
2014-08-15 09:03:17 -04:00
Brad Jorsch
b5cd9e2f6b API: Log usage of various deprecated features
This will let us know how aggressively we can finally remove these.

Change-Id: I03fab36e921807e74fbabfa878756af254d89a1b
2014-08-14 16:51:14 -07:00
Brad Jorsch
a04f192094 API: Add method for logging feature usage
For example, to determine usage levels of deprecated features.

Change-Id: Ifd640883e46f3e6c8179c63d122c704b046674ca
2014-08-14 23:39:03 +00:00
umherirrender
3b2b6a2773 Add missing @param to function docs
Change-Id: I47fa96a976f55a1a93cb75397285edb8c7f4cd8a
2014-08-14 20:22:52 +02:00
umherirrender
ab20f80116 Fixed spacing
- Added newline at end of files
- Added/Removed spaces around comma, parentheses and negation
- Added space after function word

Change-Id: I2dd338153aeb5f07702ba015945e95c7d0ae673b
2014-08-13 20:14:56 +00:00
Yuri Astrakhan
703464a88c Cleanup - let's make IDEs more useful
http://phpdoc.org/docs/latest/references/phpdoc/types.html

If IDEs have many warnings, we don't look at them.
Let's minimize the number of warnings, and make them useful again.

* Some function docs fixes
* Removed unused $iwprefixes var in ApiQuerySearch.php
* declared private $blockStatusByUid in SpecialActiveusers
* declared private $repo in UploadFromChunks

Change-Id: Ifd20f78b168b9a913fdb8d89dc26a76a173b1c29
2014-08-13 16:02:59 -04:00
umherirrender
f6e19c0afe Fixed some docs
- 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
2014-08-13 20:01:46 +02:00
umherirrender
a203032d00 Docs: compatability -> compatibility
https://en.wiktionary.org/wiki/compatability

Change-Id: I71d82ae04d4b17609a1d5a7eec4497115e64972e
2014-08-13 19:39:07 +02:00
Jackmcbarn
9dafa73b2f Test only against protection for deleting
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
2014-08-12 11:47:01 -04:00
Brad Jorsch
002a277901 Do not allow a user to delete a page they can't edit
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
2014-08-10 22:11:48 +01:00
jenkins-bot
78f56b0753 Merge "API: Remove action=paraminfo 'props' and 'errors' result properties" 2014-08-10 14:08:52 +00:00
rillke
c31fbf073e Unify the spelling of MIME in documentation
Writing MIME as written in Wikipedia and some documentation clean up.

Change-Id: I9dfc36d2bf55d72d9374c4075bd6d45eef0415a4
2014-08-07 23:38:45 +02:00
Brad Jorsch
f0a6435f3b API: Remove action=paraminfo 'props' and 'errors' result properties
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
2014-08-07 16:51:19 +01:00
Chad Horohoe
af87cb4a3f Remove score display from search engine
Scores are an internal metric that should not be exposed to
users, plus most backends fail to even support it.

Removes PostgresSearch*-specific result classes as they're not
needed anymore.

Change-Id: I00acaabad0565b9a5b3524c992feea366eb74bcc
2014-08-07 14:19:37 +01:00
jenkins-bot
57ec9e0669 Merge "Allow factory functions for creating API modules." 2014-08-07 08:07:48 +00:00
jenkins-bot
decb85352d Merge "SpecialActiveusers: Use Config objects instead of globals" 2014-08-06 21:43:59 +00:00
daniel
baa11f7430 Allow factory functions for creating API modules.
This enables factory functions to be registered for API modules,
in addition to the module class itself. This allows modules to
use proper dependency injection via the modules constructor.

Example:

  $wgAPIModules['foo'] = array(
    'class' => 'ApiFoo',
    'factory' => function( $main, $action ) { ... }
  )

Change-Id: Ieb85493a7765f466317f5fa74b0b0e262220deab
2014-08-06 22:58:14 +02:00
Kunal Mehta
6aede494fb SpecialUndelete/PageArchive: Use Config instead of globals
Change-Id: Ic025412ed74d9cffad48a3ab04788d46ab43befb
2014-08-06 16:20:26 +01:00
Kevin Israel
b0751af753 Indicate the actual version of HHVM in use
Strings like "5.6.99-hhvm" are not version numbers but merely
a way for HHVM to pass version checks. They should not be
displayed in the UI.

This affects Special:Version, the API (action=query&meta=siteinfo),
the installer welcome page, and the debug toolbar.

Follows-up d09ab9001f.

Change-Id: Ia99dca64779e9c4eaddf5f0e0101674d029b8d55
2014-08-05 16:36:47 -04:00
Kunal Mehta
9e1f4a6974 SpecialActiveusers: Use Config objects instead of globals
Except for SpecialActiveUsers::cacheUpdate because I couldn't figure
out what was calling that.

Change-Id: Ib37beba34d41e2a27e4d87f1b2d7654d519334f8
2014-08-03 14:19:24 -07:00
Brad Jorsch
d0e16713bc Check for result size failure in ApiQuery
If someone sets $wgAPIMaxResultSize crazily small and then queries a
large number of pages, it can cause ApiQuery to fail to populate the
'pages' node. Then submodules might add data to the node, leading to
errors from the XML formatter (or bogus output from other formatters).

While that particular failure mode is probably going away soon, it's
still good to catch the error situation.

Bug: 68989
Change-Id: If0b2eda421fd86dd7acc4fe48cec47741e214221
2014-08-01 12:26:49 -04:00
Brad Jorsch
3fd7a3cebe API: Allow undeleting files
Strange that action=undelete didn't support this already.

Bug: 40817
Change-Id: Ia864158370411e555f63f70588ebd305a756d6f5
2014-07-31 16:07:26 +00:00
Reedy
58f369557d list=logevent userid is returned as string, should be integer
Bug: 68921
Change-Id: Ibdc771cfc3286f8f20f64a2817a2ef01d4b1f8ad
2014-07-31 15:24:58 +01:00
Étienne Beaulé
b230bdce16 Create preference to watchlist pages after rollbacking
This change adds a  preference in the 'watchlist' section to
automatically watchlist a page after rollbacking.

The setting is only visible, if the user has the 'rollback'-right.
I have removed the watch reverts function per advice by Vogone.

Bug: 4488
Change-Id: I3aa831c9c04d627684641af0ca5a332795c87062
2014-07-30 21:51:41 +00:00
csteipp
fe32899523 SECURITY: Prepend jsonp callback with comment
Mitigate CVE-2014-4671 for unpatched flash players

Bug: 68187
Change-Id: I2f46e623c1f541dbbafb6e8333e0929055098b15
2014-07-30 20:26:39 +02:00
Étienne Beaulé
c3fcaba02f Enable the creation of empty pages
This change enables the direct creation of empty pages without needing
to use a work-around (such as "{{subst:ns:0}}"). A warning is added as
the message "blankarticle" to request confirmation that the empty page
was meant to be blank. A automatic edit summary has been added when
creating a blank page. The message is: "autosumm-newblank."

The API has been updated to permit the creation of empty pages, when
"text" is null, but not non-existant.

Unit tests have also been added to test these features.

Bug: 57238
Bug: 65206
Change-Id: I3457c36a909d1dbfaeed04a1f0568c69e0ef3386
2014-07-25 23:26:18 -04:00
umherirrender
02dc9da399 Cleanup some docs (includes/[a-d])
- Swap "$variable type" to "type $variable"
- Added missing types
- Fixed spacing inside docs
- Makes beginning of @param/@return/@var/@throws in capital
- Changed some types to match the more common spelling

Change-Id: I7b65fe04db431342cc58b469dc48f41a50c4e891
2014-07-24 19:42:45 +02:00
umherirrender
347a0b294e Fix deprecated of ApiQuery::setGeneratorContinue
No @ before the since

Change-Id: I849b9f950069fe248a6cd86afb1e1beda271f235
2014-07-23 23:36:10 +02:00
S Page
16a169c6c8 Provide namespace to ApiParse->getSectionContent
Improves the "Sections are not supported by <PAGE>" error message when
it fails.  Also add phpdoc comment

Bug: 68416
Change-Id: Iaa5d3a1f33b8a9c48263c2ce27cd3b4fe98fbf01
2014-07-22 18:26:53 -07:00
umherirrender
53c420e278 Fixed spacing
- use tab as indent instead of spaces
- Added space after closures "function"
- Added spaces around string_concat
- Added newline inside empty blocks
- Removed four spaces after comma

Change-Id: I4425b0c6a69b36f40acfea6511b8950cf09ce2b2
2014-07-20 21:41:41 +02:00
umherirrender
2b021dc48a Fixed spacing
- Added/removed spaces around parenthesis
- Added space after switch/if/foreach
- changed else if to elseif

Change-Id: I99cda543e0e077320091addd75c188cb6e3a42c2
2014-07-19 23:12:10 +02:00
eikes
2f002458d5 Split "suppressrevision" into two user rights
In this change, a new passive user right named "viewsuppressed"
which can be used in order to view suppressed page content was added
to MediaWiki core.
Furthermore, this right was also added to the list of available rights,
to qqq.json and to en.json where also the description of the
"suppressrevision" right was adjusted in order to reflect reality.

Bug: 20476
Change-Id: Id1baacb9c782763db5e05ef8b5c1b761997efcc9
2014-07-19 18:11:15 +02:00
Brad Jorsch
b1a3d390ae API: Cleanup list=filearchive
It should return fa_id so that a client can know what to pass to
action=revisiondelete and (soon) action=undelete. And the continuation
was very broken.

Change-Id: Icf93293f312d41b44d1c4972d75acf2ff2dc1b80
2014-07-15 12:59:56 -04:00