From: <de...@de...> - 2007-10-30 05:01:15
|
Author: SvenDowideit Date: 2007-10-30 00:01:18 -0500 (Tue, 30 Oct 2007) New Revision: 15433 Modified: twiki/branches/TWikiRelease04x02/lib/TWiki/Func.pm twiki/branches/TWikiRelease04x02/lib/TWiki/UserMapping.pm twiki/branches/TWikiRelease04x02/lib/TWiki/Users.pm Log: Item4908: don't call the main usermapper if its already returned false to handlesUser Modified: twiki/branches/TWikiRelease04x02/lib/TWiki/Func.pm =================================================================== --- twiki/branches/TWikiRelease04x02/lib/TWiki/Func.pm 2007-10-29 21:31:33 UTC (rev 15432) +++ twiki/branches/TWikiRelease04x02/lib/TWiki/Func.pm 2007-10-30 05:01:18 UTC (rev 15433) @@ -1937,7 +1937,7 @@ same TWiki installation. If =$passthru= is set to a true value, then TWiki will save the current URL parameters, and then try to restore them on the other side of the redirect. Parameters are stored on the server in a cache -file (see ={PassthroughDir} in =configure=). +file. Note that if =$passthru= is set, then any parameters in =$url= will be lost when the old parameters are restored. if you want to change any parameter Modified: twiki/branches/TWikiRelease04x02/lib/TWiki/UserMapping.pm =================================================================== --- twiki/branches/TWikiRelease04x02/lib/TWiki/UserMapping.pm 2007-10-29 21:31:33 UTC (rev 15432) +++ twiki/branches/TWikiRelease04x02/lib/TWiki/UserMapping.pm 2007-10-30 05:01:18 UTC (rev 15433) @@ -63,7 +63,7 @@ sub new { my ($class, $session, $mid) = @_; my $this = bless( { - mapping_id => $mid, + mapping_id => $mid || '', session => $session, }, $class ); return $this; @@ -126,17 +126,20 @@ return 0; } -=pod +=begin twiki ----++ ObjectMethod getCanonicalUserID ($login) -> cUID +---++ ObjectMethod getCanonicalUserID ($login, $dontcheck) -> cUID Convert a login name to the corresponding canonical user name. The canonical name can be any string of 7-bit alphanumeric and underscore characters, and must correspond 1:1 to the login name. (undef on failure) +(if dontcheck is true, return a cUID for a nonexistant user too - used for registration) + Subclasses *must* implement this method. + =cut sub getCanonicalUserID { Modified: twiki/branches/TWikiRelease04x02/lib/TWiki/Users.pm =================================================================== --- twiki/branches/TWikiRelease04x02/lib/TWiki/Users.pm 2007-10-29 21:31:33 UTC (rev 15432) +++ twiki/branches/TWikiRelease04x02/lib/TWiki/Users.pm 2007-10-30 05:01:18 UTC (rev 15433) @@ -208,9 +208,10 @@ if ($this->{basemapping}->handlesUser($cUID, $login, $wikiname)); return $this->{mapping} if ($this->{mapping}->handlesUser($cUID, $login, $wikiname)); - # TODO: I think it should fall back to basemapping, but to do that - # I need to get even more clever :/ - return $this->{mapping} unless ($noFallBack); + #THIS MUS BE basemapping, otherwise the mapper implementations need to + #implement fallback / defaults for users they don't know about (which is + #BaseMappings job) + return $this->{basemapping} unless ($noFallBack); return undef; } @@ -367,7 +368,7 @@ unless ($cUID) { #must be a wikiname my( $web, $topic ) = $this->{session}->normalizeWebTopicName( '', $login ); my $found = $this->findUserByWikiName($topic); - $cUID = $found->[0] if scalar(@$found); + $cUID = $found->[0] if ($found && scalar(@$found)); # print STDERR "\nfindUserByWikiName"; } } @@ -433,6 +434,8 @@ my( $this, $cUID ) = @_; $cUID = $this->getCanonicalUserID($cUID); #$this->ASSERT_IS_CANONICAL_USER_ID($cUID) if DEBUG; + + return () unless ($cUID); return $this->_getMapping($cUID)->getEmails( $cUID ); } @@ -728,7 +731,7 @@ my $otherMapping = ($mapping eq $this->{basemapping}) ? $this->{mapping} : $this->{basemapping}; my $wikiname = $this->_getMapping($cUID)->getWikiName($cUID); my $cUIDList = $otherMapping->findUserByWikiName($wikiname); - my $othercUID = $cUIDList->[0] if scalar(@$cUIDList); + my $othercUID = $cUIDList->[0] if ($cUIDList && scalar(@$cUIDList)); #print STDERR "---------------------------$cUID == $wikiname == $othercUID\n"; if (($mapping eq $otherMapping) || |