welcome: please sign in

The following 264 words could not be found in the dictionary of 0 words and are highlighted below:
any   args   cfg   Change   Contents   cookie   def   Dependencies   dict   dir   domain   example   execute   farmconfig   ffffcc   formatter   get   Get   highlight   if   import   in   is   lifetime   Loaded   macro   me   name   new   None   Not   Of   org   page   python   randint   random   Remember   request   return   rowbgcolor   send   service   session   sessions   Set   siteid   siteidmagic   state   storing   Table   tablewidth   test   Text   text   time   to   trail   until   User   user   value   wiki1   wiki2   wikiconfig   you   автоматически   авторизованных   актуальный   анонимных   ассоциативным   аутентифицированных   больше   будут   быть   вечные   Вики   вики   Возможность   воспользоваться   восстанавливаются   Время   время   всех   второй   входят   генерации   генерировать   данной   данный   Для   для   должен   Домен   домене   доменных   достаточно   доступны   дробным   другие   Единое   Единственный   Если   если   есть   жизни   задавать   записей   записям   запоминаются   значение   Значение   значения   игнорирование   из   Изначальное   или   именах   имени   Имя   имя   использование   использованием   использовании   использованию   использования   использовать   использоваться   используемый   используется   используются   использующей   использующих   История   каждой   Как   как   кода   Командам   конфигурации   кортежа   который   куки   любые   Макро   макрокоманды   массивом   механизм   Механизм   механизма   модулю   может   можно   Мойн   момент   на   Например   настроен   настройках   настройки   не   независимых   Нельзя   необходимо   необходимости   необходимость   Несколько   нулю   нуля   нём   общий   общих   одинаковое   одном   означает   Описание   Отдельностоящая   отдельных   отключает   относящиеся   отрицательное   параметр   параметра   Параметры   Первый   переменных   По   по   подробнее   полем   пользователей   пользователем   пользователь   Пользователю   помощи   Помощь   портам   Посему   посещённых   последующем   посредством   при   При   приведёт   приводит   Пример   Проверяет   программировании   путь   путям   работе   равное   раздельные   различные   различных   разным   разных   рамках   расширений   реализован   сеанса   сеансов   сеансовых   сеансы   сервиса   сессий   сессионной   следует   следующие   случае   см   совпадать   состав   состояние   сохраняемые   специального   страниц   Супер   суперпользователя   так   то   указал   указание   указать   умолчанию   устроены   учётным   учётных   файла   файлам   файлов   файлы   ферма   ферме   фермы   хранилище   часах   частей   Часть   что   экземпляры   элемент   это   явно  

Clear message
location: ПомощьПоСеансам

Как устроены сеансы в МойнМойн

Механизм сеансов (sessions) в МойнМойн реализован при помощи специального сервиса сеансов, который может быть настроен посредством параметра cfg.session_service конфигурации.

В состав сервиса сеансов на данный момент входят:

Параметры конфигурации, относящиеся к работе сеансов

Имя параметра

Значение по умолчанию

Описание

cookie_name

None

Часть имени сессионной куки. None означает необходимость генерировать имя из частей URL, указание 'siteidmagic' означает необходимость использовать параметр cfg.siteid (имя файла конфигурации), любые другие значения будут использоваться как есть.

cookie_domain

None

Домен, используемый в сеансовых куки.

cookie_lifetime

(0, 12)

Время жизни куки в часах, может быть дробным. Первый элемент кортежа используется для анонимных сеансов, второйдля сессий аутентифицированных пользователей. Для анонимных сессий, значение, равное 0, означает, что куки не используются; больше нулявремя в часах. Для аутентифицированных пользователей, значение больше нуля означает время в часах или вечные куки, если пользователь указал «Remember me» в настройках; отрицательное значение означает время в часах по модулю значения и игнорирование настройки «Remember me»; значение, равное нулю, отключает использование сеансов для авторизованных пользователей.

Отдельностоящая вики

Единственный актуальный для данной конфигурации параметр это cookie_lifetime.

Несколько независимых вики на одном домене, использующих раздельные файлы wikiconfig (не farmconfig)

Изначальное значение параметра cookie_name = None приводит к генерации различных куки и сеансов для каждой вики.

Нельзя использовать cookie_name = 'siteidmagic' для отдельных сеансов, так как это приведёт к использованию имени куки MOIN_SESSION_wikiconfig. Посему следует или явно задавать различные значения параметра cookie_name для каждой вики или использовать cookie_name = None.

Вики-ферма, различные экземпляры на разных доменных именах

Например, wiki1.example.org и wiki2.example.org.

Если необходимо использование общих в рамках фермы сеансов и учётных записей, то можно указать следующие настройки в farmconfig:

   1     cookie_domain = '.example.org'                         # Домен куки, должен совпадать для всех вики в ферме.
   2     cookie_name = 'имя_фермы'                              # Имя куки, одинаковое для всех вики в ферме
   3     session_dir = '/путь/к/файлам/сеансов/общий/для/фермы' # Единое хранилище для файлов сеансов
   4     user_dir = '/путь/к/учётным/записям/общий/для/фермы'   # Единое хранилище для учётных записей

Вики-ферма, различные экземпляры доступны по разным путям

Например, example.org/wiki1 и example.org/wiki2.

Если необходимо использование общих в рамках фермы сеансов и учётных записей, то можно указать следующие настройки в farmconfig:

   1     cookie_name = 'имя_фермы'                              # Имя куки, одинаковое для всех вики в ферме
   2     session_dir = '/путь/к/файлам/сеансов/общий/для/фермы' # Единое хранилище для файлов сеансов
   3     user_dir = '/путь/к/учётным/записям/общий/для/фермы'   # Единое хранилище для учётных записей

Вики-ферма, различные экземпляры доступны по разным портам

Например, example.org:8000 и example.org:8001.

Если необходимо использование общих в рамках фермы сеансов и учётных записей, то можно указать следующие настройки в farmconfig:

   1     cookie_name = 'имя_фермы'                              # Имя куки, одинаковое для всех вики в ферме
   2     session_dir = '/путь/к/файлам/сеансов/общий/для/фермы' # Единое хранилище для файлов сеансов
   3     user_dir = '/путь/к/учётным/записям/общий/для/фермы'   # Единое хранилище для учётных записей

Пример кода с использованием механизма сеансов

При программировании расширений в случае необходимости использования сеансовых переменных достаточно воспользоваться полем параметра request.session как ассоциативным массивом (dict); значения, сохраняемые в нём, автоматически запоминаются и восстанавливаются при последующем использовании сеанса.

Пример макрокоманды, использующей механизм сеансов:

   1 #!python
   2 # -*- coding: utf-8 -*-
   3 
   4 """
   5    Проверяет состояние сеанса.
   6 """
   7 
   8 Dependencies = ['time']
   9 
  10 def execute(macro, args):
  11     _ = macro.request.getText
  12     
  13    if macro.request.session.is_new:
  14        return macro.formatter.text(_('Not storing any state until you send a cookie.'))
  15    if 'test' in macro.request.session:
  16        return macro.formatter.text(_("Loaded value %d") % macro.request.session['test'])
  17    import random
  18    value = random.randint(1, 100000)
  19    macro.request.session['test'] = value
  20    return macro.formatter.text(_("Set to value %d") % value)