Package TWiki::Client

The package is also a Factory for login managers and also the base class for all login managers.

On it's own, an object of this class is used when you specify 'none' in the security setup section of configure. When it is used, logins are not supported. If you want to authenticate users then you should consider TemplateLogin or ApacheLogin , which are subclasses of this class.

If you are building a new login manager, then you should write a new subclass of this class, implementing the methods marked as VIRTUAL. There are already examples in the lib/TWiki/Client directory.

The class has extensive tracing, which is enabled by $TWiki::cfg{Trace}{Client.pm}. The tracing is done in such a way as to let the perl optimiser optimise out the trace function as a no-op if tracing is disabled.

ObjectData twiki

The TWiki object this login manager is attached to.

StaticMethod makeClient ($twiki) -> $TWiki::Client

Factory method, used to generate a new TWiki::Client object for the given session.

ObjectMethod loadSession ()

Get the client session data, using the cookie and/or the request URL. Set up appropriate session variables in the twiki object and return the login name.

ObjectMethod checkAccess ()

Check if the script being run in this session is authorised for execution. If not, throw an access control exception.

ObjectMethod finish

Complete processing after the client's HTTP request has been responded to. Flush the user's session (if any) to disk.

StaticMethod expireDeadSessions ()

Delete sessions that are sitting around but are really expired. This assumes that the sessions are stored as files.

This is a static method, but requires TWiki::cfg. It is designed to be run from a session or from a cron job.

ObjectMethod userLoggedIn ($login,$wikiname)

Called when the user logs in. It's invoked from TWiki::UI::Register::finish for instance, when the user follows the link in their verification email message.

  • $login - string login name
  • $wikiname - string wikiname

ObjectMethod endRenderingHandler ()

This handler is called by getRenderedVersion just before the plugins postRenderingHandler. So it is passed all HTML text just before it is printed.

DEPRECATED Use postRenderingHandler instead.

ObjectMethod addCookie ($c)

Add a cookie to the list of cookies for this session.

  • $c - a CGI::Cookie

ObjectMethod modifyHeader (\%header)

Modify a HTTP header
  • \%header - header entries

ObjectMethod redirectCgiQuery ($url)

Generate a