API:Protect

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page API:Protect and the translation is 66% complete.

Other languages:
Deutsch • ‎English • ‎dansk • ‎français • ‎português • ‎română • ‎русский • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

Токен

Чтобы изменить уровень защиты страницы, требуется CSRF токен. Этот токен одинаков для всех страниц, но меняется при каждом входе в учётную запись. CSRF токены могут быть получены посредством action=query&meta=tokens с параметром type=csrf (MW 1.24+).

В более ранних версиях MediaWiki требовался токен защиты («protect»), сейчас он считается устаревшим. Этот токен равен токену редактирования и одинаков для всех страниц, но меняется при каждом входе в систему. Токены защиты могут быть получены через API:Токены с type=protect (MW 1.20+), или используя следующий метод:

Получение токена защиты (устаревший метод)

Защита страниц

Страницы могут быть защищены с помощью action=protect.

Параметры

  • title: Страница, которую вы хотите защитить.
  • pageid: Идентификатор страницы, которую вы хотите защитить. Не может быть использован совместно с title. 1.20+
  • token: Токен «csrf», полученный посредством action=query&meta=tokens (или указанным выше способом).
  • protections: Список разделённых символом вертикальной черты параметров защиты, форматированный как action=group, например: edit=autoconfirmed|move=sysop
    • If you want to remove a protection, use all as group, e.g. edit=all|move=sysop
    • If you leave out an action, the associated value won't be changed, i.e. edit=sysop leaves the move protection untouched.
  • expiry: Pipe-separated list of expiry timestamps in GNU timestamp format. The first timestamp applies to the first protection in protections, the second to the second, etc. The timestamps infinite, indefinite and never result in a protection that will never expire. Timestamps like next Monday 16:04:57 or 9:28 PM tomorrow are also allowed, see the GNU web site for details.
    • The number of expiry timestamps must equal the number of protections, or you'll get an error message
      • An exception to this rule is made for backwards compatibility: if you specify exactly one expiry timestamp, it'll apply to all protections
    • Not setting this parameter is equivalent to setting it to infinite
  • reason: The reason for the (un)protection (optional).
  • tags: Change tags to apply to the entry in the protection log. 1.27+
  • cascade: If set, pages transcluded in the protected page will also be protected. If the required user level to edit is lower than the required user level to protect (e.g. edit=autoconfirmed), cascading can't be enabled, and this parameter will be silently ignored.
    • The latter is to prevent people who shouldn't be able to protect pages from protecting them anyway by transcluding them in a page with cascading protection.
  • watch: If set, add the page being (un)protected to the current user's watchlist. 1.15+ (устарело  в 1.17)
  • watchlist: Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch. Possible values: watch, unwatch, preferences, nochange (Default: preferences) 1.17+

Примеры

В этом примере все параметры передаются GET-запросом просто в целях простоты. action=protect требует POST-запросы, а GET-запросы приведут к ошибке.

Защита страницы «Main Page»: редактирование разрешено только автоподтверждённым участникам до 12:34:56 24 февраля 2015; переименование разрешено только администраторам до 13:06:20 25 марта 2015; включена каскадная защита.

Защита страница «Deletion log»: создание разрешено только администраторам, защита истекает через два месяца от текущего момента.

Возможные ошибки

В дополнение к обычным ошибкам:

Код Информация
notitle Параметр title должен быть задан.
notoken Параметр token должен быть задан.
noprotections Параметр protections должен быть задан.
invalidexpiry Время окончания «expiry» находится в прошлом.
Означает, что временная метка истечения срока защиты отсутствует или имеет недопустимый формат (например «November 31» или «24:05»).
pastexpiry Время окончания «expiry» находится в прошлом.
toofewexpiries Задано number временных меток истечения, необходимо number2.
Эта ошибка неудачно названа: она также вызывается, если вы указали слишком много сроков истечения защиты
cantedit Вы не можете защитить эту страницу, так как вы не можете её редактировать
create-titleexists Существующие названия не могут быть защищены с помощью create.
missingtitle-createonly Несуществующие названия страниц могут быть защищены только с помощью create.
protect-invalidaction Недопустимый тип защиты «type».
protect-invalidlevel Недопустимый уровень защиты «level».