From: <de...@de...> - 2007-05-31 18:24:29
|
Author: SvenDowideit Date: 2007-05-31 13:24:28 -0500 (Thu, 31 May 2007) New Revision: 13999 Modified: twiki/branches/MAIN/lib/TWiki/LoginManager.pm twiki/branches/MAIN/lib/TWiki/LoginManager/TemplateLogin.pm twiki/branches/MAIN/lib/TWiki/Users.pm twiki/branches/MAIN/lib/TWiki/Users/BaseUserMapping.pm twiki/branches/MAIN/twikiplugins/TWikiUserMappingContrib/lib/TWiki/Users/TWikiUserMapping.pm Log: Item3954: finally make template login template based - usermappers now tell TemplateLogin which tmpl set to use Modified: twiki/branches/MAIN/lib/TWiki/LoginManager/TemplateLogin.pm =================================================================== --- twiki/branches/MAIN/lib/TWiki/LoginManager/TemplateLogin.pm 2007-05-31 13:59:57 UTC (rev 13998) +++ twiki/branches/MAIN/lib/TWiki/LoginManager/TemplateLogin.pm 2007-05-31 18:24:28 UTC (rev 13999) @@ -142,8 +142,10 @@ # Eat these so there's no risk of accidental passthrough $query->delete('origurl', 'username', 'password'); + # UserMappings can over-ride where the login template is defined + my $loginTemplate = $users->loginTemplateName(); #defaults to login.tmpl my $tmpl = $twiki->{templates}->readTemplate( - 'login', $twiki->getSkin() ); + $loginTemplate, $twiki->getSkin() ); my $banner = $twiki->{templates}->expandTemplate( 'LOG_IN_BANNER' ); my $note = ''; Modified: twiki/branches/MAIN/lib/TWiki/LoginManager.pm =================================================================== --- twiki/branches/MAIN/lib/TWiki/LoginManager.pm 2007-05-31 13:59:57 UTC (rev 13998) +++ twiki/branches/MAIN/lib/TWiki/LoginManager.pm 2007-05-31 18:24:28 UTC (rev 13999) @@ -107,7 +107,7 @@ ASSERT($twiki->isa( 'TWiki')) if DEBUG; #user is trying to sudo login - use BaseUserMapping - if ($twiki->{cgiQuery}->param('sudo')) { + if ($twiki->{cgiQuery}->param('sudo') && $twiki->{cgiQuery}->param('sudo') eq 'sudo' ) { #promote / login to internal twiki admin $twiki->enterContext('sudo_login'); } Modified: twiki/branches/MAIN/lib/TWiki/Users/BaseUserMapping.pm =================================================================== --- twiki/branches/MAIN/lib/TWiki/Users/BaseUserMapping.pm 2007-05-31 13:59:57 UTC (rev 13998) +++ twiki/branches/MAIN/lib/TWiki/Users/BaseUserMapping.pm 2007-05-31 18:24:28 UTC (rev 13999) @@ -30,7 +30,6 @@ * TWikiAdmin - uses the password that was set in Configure (IF its not null) * TWikiGuest - password guest * UnknownUser - TODO: * TWikiContributor - 1 Jan 2005 * TWikiRegistrationAgent - 1 Jan 2005 @@ -111,6 +110,18 @@ =pod +---++ ObjectMethod loginTemplateName () -> templateFile + +allows UserMappings to come with customised login screens - that should preffereably only over-ride the UI function + +=cut + +sub loginTemplateName { + return 'login.sudo'; +} + +=pod + ---++ ObjectMethod finish () cleans up references Modified: twiki/branches/MAIN/lib/TWiki/Users.pm =================================================================== --- twiki/branches/MAIN/lib/TWiki/Users.pm 2007-05-31 13:59:57 UTC (rev 13998) +++ twiki/branches/MAIN/lib/TWiki/Users.pm 2007-05-31 18:24:28 UTC (rev 13999) @@ -109,7 +109,7 @@ $TWiki::cfg{AdminUserLogin} = $TWiki::cfg{AdminUserWikiName} unless ($TWiki::cfg{Register}{AllowLoginName}); $this->{loginManager} = TWiki::LoginManager::makeLoginManager( $session ); - unless (( $session->{cgiQuery}->param('sudo') && $session->{cgiQuery}->param('sudo') eq 'sudo' )) { + unless ( $session->inContext('sudo_login')) { #don't take not of session info if the user has asked for a sudo login $this->{remoteUser} = $this->initialiseUserFromSession($session); } @@ -124,11 +124,7 @@ my $implUserMappingManager = $TWiki::cfg{UserMappingManager}; $implUserMappingManager = 'TWiki::Users::TWikiUserMapping' if( $implUserMappingManager eq 'none' ); -# $implUserMappingManager = 'TWiki::Users::BaseUserMapping' if( $session->{cgiQuery}->param('sudo') && $session->{cgiQuery}->param('sudo') eq 'sudo' ); -# $implUserMappingManager = 'TWiki::Users::BaseUserMapping' if( $this->{remoteUser} && $this->{remoteUser} eq $TWiki::cfg{AdminUserLogin} ); -#print STDERR 'remoteUser = '.($this->{remoteUser}||'undef').' twikiadmin = '.$TWiki::cfg{AdminUserLogin}; - -#print STDERR "making an $implUserMappingManager"; + if ( $implUserMappingManager eq 'TWiki::Users::BaseUserMapping') { $this->{mapping} = $this->{basemapping}; #TODO: probly make undef.. } else { @@ -144,8 +140,25 @@ return $this; } + =pod +---++ ObjectMethod loginTemplateName () -> templateFile + +allows UserMappings to come with customised login screens - that should preffereably only over-ride the UI function + +=cut + +sub loginTemplateName { + my $this = shift; + + #use login.sudo.tmpl for admin logins + return $this->{basemapping}->loginTemplateName() if ($this->{session}->inContext('sudo_login')); + return $this->{mapping}->loginTemplateName() || 'login'; +} + +=pod + ---++ ObjectMethod getMapping ($cUID, $login, $wikiname) -> usermapping object should really be PRIVATE. Modified: twiki/branches/MAIN/twikiplugins/TWikiUserMappingContrib/lib/TWiki/Users/TWikiUserMapping.pm =================================================================== --- twiki/branches/MAIN/twikiplugins/TWikiUserMappingContrib/lib/TWiki/Users/TWikiUserMapping.pm 2007-05-31 13:59:57 UTC (rev 13998) +++ twiki/branches/MAIN/twikiplugins/TWikiUserMappingContrib/lib/TWiki/Users/TWikiUserMapping.pm 2007-05-31 18:24:28 UTC (rev 13999) @@ -83,6 +83,18 @@ =pod +---++ ObjectMethod loginTemplateName () -> templateFile + +allows UserMappings to come with customised login screens - that should preffereably only over-ride the UI function + +=cut + +sub loginTemplateName { + return 'login'; +} + +=pod + ---++ ObjectMethod finish () cleans up references |