Fossil SCM

Further improvements: if the ticket (or wiki page) was deleted via moderation, do not try to redirect to it.

mistachkin 2014-09-17 17:14 UTC please-review
Commit 13448d3cc3945532dddf513ef53d6f77ad227c82
1 file changed +24 -4
+24 -4
--- src/info.c
+++ src/info.c
@@ -764,12 +764,22 @@
764764
return;
765765
}
766766
if( g.perm.ModWiki && (zModAction = P("modaction"))!=0 ){
767767
if( strcmp(zModAction,"delete")==0 ){
768768
moderation_disapprove(rid);
769
- cgi_redirectf("%R/wiki?name=%T", pWiki->zWikiTitle);
770
- /*NOTREACHED*/
769
+ /*
770
+ ** Next, check if the wiki page still exists; if not, we cannot
771
+ ** redirect to it.
772
+ */
773
+ if( db_exists("SELECT 1 FROM tagxref JOIN tag USING(tagid)"
774
+ " WHERE rid=%d AND tagname LIKE 'wiki-%%'", rid) ){
775
+ cgi_redirectf("%R/wiki?name=%T", pWiki->zWikiTitle);
776
+ /*NOTREACHED*/
777
+ }else{
778
+ cgi_redirectf("%R/wiki");
779
+ /*NOTREACHED*/
780
+ }
771781
}
772782
if( strcmp(zModAction,"approve")==0 ){
773783
moderation_approve(rid);
774784
}
775785
}
@@ -1889,12 +1899,22 @@
18891899
zDate = db_text(0, "SELECT datetime(%.12f)", pTktChng->rDate);
18901900
memcpy(zTktName, pTktChng->zTicketUuid, UUID_SIZE+1);
18911901
if( g.perm.ModTkt && (zModAction = P("modaction"))!=0 ){
18921902
if( strcmp(zModAction,"delete")==0 ){
18931903
moderation_disapprove(rid);
1894
- cgi_redirectf("%R/tktview/%s", zTktName);
1895
- /*NOTREACHED*/
1904
+ /*
1905
+ ** Next, check if the ticket still exists; if not, we cannot
1906
+ ** redirect to it.
1907
+ */
1908
+ if( db_exists("SELECT 1 FROM ticket WHERE tkt_uuid GLOB '%q*'",
1909
+ zTktName) ){
1910
+ cgi_redirectf("%R/tktview/%s", zTktName);
1911
+ /*NOTREACHED*/
1912
+ }else{
1913
+ cgi_redirectf("%R/timeline");
1914
+ /*NOTREACHED*/
1915
+ }
18961916
}
18971917
if( strcmp(zModAction,"approve")==0 ){
18981918
moderation_approve(rid);
18991919
}
19001920
}
19011921
--- src/info.c
+++ src/info.c
@@ -764,12 +764,22 @@
764 return;
765 }
766 if( g.perm.ModWiki && (zModAction = P("modaction"))!=0 ){
767 if( strcmp(zModAction,"delete")==0 ){
768 moderation_disapprove(rid);
769 cgi_redirectf("%R/wiki?name=%T", pWiki->zWikiTitle);
770 /*NOTREACHED*/
 
 
 
 
 
 
 
 
 
 
771 }
772 if( strcmp(zModAction,"approve")==0 ){
773 moderation_approve(rid);
774 }
775 }
@@ -1889,12 +1899,22 @@
1889 zDate = db_text(0, "SELECT datetime(%.12f)", pTktChng->rDate);
1890 memcpy(zTktName, pTktChng->zTicketUuid, UUID_SIZE+1);
1891 if( g.perm.ModTkt && (zModAction = P("modaction"))!=0 ){
1892 if( strcmp(zModAction,"delete")==0 ){
1893 moderation_disapprove(rid);
1894 cgi_redirectf("%R/tktview/%s", zTktName);
1895 /*NOTREACHED*/
 
 
 
 
 
 
 
 
 
 
1896 }
1897 if( strcmp(zModAction,"approve")==0 ){
1898 moderation_approve(rid);
1899 }
1900 }
1901
--- src/info.c
+++ src/info.c
@@ -764,12 +764,22 @@
764 return;
765 }
766 if( g.perm.ModWiki && (zModAction = P("modaction"))!=0 ){
767 if( strcmp(zModAction,"delete")==0 ){
768 moderation_disapprove(rid);
769 /*
770 ** Next, check if the wiki page still exists; if not, we cannot
771 ** redirect to it.
772 */
773 if( db_exists("SELECT 1 FROM tagxref JOIN tag USING(tagid)"
774 " WHERE rid=%d AND tagname LIKE 'wiki-%%'", rid) ){
775 cgi_redirectf("%R/wiki?name=%T", pWiki->zWikiTitle);
776 /*NOTREACHED*/
777 }else{
778 cgi_redirectf("%R/wiki");
779 /*NOTREACHED*/
780 }
781 }
782 if( strcmp(zModAction,"approve")==0 ){
783 moderation_approve(rid);
784 }
785 }
@@ -1889,12 +1899,22 @@
1899 zDate = db_text(0, "SELECT datetime(%.12f)", pTktChng->rDate);
1900 memcpy(zTktName, pTktChng->zTicketUuid, UUID_SIZE+1);
1901 if( g.perm.ModTkt && (zModAction = P("modaction"))!=0 ){
1902 if( strcmp(zModAction,"delete")==0 ){
1903 moderation_disapprove(rid);
1904 /*
1905 ** Next, check if the ticket still exists; if not, we cannot
1906 ** redirect to it.
1907 */
1908 if( db_exists("SELECT 1 FROM ticket WHERE tkt_uuid GLOB '%q*'",
1909 zTktName) ){
1910 cgi_redirectf("%R/tktview/%s", zTktName);
1911 /*NOTREACHED*/
1912 }else{
1913 cgi_redirectf("%R/timeline");
1914 /*NOTREACHED*/
1915 }
1916 }
1917 if( strcmp(zModAction,"approve")==0 ){
1918 moderation_approve(rid);
1919 }
1920 }
1921

Keyboard Shortcuts

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