Please note: This is the read-only master18 wiki for moin 1.8.x content. For moin 1.9.x content, please see the same page in master19 wiki.

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

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

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

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

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

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

Описание

cookie_domain

None

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

cookie_path

None

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

cookie_lifetime

(0, 12)

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

(!) В случае использования вики-фермы и желания использовать сеансы, общие для всех вики, необходимо поменять соответствующим образом cookie_domain и/или cookie_path.

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

При программировании расширений в случае необходимости использования сеансовых переменных достаточно воспользоваться полем параметра 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 
ERROR: unindent does not match any outer indentation level

MoinMaster: ПомощьПоСеансам (last edited 2009-12-04 17:16:49 by localhost)