Usage:
WikiPatches TcB? Friend ^Plans.* TcB? Ren Stimpy
Bugs/Enhancements?:
*** 50,57 **** $NumberDates $EarlyRules $LateRules $NewFS $KeepSize $SlashLinks $BGColor $UpperFirst $AdminBar $RepInterMap $DiffColor1 $DiffColor2 $ConfirmDel $MaskHosts $LockCrash $ConfigFile $HistoryEdit $OldThinLine ! @IsbnNames @IsbnPre @IsbnPost $EmailFile $FavIcon $RssDays $UserHeader ! $UserBody $StartUID $ParseParas $AuthorFooter $UseUpload $AllUpload $UploadDir $UploadUrl $LimitFileUrl $MaintTrimRc $SearchButton $EditNameLink $UseMetaWiki @ImageSites $BracketImg ); # Note: $NotifyDefault is kept because it was a config variable in 0.90 --- 50,59 ---- $NumberDates $EarlyRules $LateRules $NewFS $KeepSize $SlashLinks $BGColor $UpperFirst $AdminBar $RepInterMap $DiffColor1 $DiffColor2 $ConfirmDel $MaskHosts $LockCrash $ConfigFile $HistoryEdit $OldThinLine ! @IsbnNames @IsbnPre @IsbnPost $EmailFile $RestrictFile $FavIcon $RssDays ! $UserHeader ! $UserBody $StartUID $ParseParas $AuthorFooter $UseUpload ! $RestrictPages $AllUpload $UploadDir $UploadUrl $LimitFileUrl $MaintTrimRc $SearchButton $EditNameLink $UseMetaWiki @ImageSites $BracketImg ); # Note: $NotifyDefault is kept because it was a config variable in 0.90 *************** *** 132,137 **** --- 134,141 ---- $TableSyntax = 1; # 1 = wiki syntax tables, 0 = no table syntax $NewFS = 0; # 1 = new multibyte $FS, 0 = old $FS $UseUpload = 0; # 1 = allow uploads, 0 = no uploads + $RestrictPages=0; # 0 disable, 1 use restrict file for pages + # Minor options: $LogoLeft = 0; # 1 = logo on left, 0 = logo on right *************** *** 208,213 **** --- 212,218 ---- $RcOldFile = "$DataDir/oldrclog"; # Old RecentChanges logfile $IndexFile = "$DataDir/pageidx"; # List of all pages $EmailFile = "$DataDir/emails"; # Email notification lists + $RestrictFile= "$DataDir/restrict"; # regexps for restricted pgs, and userids if ($RepInterMap) { push @ReplaceableFiles, $InterFile; *************** *** 491,502 **** --- 496,524 ---- } return 0; # Request not handled } + sub CheckPageAllowed{ + my ($id)=@_; + return 1 unless $RestrictPages; + my $data=&ReadFileOrDie($RestrictFile); + foreach my $line(split /\n/,$data){ + my ($pattern,@users)=split / /, $line; + next unless $id =~ m/$pattern/; + &LoadUserData(); + return 1 if grep {$UserData{'username'} eq $_} @users; + return 0; + } + return 1; + } sub BrowsePage { my ($id) = @_; my ($fullHtml, $oldId, $allDiff, $showDiff, $openKept); my ($revision, $goodRevision, $diffRevision, $newText); + if (! &CheckPageAllowed($id)){ + $id = $NotFoundPg; + $id= $HomePage unless $id; + } &OpenPage($id); &OpenDefaultText(); $openKept = 0;