Como funcionam as sessões no MoinMoin

As sessões no MoinMoin são implementadas utilizando a framework de autenticação. Para mais detalhes, consulte o tópico AjudaNaAutenticação. Por omissão, a função `MoinMoin.auth.moin_session` encontra-se na lista `config.auth` e é responsável pela gestão das sessões. Pode utilizá-la com qualquer outro método de autenticação, se necessitar de sessões.

Como um programador, de forma a utilizar variáveis de sessões, pode utilizar a `request.session` como um dicionário. Os valores aí armazenados serão guardados automaticamente e restaurados se uma sessão estiver disponível.

O código que utiliza a framework da sessão inclui actualmente:

Sessões anónimas

As sessões anónimas são suportadas, ao incluir a função `MoinMoin.auth.moin_anon_session` no `config.auth` e configurando o `config.anonymous_cookie_lifetime`. As cookies das sessões anónimas expiram após as horas definidas em `config.anonymous_cookie_lifetime` (pode ser parcial), no entanto, o acto de expirar não é verificado. O estado guardado é removido uma hora depois da cookie de sessão expirar.

Substituir moin_session

É possível substituir o `moin_session` na lista de configuração `auth`. A autenticação que lidar com a nova sessão deve pedir o `request.session` baseado numa cookie ou em outros dados. O objecto `request.session` tem de ser um objecto do tipo dicionário e deve implementar a duração dos dados de sessão, cf. `MoinMoin.auth.SessionData`.

Exemplo de código de sessão

Eis um exemplo de macros, utilizando o código de sessão:

   1 # -*- coding: iso-8859-1 -*-
   2 
   3 """
   4     Testa o estado da sessão.
   5 """
   6 
   7 Dependencies = ['time']
   8 
   9 def execute(macro, args):
  10     if 'test' in macro.request.session:
  11         return macro.formatter.text(macro.request.session['test'])
  12     import random
  13     value = random.randint(1, 100000)
  14     macro.request.session['test'] = value
  15     return macro.formatter.text("set to value %d" % value)