Fossil SCM
Add the ability for an admin to create a web-cache from the web interface.
Commit
7de57f400e2f64307961872338568af9f83bc0b7116cabeafa98e6933c1df106
Parent
7ed4d030cf815a9…
1 file changed
+8
-2
+8
-2
| --- src/cache.c | ||
| +++ src/cache.c | ||
| @@ -399,21 +399,27 @@ | ||
| 399 | 399 | ** WEBPAGE: cachestat |
| 400 | 400 | ** |
| 401 | 401 | ** Show information about the webpage cache. Requires Setup privilege. |
| 402 | 402 | */ |
| 403 | 403 | void cache_page(void){ |
| 404 | - sqlite3 *db; | |
| 404 | + sqlite3 *db = 0; | |
| 405 | 405 | sqlite3_stmt *pStmt; |
| 406 | + int doInit; | |
| 406 | 407 | char zBuf[100]; |
| 407 | 408 | |
| 408 | 409 | login_check_credentials(); |
| 409 | 410 | if( !g.perm.Setup ){ login_needed(0); return; } |
| 410 | 411 | style_set_current_feature("cache"); |
| 411 | 412 | style_header("Web Cache Status"); |
| 412 | - db = cacheOpen(0); | |
| 413 | + doInit = P("init")!=0 && cgi_csrf_safe(2); | |
| 414 | + db = cacheOpen(doInit); | |
| 413 | 415 | if( db==0 ){ |
| 416 | + @ <form method="post"> | |
| 417 | + login_insert_csrf_secret(); | |
| 414 | 418 | @ The web-page cache is disabled for this repository |
| 419 | + @ <input type="submit" name="init" value="Enable"> | |
| 420 | + @ </form> | |
| 415 | 421 | }else{ |
| 416 | 422 | char *zDbName = cacheName(); |
| 417 | 423 | cache_register_sizename(db); |
| 418 | 424 | pStmt = cacheStmt(db, |
| 419 | 425 | "SELECT key, sz, nRef, datetime(tm,'unixepoch')" |
| 420 | 426 |
| --- src/cache.c | |
| +++ src/cache.c | |
| @@ -399,21 +399,27 @@ | |
| 399 | ** WEBPAGE: cachestat |
| 400 | ** |
| 401 | ** Show information about the webpage cache. Requires Setup privilege. |
| 402 | */ |
| 403 | void cache_page(void){ |
| 404 | sqlite3 *db; |
| 405 | sqlite3_stmt *pStmt; |
| 406 | char zBuf[100]; |
| 407 | |
| 408 | login_check_credentials(); |
| 409 | if( !g.perm.Setup ){ login_needed(0); return; } |
| 410 | style_set_current_feature("cache"); |
| 411 | style_header("Web Cache Status"); |
| 412 | db = cacheOpen(0); |
| 413 | if( db==0 ){ |
| 414 | @ The web-page cache is disabled for this repository |
| 415 | }else{ |
| 416 | char *zDbName = cacheName(); |
| 417 | cache_register_sizename(db); |
| 418 | pStmt = cacheStmt(db, |
| 419 | "SELECT key, sz, nRef, datetime(tm,'unixepoch')" |
| 420 |
| --- src/cache.c | |
| +++ src/cache.c | |
| @@ -399,21 +399,27 @@ | |
| 399 | ** WEBPAGE: cachestat |
| 400 | ** |
| 401 | ** Show information about the webpage cache. Requires Setup privilege. |
| 402 | */ |
| 403 | void cache_page(void){ |
| 404 | sqlite3 *db = 0; |
| 405 | sqlite3_stmt *pStmt; |
| 406 | int doInit; |
| 407 | char zBuf[100]; |
| 408 | |
| 409 | login_check_credentials(); |
| 410 | if( !g.perm.Setup ){ login_needed(0); return; } |
| 411 | style_set_current_feature("cache"); |
| 412 | style_header("Web Cache Status"); |
| 413 | doInit = P("init")!=0 && cgi_csrf_safe(2); |
| 414 | db = cacheOpen(doInit); |
| 415 | if( db==0 ){ |
| 416 | @ <form method="post"> |
| 417 | login_insert_csrf_secret(); |
| 418 | @ The web-page cache is disabled for this repository |
| 419 | @ <input type="submit" name="init" value="Enable"> |
| 420 | @ </form> |
| 421 | }else{ |
| 422 | char *zDbName = cacheName(); |
| 423 | cache_register_sizename(db); |
| 424 | pStmt = cacheStmt(db, |
| 425 | "SELECT key, sz, nRef, datetime(tm,'unixepoch')" |
| 426 |