Fossil SCM
The /timeline page shows check-ins only if there is no y= query parameter and if the user has read ("r") permissions on the repo.
Commit
255adb04feb5f4ad44737f9bdd8cc13ff715214bd7ee808c7f914360fed1e0fa
Parent
d1aa1e6275c2118…
1 file changed
+7
-2
+7
-2
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -1635,11 +1635,11 @@ | ||
| 1635 | 1635 | ** r=TAG Show check-ins related to TAG, equivalent to t=TAG&rel |
| 1636 | 1636 | ** rel Show related check-ins as well as those matching t=TAG |
| 1637 | 1637 | ** mionly Limit rel to show ancestors but not descendants |
| 1638 | 1638 | ** ms=STYLE Set tag match style to EXACT, GLOB, LIKE, REGEXP |
| 1639 | 1639 | ** u=USER Only show items associated with USER |
| 1640 | -** y=TYPE 'ci', 'w', 't', 'e', or (default) 'all' | |
| 1640 | +** y=TYPE 'ci', 'w', 't', 'e', or 'all'. 'ci' is the default. | |
| 1641 | 1641 | ** ng No Graph. |
| 1642 | 1642 | ** nd Do not highlight the focus check-in |
| 1643 | 1643 | ** v Show details of files changed |
| 1644 | 1644 | ** f=CHECKIN Show family (immediate parents and children) of CHECKIN |
| 1645 | 1645 | ** from=CHECKIN Path from... |
| @@ -1675,11 +1675,11 @@ | ||
| 1675 | 1675 | int nEntry; /* Max number of entries on timeline */ |
| 1676 | 1676 | int p_rid = name_to_typed_rid(P("p"),"ci"); /* artifact p and its parents */ |
| 1677 | 1677 | int d_rid = name_to_typed_rid(P("d"),"ci"); /* artifact d and descendants */ |
| 1678 | 1678 | int f_rid = name_to_typed_rid(P("f"),"ci"); /* artifact f and close family */ |
| 1679 | 1679 | const char *zUser = P("u"); /* All entries by this user if not NULL */ |
| 1680 | - const char *zType = PD("y","all"); /* Type of events. All if NULL */ | |
| 1680 | + const char *zType; /* Type of events to display */ | |
| 1681 | 1681 | const char *zAfter = P("a"); /* Events after this time */ |
| 1682 | 1682 | const char *zBefore = P("b"); /* Events before this time */ |
| 1683 | 1683 | const char *zCirca = P("c"); /* Events near this time */ |
| 1684 | 1684 | const char *zMark = P("m"); /* Mark this event or an event this time */ |
| 1685 | 1685 | const char *zTagName = P("t"); /* Show events with this tag */ |
| @@ -1745,10 +1745,15 @@ | ||
| 1745 | 1745 | || (bisectOnly && !g.perm.Setup) |
| 1746 | 1746 | ){ |
| 1747 | 1747 | login_needed(g.anon.Read && g.anon.RdTkt && g.anon.RdWiki); |
| 1748 | 1748 | return; |
| 1749 | 1749 | } |
| 1750 | + zType = P("y"); | |
| 1751 | + if( zType==0 ){ | |
| 1752 | + zType = g.perm.Read ? "ci" : "all"; | |
| 1753 | + cgi_set_parameter("y", zType); | |
| 1754 | + } | |
| 1750 | 1755 | url_initialize(&url, "timeline"); |
| 1751 | 1756 | cgi_query_parameters_to_url(&url); |
| 1752 | 1757 | |
| 1753 | 1758 | /* Convert r=TAG to t=TAG&rel. */ |
| 1754 | 1759 | if( zBrName && !related ){ |
| 1755 | 1760 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -1635,11 +1635,11 @@ | |
| 1635 | ** r=TAG Show check-ins related to TAG, equivalent to t=TAG&rel |
| 1636 | ** rel Show related check-ins as well as those matching t=TAG |
| 1637 | ** mionly Limit rel to show ancestors but not descendants |
| 1638 | ** ms=STYLE Set tag match style to EXACT, GLOB, LIKE, REGEXP |
| 1639 | ** u=USER Only show items associated with USER |
| 1640 | ** y=TYPE 'ci', 'w', 't', 'e', or (default) 'all' |
| 1641 | ** ng No Graph. |
| 1642 | ** nd Do not highlight the focus check-in |
| 1643 | ** v Show details of files changed |
| 1644 | ** f=CHECKIN Show family (immediate parents and children) of CHECKIN |
| 1645 | ** from=CHECKIN Path from... |
| @@ -1675,11 +1675,11 @@ | |
| 1675 | int nEntry; /* Max number of entries on timeline */ |
| 1676 | int p_rid = name_to_typed_rid(P("p"),"ci"); /* artifact p and its parents */ |
| 1677 | int d_rid = name_to_typed_rid(P("d"),"ci"); /* artifact d and descendants */ |
| 1678 | int f_rid = name_to_typed_rid(P("f"),"ci"); /* artifact f and close family */ |
| 1679 | const char *zUser = P("u"); /* All entries by this user if not NULL */ |
| 1680 | const char *zType = PD("y","all"); /* Type of events. All if NULL */ |
| 1681 | const char *zAfter = P("a"); /* Events after this time */ |
| 1682 | const char *zBefore = P("b"); /* Events before this time */ |
| 1683 | const char *zCirca = P("c"); /* Events near this time */ |
| 1684 | const char *zMark = P("m"); /* Mark this event or an event this time */ |
| 1685 | const char *zTagName = P("t"); /* Show events with this tag */ |
| @@ -1745,10 +1745,15 @@ | |
| 1745 | || (bisectOnly && !g.perm.Setup) |
| 1746 | ){ |
| 1747 | login_needed(g.anon.Read && g.anon.RdTkt && g.anon.RdWiki); |
| 1748 | return; |
| 1749 | } |
| 1750 | url_initialize(&url, "timeline"); |
| 1751 | cgi_query_parameters_to_url(&url); |
| 1752 | |
| 1753 | /* Convert r=TAG to t=TAG&rel. */ |
| 1754 | if( zBrName && !related ){ |
| 1755 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -1635,11 +1635,11 @@ | |
| 1635 | ** r=TAG Show check-ins related to TAG, equivalent to t=TAG&rel |
| 1636 | ** rel Show related check-ins as well as those matching t=TAG |
| 1637 | ** mionly Limit rel to show ancestors but not descendants |
| 1638 | ** ms=STYLE Set tag match style to EXACT, GLOB, LIKE, REGEXP |
| 1639 | ** u=USER Only show items associated with USER |
| 1640 | ** y=TYPE 'ci', 'w', 't', 'e', or 'all'. 'ci' is the default. |
| 1641 | ** ng No Graph. |
| 1642 | ** nd Do not highlight the focus check-in |
| 1643 | ** v Show details of files changed |
| 1644 | ** f=CHECKIN Show family (immediate parents and children) of CHECKIN |
| 1645 | ** from=CHECKIN Path from... |
| @@ -1675,11 +1675,11 @@ | |
| 1675 | int nEntry; /* Max number of entries on timeline */ |
| 1676 | int p_rid = name_to_typed_rid(P("p"),"ci"); /* artifact p and its parents */ |
| 1677 | int d_rid = name_to_typed_rid(P("d"),"ci"); /* artifact d and descendants */ |
| 1678 | int f_rid = name_to_typed_rid(P("f"),"ci"); /* artifact f and close family */ |
| 1679 | const char *zUser = P("u"); /* All entries by this user if not NULL */ |
| 1680 | const char *zType; /* Type of events to display */ |
| 1681 | const char *zAfter = P("a"); /* Events after this time */ |
| 1682 | const char *zBefore = P("b"); /* Events before this time */ |
| 1683 | const char *zCirca = P("c"); /* Events near this time */ |
| 1684 | const char *zMark = P("m"); /* Mark this event or an event this time */ |
| 1685 | const char *zTagName = P("t"); /* Show events with this tag */ |
| @@ -1745,10 +1745,15 @@ | |
| 1745 | || (bisectOnly && !g.perm.Setup) |
| 1746 | ){ |
| 1747 | login_needed(g.anon.Read && g.anon.RdTkt && g.anon.RdWiki); |
| 1748 | return; |
| 1749 | } |
| 1750 | zType = P("y"); |
| 1751 | if( zType==0 ){ |
| 1752 | zType = g.perm.Read ? "ci" : "all"; |
| 1753 | cgi_set_parameter("y", zType); |
| 1754 | } |
| 1755 | url_initialize(&url, "timeline"); |
| 1756 | cgi_query_parameters_to_url(&url); |
| 1757 | |
| 1758 | /* Convert r=TAG to t=TAG&rel. */ |
| 1759 | if( zBrName && !related ){ |
| 1760 |