From: John T. <ta...@us...> - 2001-07-26 19:30:20
|
Update of /cvsroot/twiki/twiki/lib/TWiki In directory usw-pr-cvs1:/tmp/cvs-serv32765/lib/TWiki Modified Files: Plugins.pm Log Message: Hooks for sessions. Index: Plugins.pm =================================================================== RCS file: /cvsroot/twiki/twiki/lib/TWiki/Plugins.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** Plugins.pm 2001/07/18 09:52:56 1.11 --- Plugins.pm 2001/07/26 19:30:17 1.12 *************** *** 39,51 **** @registrableHandlers = ( ! 'initPlugin', # ( $topic, $web, $user, $installWeb ) ! 'commonTagsHandler', # ( $text, $topic, $web ) ! 'startRenderingHandler', # ( $text, $topic, $web ) ! 'outsidePREHandler', # ( $text, $web ) ! 'insidePREHandler', # ( $text, $web ) ! 'endRenderingHandler', # ( $text, $topic, $web ) ! 'afterEditHandler', # ( $text, $topic, $web ) ! 'beforeSaveHandler' # ( $text, $topic, $web ) ); %registeredHandlers = (); --- 39,60 ---- @registrableHandlers = ( ! 'initPlugin', # ( $topic, $web, $user, $installWeb ) ! 'commonTagsHandler', # ( $text, $topic, $web ) ! 'startRenderingHandler', # ( $text, $topic, $web ) ! 'outsidePREHandler', # ( $text, $web ) ! 'insidePREHandler', # ( $text, $web ) ! 'endRenderingHandler', # ( $text, $topic, $web ) ! 'afterEditHandler', # ( $text, $topic, $web ) ! 'beforeSaveHandler', # ( $text, $topic, $web ) ! 'writeHeaderHandler', # ( $query ) ! 'redirectCgiQueryHandler', # ( $query, $url ) ! 'getSessionValueHandler', # ( $key ) ! 'setSessionValueHandler' # ( $key, $value ) ); + + %onlyOnceHandlers = ( 'writeHeaderHandler' => 1, + 'redirectCgiQueryHandler' => 1, + 'getSessionValueHandler' => 1, + 'getSessionValueHandler' => 1 ); %registeredHandlers = (); *************** *** 158,165 **** return; } foreach $theHandler ( @{$registeredHandlers{$handlerName}} ) { # apply handler on the remaining list of args ! &$theHandler; } } --- 167,183 ---- return; } + my $status; + foreach $theHandler ( @{$registeredHandlers{$handlerName}} ) { # apply handler on the remaining list of args ! $status = &$theHandler; ! if( $onlyOnceHandlers{$handlerName} ) { ! if( $status ) { ! return $status; ! } ! } } + + return undef; } *************** *** 225,228 **** --- 243,263 ---- } + sub initializeUser + { + # my( $theRemoteUser, $theUrl, $thePathInfo ) = @_; + my $user; + my $p = "TWiki::Plugins::SessionPlugin"; + my $sub = $p.'::initializeUserHandler'; + eval "use $p;"; + if( defined( &$sub ) ) { + $user = &$sub( @_ ); + } + if( ! defined( $user ) ) { + $user = &TWiki::initializeRemoteUser( $_[0] ); + } + + return $user; + } + # ========================= sub commonTagsHandler *************** *** 270,273 **** --- 305,340 ---- unshift @_, ( 'endRenderingHandler' ); &applyHandlers; + } + + # ========================= + sub writeHeaderHandler + { + # Called by TWiki.writeHeader + unshift @_, ( 'writeHeaderHandler' ); + return &applyHandlers; + } + + # ========================= + sub redirectCgiQueryHandler + { + # Called by TWiki.redirect + unshift @_, ( 'redirectCgiQueryHandler' ); + return &applyHandlers; + } + + # ========================= + sub getSessionValueHandler + { + # Called by TWiki.getSessionValue + unshift @_, ( 'getSessionValueHandler' ); + return &applyHandlers; + } + + # ========================= + sub setSessionValueHandler + { + # Called by TWiki.getSessionValue + unshift @_, ( 'setSessionValueHandler' ); + return &applyHandlers; } |