welcome: please sign in

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

location: AjudaComSessões

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)