Fossil SCM

Disable additional hyperlinks when "history" privilege is disabled (by default when the user has not signed in as "anonymous" or other known user.) Help prevent spiders for soaking up bandwidth.

drh 2009-08-30 01:22 trunk
Commit 5fe3aee8394b13baf8e71aef12228abce54aa2c6
2 files changed +42 -13 +5 -1
+42 -13
--- src/info.c
+++ src/info.c
@@ -364,11 +364,18 @@
364364
int pid = db_column_int(&q,0);
365365
int fid = db_column_int(&q,1);
366366
const char *zName = db_column_text(&q,2);
367367
const char *zOld = db_column_text(&q,3);
368368
const char *zNew = db_column_text(&q,4);
369
- if( zOld && zNew ){
369
+ if( !g.okHistory ){
370
+ if( zNew==0 ){
371
+ @ <p>Deleted %h(zName)</p>
372
+ continue;
373
+ }else{
374
+ @ <p>Changes to %h(zName)</p>
375
+ }
376
+ }else if( zOld && zNew ){
370377
@ <p>Modified <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
371378
@ from <a href="%s(g.zBaseURL)/artifact/%s(zOld)">[%s(zOld)]</a>
372379
@ to <a href="%s(g.zBaseURL)/artifact/%s(zNew)">[%s(zNew)]</a></p>
373380
}else if( zOld ){
374381
@ <p>Deleted <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
@@ -584,12 +591,15 @@
584591
const char *zComment = db_column_text(&q, 1);
585592
@ <h2>Check-in %s(zUuid)</h2>
586593
@ <p>Made by
587594
hyperlink_to_user(zUser,zDate," on");
588595
hyperlink_to_date(zDate, ":");
589
- @ %w(zComment). <a href="%s(g.zBaseURL)/ci/%s(zUuid)">[details]</a></p>
590
- @ <hr>
596
+ @ %w(zComment).
597
+ if( g.okHistory ){
598
+ @ <a href="%s(g.zBaseURL)/ci/%s(zUuid)">[details]</a>
599
+ }
600
+ @ </p><hr>
591601
}
592602
db_finalize(&q);
593603
db_prepare(&q,
594604
"SELECT pid, fid, name"
595605
" FROM mlink, filename"
@@ -600,11 +610,15 @@
600610
);
601611
while( db_step(&q)==SQLITE_ROW ){
602612
int pid = db_column_int(&q,0);
603613
int fid = db_column_int(&q,1);
604614
const char *zName = db_column_text(&q,2);
605
- @ <p><a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a></p>
615
+ if( g.okHistory ){
616
+ @ <p><a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a></p>
617
+ }else{
618
+ @ <p>%h(zName)</p>
619
+ }
606620
@ <blockquote><pre>
607621
append_diff(pid, fid);
608622
@ </pre></blockquote>
609623
}
610624
db_finalize(&q);
@@ -656,11 +670,15 @@
656670
if( cnt>0 ){
657671
@ Also file
658672
}else{
659673
@ File
660674
}
661
- @ <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
675
+ if( g.okHistory ){
676
+ @ <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
677
+ }else{
678
+ @ %h(zName)
679
+ }
662680
@ part of check-in
663681
hyperlink_to_uuid(zVers);
664682
@ - %w(zCom) by
665683
hyperlink_to_user(zUser,zDate," on");
666684
hyperlink_to_date(zDate,".");
@@ -687,11 +705,15 @@
687705
if( cnt>0 ){
688706
@ Also wiki page
689707
}else{
690708
@ Wiki page
691709
}
692
- @ [<a href="%s(g.zBaseURL)/wiki?name=%t(zPagename)">%h(zPagename)</a>]
710
+ if( g.okHistory ){
711
+ @ [<a href="%s(g.zBaseURL)/wiki?name=%t(zPagename)">%h(zPagename)</a>]
712
+ }else{
713
+ @ [%h(zPagename)]
714
+ }
693715
@ by
694716
hyperlink_to_user(zUser,zDate," on");
695717
hyperlink_to_date(zDate,".");
696718
nWiki++;
697719
cnt++;
@@ -741,11 +763,11 @@
741763
char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
742764
@ Control artifact.
743765
if( pDownloadName && blob_size(pDownloadName)==0 ){
744766
blob_append(pDownloadName, zUuid, -1);
745767
}
746
- }else if( linkToView ){
768
+ }else if( linkToView && g.okHistory ){
747769
@ <a href="%s(g.zBaseURL)/artifact/%d(rid)">[view]</a>
748770
}
749771
}
750772
751773
@@ -1029,16 +1051,23 @@
10291051
}
10301052
style_header("Ticket Change Details");
10311053
zDate = db_text(0, "SELECT datetime(%.12f)", m.rDate);
10321054
memcpy(zTktName, m.zTicketUuid, 10);
10331055
zTktName[10] = 0;
1034
- @ <h2>Changes to ticket <a href="%s(m.zTicketUuid)">%s(zTktName)</a></h2>
1035
- @
1036
- @ <p>By %h(m.zUser) on %s(zDate). See also:
1037
- @ <a href="%s(g.zTop)/artifact/%T(zUuid)">artifact content</a>, and
1038
- @ <a href="%s(g.zTop)/tkthistory/%s(m.zTicketUuid)">ticket history</a>
1039
- @ </p>
1056
+ if( g.okHistory ){
1057
+ @ <h2>Changes to ticket <a href="%s(m.zTicketUuid)">%s(zTktName)</a></h2>
1058
+ @
1059
+ @ <p>By %h(m.zUser) on %s(zDate). See also:
1060
+ @ <a href="%s(g.zTop)/artifact/%T(zUuid)">artifact content</a>, and
1061
+ @ <a href="%s(g.zTop)/tkthistory/%s(m.zTicketUuid)">ticket history</a>
1062
+ @ </p>
1063
+ }else{
1064
+ @ <h2>Changes to ticket %s(zTktName)</h2>
1065
+ @
1066
+ @ <p>By %h(m.zUser) on %s(zDate).
1067
+ @ </p>
1068
+ }
10401069
@
10411070
@ <ol>
10421071
free(zDate);
10431072
ticket_output_change_artifact(&m);
10441073
manifest_clear(&m);
10451074
--- src/info.c
+++ src/info.c
@@ -364,11 +364,18 @@
364 int pid = db_column_int(&q,0);
365 int fid = db_column_int(&q,1);
366 const char *zName = db_column_text(&q,2);
367 const char *zOld = db_column_text(&q,3);
368 const char *zNew = db_column_text(&q,4);
369 if( zOld && zNew ){
 
 
 
 
 
 
 
370 @ <p>Modified <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
371 @ from <a href="%s(g.zBaseURL)/artifact/%s(zOld)">[%s(zOld)]</a>
372 @ to <a href="%s(g.zBaseURL)/artifact/%s(zNew)">[%s(zNew)]</a></p>
373 }else if( zOld ){
374 @ <p>Deleted <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
@@ -584,12 +591,15 @@
584 const char *zComment = db_column_text(&q, 1);
585 @ <h2>Check-in %s(zUuid)</h2>
586 @ <p>Made by
587 hyperlink_to_user(zUser,zDate," on");
588 hyperlink_to_date(zDate, ":");
589 @ %w(zComment). <a href="%s(g.zBaseURL)/ci/%s(zUuid)">[details]</a></p>
590 @ <hr>
 
 
 
591 }
592 db_finalize(&q);
593 db_prepare(&q,
594 "SELECT pid, fid, name"
595 " FROM mlink, filename"
@@ -600,11 +610,15 @@
600 );
601 while( db_step(&q)==SQLITE_ROW ){
602 int pid = db_column_int(&q,0);
603 int fid = db_column_int(&q,1);
604 const char *zName = db_column_text(&q,2);
605 @ <p><a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a></p>
 
 
 
 
606 @ <blockquote><pre>
607 append_diff(pid, fid);
608 @ </pre></blockquote>
609 }
610 db_finalize(&q);
@@ -656,11 +670,15 @@
656 if( cnt>0 ){
657 @ Also file
658 }else{
659 @ File
660 }
661 @ <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
 
 
 
 
662 @ part of check-in
663 hyperlink_to_uuid(zVers);
664 @ - %w(zCom) by
665 hyperlink_to_user(zUser,zDate," on");
666 hyperlink_to_date(zDate,".");
@@ -687,11 +705,15 @@
687 if( cnt>0 ){
688 @ Also wiki page
689 }else{
690 @ Wiki page
691 }
692 @ [<a href="%s(g.zBaseURL)/wiki?name=%t(zPagename)">%h(zPagename)</a>]
 
 
 
 
693 @ by
694 hyperlink_to_user(zUser,zDate," on");
695 hyperlink_to_date(zDate,".");
696 nWiki++;
697 cnt++;
@@ -741,11 +763,11 @@
741 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
742 @ Control artifact.
743 if( pDownloadName && blob_size(pDownloadName)==0 ){
744 blob_append(pDownloadName, zUuid, -1);
745 }
746 }else if( linkToView ){
747 @ <a href="%s(g.zBaseURL)/artifact/%d(rid)">[view]</a>
748 }
749 }
750
751
@@ -1029,16 +1051,23 @@
1029 }
1030 style_header("Ticket Change Details");
1031 zDate = db_text(0, "SELECT datetime(%.12f)", m.rDate);
1032 memcpy(zTktName, m.zTicketUuid, 10);
1033 zTktName[10] = 0;
1034 @ <h2>Changes to ticket <a href="%s(m.zTicketUuid)">%s(zTktName)</a></h2>
1035 @
1036 @ <p>By %h(m.zUser) on %s(zDate). See also:
1037 @ <a href="%s(g.zTop)/artifact/%T(zUuid)">artifact content</a>, and
1038 @ <a href="%s(g.zTop)/tkthistory/%s(m.zTicketUuid)">ticket history</a>
1039 @ </p>
 
 
 
 
 
 
 
1040 @
1041 @ <ol>
1042 free(zDate);
1043 ticket_output_change_artifact(&m);
1044 manifest_clear(&m);
1045
--- src/info.c
+++ src/info.c
@@ -364,11 +364,18 @@
364 int pid = db_column_int(&q,0);
365 int fid = db_column_int(&q,1);
366 const char *zName = db_column_text(&q,2);
367 const char *zOld = db_column_text(&q,3);
368 const char *zNew = db_column_text(&q,4);
369 if( !g.okHistory ){
370 if( zNew==0 ){
371 @ <p>Deleted %h(zName)</p>
372 continue;
373 }else{
374 @ <p>Changes to %h(zName)</p>
375 }
376 }else if( zOld && zNew ){
377 @ <p>Modified <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
378 @ from <a href="%s(g.zBaseURL)/artifact/%s(zOld)">[%s(zOld)]</a>
379 @ to <a href="%s(g.zBaseURL)/artifact/%s(zNew)">[%s(zNew)]</a></p>
380 }else if( zOld ){
381 @ <p>Deleted <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
@@ -584,12 +591,15 @@
591 const char *zComment = db_column_text(&q, 1);
592 @ <h2>Check-in %s(zUuid)</h2>
593 @ <p>Made by
594 hyperlink_to_user(zUser,zDate," on");
595 hyperlink_to_date(zDate, ":");
596 @ %w(zComment).
597 if( g.okHistory ){
598 @ <a href="%s(g.zBaseURL)/ci/%s(zUuid)">[details]</a>
599 }
600 @ </p><hr>
601 }
602 db_finalize(&q);
603 db_prepare(&q,
604 "SELECT pid, fid, name"
605 " FROM mlink, filename"
@@ -600,11 +610,15 @@
610 );
611 while( db_step(&q)==SQLITE_ROW ){
612 int pid = db_column_int(&q,0);
613 int fid = db_column_int(&q,1);
614 const char *zName = db_column_text(&q,2);
615 if( g.okHistory ){
616 @ <p><a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a></p>
617 }else{
618 @ <p>%h(zName)</p>
619 }
620 @ <blockquote><pre>
621 append_diff(pid, fid);
622 @ </pre></blockquote>
623 }
624 db_finalize(&q);
@@ -656,11 +670,15 @@
670 if( cnt>0 ){
671 @ Also file
672 }else{
673 @ File
674 }
675 if( g.okHistory ){
676 @ <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
677 }else{
678 @ %h(zName)
679 }
680 @ part of check-in
681 hyperlink_to_uuid(zVers);
682 @ - %w(zCom) by
683 hyperlink_to_user(zUser,zDate," on");
684 hyperlink_to_date(zDate,".");
@@ -687,11 +705,15 @@
705 if( cnt>0 ){
706 @ Also wiki page
707 }else{
708 @ Wiki page
709 }
710 if( g.okHistory ){
711 @ [<a href="%s(g.zBaseURL)/wiki?name=%t(zPagename)">%h(zPagename)</a>]
712 }else{
713 @ [%h(zPagename)]
714 }
715 @ by
716 hyperlink_to_user(zUser,zDate," on");
717 hyperlink_to_date(zDate,".");
718 nWiki++;
719 cnt++;
@@ -741,11 +763,11 @@
763 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
764 @ Control artifact.
765 if( pDownloadName && blob_size(pDownloadName)==0 ){
766 blob_append(pDownloadName, zUuid, -1);
767 }
768 }else if( linkToView && g.okHistory ){
769 @ <a href="%s(g.zBaseURL)/artifact/%d(rid)">[view]</a>
770 }
771 }
772
773
@@ -1029,16 +1051,23 @@
1051 }
1052 style_header("Ticket Change Details");
1053 zDate = db_text(0, "SELECT datetime(%.12f)", m.rDate);
1054 memcpy(zTktName, m.zTicketUuid, 10);
1055 zTktName[10] = 0;
1056 if( g.okHistory ){
1057 @ <h2>Changes to ticket <a href="%s(m.zTicketUuid)">%s(zTktName)</a></h2>
1058 @
1059 @ <p>By %h(m.zUser) on %s(zDate). See also:
1060 @ <a href="%s(g.zTop)/artifact/%T(zUuid)">artifact content</a>, and
1061 @ <a href="%s(g.zTop)/tkthistory/%s(m.zTicketUuid)">ticket history</a>
1062 @ </p>
1063 }else{
1064 @ <h2>Changes to ticket %s(zTktName)</h2>
1065 @
1066 @ <p>By %h(m.zUser) on %s(zDate).
1067 @ </p>
1068 }
1069 @
1070 @ <ol>
1071 free(zDate);
1072 ticket_output_change_artifact(&m);
1073 manifest_clear(&m);
1074
+5 -1
--- src/report.c
+++ src/report.c
@@ -783,11 +783,15 @@
783783
wiki_convert(&content, 0, 0);
784784
blob_reset(&content);
785785
}
786786
}else if( azName[i][0]=='#' ){
787787
zTid = zData;
788
- @ <td valign="top"><a href="tktview?name=%h(zData)">%h(zData)</a></td>
788
+ if( g.okHistory ){
789
+ @ <td valign="top"><a href="tktview?name=%h(zData)">%h(zData)</a></td>
790
+ }else{
791
+ @ <td valign="top">%h(zData)</td>
792
+ }
789793
}else if( zData[0]==0 ){
790794
@ <td valign="top">&nbsp;</td>
791795
}else{
792796
@ <td valign="top">
793797
@ %h(zData)
794798
--- src/report.c
+++ src/report.c
@@ -783,11 +783,15 @@
783 wiki_convert(&content, 0, 0);
784 blob_reset(&content);
785 }
786 }else if( azName[i][0]=='#' ){
787 zTid = zData;
788 @ <td valign="top"><a href="tktview?name=%h(zData)">%h(zData)</a></td>
 
 
 
 
789 }else if( zData[0]==0 ){
790 @ <td valign="top">&nbsp;</td>
791 }else{
792 @ <td valign="top">
793 @ %h(zData)
794
--- src/report.c
+++ src/report.c
@@ -783,11 +783,15 @@
783 wiki_convert(&content, 0, 0);
784 blob_reset(&content);
785 }
786 }else if( azName[i][0]=='#' ){
787 zTid = zData;
788 if( g.okHistory ){
789 @ <td valign="top"><a href="tktview?name=%h(zData)">%h(zData)</a></td>
790 }else{
791 @ <td valign="top">%h(zData)</td>
792 }
793 }else if( zData[0]==0 ){
794 @ <td valign="top">&nbsp;</td>
795 }else{
796 @ <td valign="top">
797 @ %h(zData)
798

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button