Diff
Not logged in

Differences From:

File src/info.c part of check-in [82fc5abb60] - Cut over to the new timeline code. Remove the older timeline. by drh on 2008-02-26 17:57:11. Also file src/info.c part of check-in [2e84fb3e54] - Merged with 82fc5abb60. by aku on 2008-02-27 04:15:47. [view]

To:

File src/info.c part of check-in [2b0d4519dc] - Work toward making the "h" permission mean "hyperlink". Without "h", many pages will display, but there are few hyperlinks. A message invites users to login as anonymous. by drh on 2008-05-05 20:18:32. [view]

@@ -300,9 +300,9 @@
   int rid;
   int isLeaf;
 
   login_check_credentials();
-  if( !g.okHistory ){ login_needed(); return; }
+  if( !g.okRead ){ login_needed(); return; }
   rid = name_to_rid(PD("name","0"));
   if( rid==0 ){
     style_header("Version Information Error");
     @ No such object: %h(g.argv[2])
@@ -320,8 +320,9 @@
   if( db_step(&q)==SQLITE_ROW ){
     const char *zUuid = db_column_text(&q, 0);
     char *zTitle = mprintf("Baseline [%.10s]", zUuid);
     style_header(zTitle);
+    login_anonymous_available();
     free(zTitle);
     /*@ <h2>Version %s(zUuid)</h2>*/
     @ <div class="section">Overview</div>
     @ <p><table class="label-value">
@@ -332,23 +333,26 @@
     }
     @ <tr><th>Original&nbsp;User:</th><td>%h(db_column_text(&q, 2))</td></tr>
     @ <tr><th>Original&nbsp;Comment:</th><td>%w(db_column_text(&q,3))</td></tr>
     @ </td></tr>
-    @ <tr><th>Timelines:</th><td>
-    @    <a href="%s(g.zBaseURL)/timeline?p=%d(rid)">ancestors</a>
-    @    | <a href="%s(g.zBaseURL)/timeline?d=%d(rid)">descendents</a>
-    @    | <a href="%s(g.zBaseURL)/timeline?d=%d(rid)&p=%d(rid)">both</a>
-    @ </td></tr>
-    @ <tr><th>Commands:</th>
-    @   <td>
-    @     <a href="%s(g.zBaseURL)/vdiff/%d(rid)">diff</a>
-    @     | <a href="%s(g.zBaseURL)/zip/%s(zUuid).zip">ZIP archive</a>
-    @     | <a href="%s(g.zBaseURL)/artifact/%d(rid)">manifest</a>
-    @   </td>
-    @ </tr>
+    if( g.okHistory ){
+      @ <tr><th>Timelines:</th><td>
+      @    <a href="%s(g.zBaseURL)/timeline?p=%d(rid)">ancestors</a>
+      @    | <a href="%s(g.zBaseURL)/timeline?d=%d(rid)">descendents</a>
+      @    | <a href="%s(g.zBaseURL)/timeline?d=%d(rid)&p=%d(rid)">both</a>
+      @ </td></tr>
+      @ <tr><th>Commands:</th>
+      @   <td>
+      @     <a href="%s(g.zBaseURL)/vdiff/%d(rid)">diff</a>
+      @     | <a href="%s(g.zBaseURL)/zip/%s(zUuid).zip">ZIP archive</a>
+      @     | <a href="%s(g.zBaseURL)/artifact/%d(rid)">manifest</a>
+      @   </td>
+      @ </tr>
+    }
     @ </table></p>
   }else{
     style_header("Baseline Information");
+    login_anonymous_available();
   }
   db_finalize(&q);
   showTags(rid, "");
   @ <div class="section">Changes</div>
@@ -371,9 +375,13 @@
       @ <b>Added:</b>
     }else{
       @ <b>Deleted:</b>
     }
-    @ <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a></li>
+    if( g.okHistory ){
+      @ <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a></li>
+    }else{
+      @ %h(zName)</li>
+    }
   }
   @ </ul>
   compute_leaves(rid);
   showDescendents(rid, 2, "Descendents");
@@ -392,9 +400,9 @@
   Stmt q;
   int rid;
 
   login_check_credentials();
-  if( !g.okHistory ){ login_needed(); return; }
+  if( !g.okRdWiki ){ login_needed(); return; }
   rid = name_to_rid(PD("name","0"));
   if( rid==0 ){
     style_header("Wiki Page Information Error");
     @ No such object: %h(g.argv[2])
@@ -417,8 +425,9 @@
     const char *zUuid = db_column_text(&q, 1);
     char *zTitle = mprintf("Wiki Page %s", zName);
     style_header(zTitle);
     free(zTitle);
+    login_anonymous_available();
     @ <div class="section">Overview</div>
     @ <p><table class="label-value">
     @ <tr><th>Version:</th><td>%s(zUuid)</td></tr>
     @ <tr><th>Date:</th><td>%s(db_column_text(&q, 2))</td></tr>
@@ -425,15 +434,17 @@
     if( g.okSetup ){
       @ <tr><th>Record ID:</th><td>%d(rid)</td></tr>
     }
     @ <tr><th>Original&nbsp;User:</th><td>%s(db_column_text(&q, 3))</td></tr>
-    @ <tr><th>Commands:</th>
-    @   <td>
-/*    @     <a href="%s(g.zBaseURL)/wdiff/%d(rid)">diff</a> | */
-    @     <a href="%s(g.zBaseURL)/whistory?name=%t(zName)">history</a>
-    @     | <a href="%s(g.zBaseURL)/artifact/%d(rid)">raw-text</a>
-    @   </td>
-    @ </tr>
+    if( g.okHistory ){
+      @ <tr><th>Commands:</th>
+      @   <td>
+      /* @     <a href="%s(g.zBaseURL)/wdiff/%d(rid)">diff</a> | */
+      @     <a href="%s(g.zBaseURL)/whistory?name=%t(zName)">history</a>
+      @     | <a href="%s(g.zBaseURL)/artifact/%d(rid)">raw-text</a>
+      @   </td>
+      @ </tr>
+    }
     @ </table></p>
   }else{
     style_header("Wiki Information");
     rid = 0;
@@ -471,10 +482,11 @@
   char zPrevDate[20];
   Blob title;
 
   login_check_credentials();
-  if( !g.okHistory ){ login_needed(); return; }
+  if( !g.okRead ){ login_needed(); return; }
   style_header("File History");
+  login_anonymous_available();
 
   zPrevDate[0] = 0;
   zFilename = PD("name","");
   db_prepare(&q,
@@ -522,15 +534,17 @@
     @ <td valign="top" align="left">
     hyperlink_to_uuid(zVers);
     @ %h(zCom) (By: %h(zUser))
     @ Id: %s(zUuid)/%d(frid)
-    @ <a href="%s(g.zBaseURL)/artifact/%d(frid)">[view]</a>
-    if( fpid ){
-      @ <a href="%s(g.zBaseURL)/fdiff?v1=%d(fpid)&amp;v2=%d(frid)">[diff]</a>
-    }
-    @ <a href="%s(g.zBaseURL)/annotate?mid=%d(mid)&amp;fnid=%d(fnid)">
-    @ [annotate]</a>
-    @ </td>
+    if( g.okHistory ){
+      @ <a href="%s(g.zBaseURL)/artifact/%d(frid)">[view]</a>
+      if( fpid ){
+        @ <a href="%s(g.zBaseURL)/fdiff?v1=%d(fpid)&amp;v2=%d(frid)">[diff]</a>
+      }
+      @ <a href="%s(g.zBaseURL)/annotate?mid=%d(mid)&amp;fnid=%d(fnid)">
+      @ [annotate]</a>
+      @ </td>
+    }
   }
   db_finalize(&q);
   @ </table>
   style_footer();
@@ -563,10 +577,11 @@
   Stmt q;
   char *zUuid;
 
   login_check_credentials();
-  if( !g.okHistory ){ login_needed(); return; }
+  if( !g.okRead ){ login_needed(); return; }
   style_header("Baseline Changes");
+  login_anonymous_available();
 
   rid = name_to_rid(PD("name",""));
   if( rid==0 ){
     cgi_redirect("index");
@@ -714,9 +729,9 @@
   int v2 = name_to_rid(PD("v2","0"));
   Blob c1, c2, diff;
 
   login_check_credentials();
-  if( !g.okHistory ){ login_needed(); return; }
+  if( !g.okRead ){ login_needed(); return; }
   style_header("Diff");
   @ <h2>Differences From:</h2>
   @ <blockquote>
   object_description(v1, 1);
@@ -751,9 +766,9 @@
   Blob content;
 
   rid = name_to_rid(PD("name","0"));
   login_check_credentials();
-  if( !g.okHistory ){ login_needed(); return; }
+  if( !g.okRead ){ login_needed(); return; }
   if( g.zPath[0]=='i' ){
     if( db_exists("SELECT 1 FROM tagxref JOIN tag USING(tagid)"
                   " WHERE rid=%d AND tagname LIKE 'wiki-%%'", rid) ){
       winfo_page();