Fossil SCM

Cleanup of the "admin_sql" web page (formerly "admin/sql").

drh 2009-08-16 21:22 trunk
Commit ef432c201469375de3aa9eb3e81ef384f42cf65c
1 file changed +10 -39
+10 -39
--- src/admin.c
+++ src/admin.c
@@ -41,40 +41,37 @@
4141
const char *zArg3,
4242
const char *zArg4
4343
){
4444
int rc = SQLITE_DENY;
4545
switch( type ){
46
- case SQLITE_READ:
46
+ case SQLITE_READ: {
47
+ if( strcmp(zArg2,"pw")==0 ){
48
+ rc = SQLITE_IGNORE;
49
+ }else{
50
+ rc = SQLITE_OK;
51
+ }
52
+ break;
53
+ }
54
+ case SQLITE_FUNCTION:
4755
case SQLITE_SELECT: {
4856
rc = SQLITE_OK;
4957
break;
5058
}
5159
}
5260
return rc;
5361
}
5462
55
-
56
-void admin_prepare_submenu(){
57
- if( g.okAdmin ){
58
- style_submenu_element("Main", "Main admin page", "%s/admin", g.zTop );
59
- style_submenu_element("SQL", "SQL page", "%s/admin/sql", g.zTop );
60
- style_submenu_element("Setup", "Setup page", "%s/setup", g.zTop );
61
- }
62
-}
63
-
64
-
6563
/*
66
-** WEBPAGE: /admin/sql
64
+** WEBPAGE: admin_sql
6765
*/
6866
void admin_sql_page(void){
6967
const char *zSql = PD("sql","");
7068
login_check_credentials();
7169
if( !g.okAdmin ){
7270
login_needed();
7371
return;
7472
}
75
- admin_prepare_submenu();
7673
style_header("Admin SQL");
7774
@ <h2>SQL:</h2>
7875
@ You can enter only SELECT statements here, and some SQL-side functions
7976
@ are also restricted.<br/>
8077
@ <form action='' method='post'>
@@ -87,33 +84,7 @@
8784
login_verify_csrf_secret();
8885
sqlite3_set_authorizer(g.db, selectOnly, 0);
8986
db_generic_query_view(zSql, 0);
9087
sqlite3_set_authorizer(g.db, 0, 0);
9188
}
92
- style_footer();
93
-}
94
-
95
-/*
96
-** WEBPAGE: /admin
97
-*/
98
-void admin_page(void){
99
- login_check_credentials();
100
- if( !g.okAdmin ){
101
- login_needed();
102
- return;
103
- }
104
- if( g.zExtra && g.zExtra[0] ){
105
- if(g.zExtra == strstr(g.zExtra,"sql")) admin_sql_page();
106
- /* FIXME: ^^^ this ^^^ is an awful lot of work, especially once
107
- ** the paths deepen. Figure out a way to simplify dispatching.
108
- */
109
- return;
110
- }
111
- admin_prepare_submenu();
112
- style_header("Admin");
113
- @ <h2>Links:</h2>
114
- @ <ul>
115
- @ <li><a href='%s(g.zBaseURL)/setup'>Fossil WWW Setup</a></li>
116
- @ <li><a href='%s(g.zBaseURL)/admin/sql'>Run SQL queries</a></li>
117
- @ </ul>
11889
style_footer();
11990
}
12091
--- src/admin.c
+++ src/admin.c
@@ -41,40 +41,37 @@
41 const char *zArg3,
42 const char *zArg4
43 ){
44 int rc = SQLITE_DENY;
45 switch( type ){
46 case SQLITE_READ:
 
 
 
 
 
 
 
 
47 case SQLITE_SELECT: {
48 rc = SQLITE_OK;
49 break;
50 }
51 }
52 return rc;
53 }
54
55
56 void admin_prepare_submenu(){
57 if( g.okAdmin ){
58 style_submenu_element("Main", "Main admin page", "%s/admin", g.zTop );
59 style_submenu_element("SQL", "SQL page", "%s/admin/sql", g.zTop );
60 style_submenu_element("Setup", "Setup page", "%s/setup", g.zTop );
61 }
62 }
63
64
65 /*
66 ** WEBPAGE: /admin/sql
67 */
68 void admin_sql_page(void){
69 const char *zSql = PD("sql","");
70 login_check_credentials();
71 if( !g.okAdmin ){
72 login_needed();
73 return;
74 }
75 admin_prepare_submenu();
76 style_header("Admin SQL");
77 @ <h2>SQL:</h2>
78 @ You can enter only SELECT statements here, and some SQL-side functions
79 @ are also restricted.<br/>
80 @ <form action='' method='post'>
@@ -87,33 +84,7 @@
87 login_verify_csrf_secret();
88 sqlite3_set_authorizer(g.db, selectOnly, 0);
89 db_generic_query_view(zSql, 0);
90 sqlite3_set_authorizer(g.db, 0, 0);
91 }
92 style_footer();
93 }
94
95 /*
96 ** WEBPAGE: /admin
97 */
98 void admin_page(void){
99 login_check_credentials();
100 if( !g.okAdmin ){
101 login_needed();
102 return;
103 }
104 if( g.zExtra && g.zExtra[0] ){
105 if(g.zExtra == strstr(g.zExtra,"sql")) admin_sql_page();
106 /* FIXME: ^^^ this ^^^ is an awful lot of work, especially once
107 ** the paths deepen. Figure out a way to simplify dispatching.
108 */
109 return;
110 }
111 admin_prepare_submenu();
112 style_header("Admin");
113 @ <h2>Links:</h2>
114 @ <ul>
115 @ <li><a href='%s(g.zBaseURL)/setup'>Fossil WWW Setup</a></li>
116 @ <li><a href='%s(g.zBaseURL)/admin/sql'>Run SQL queries</a></li>
117 @ </ul>
118 style_footer();
119 }
120
--- src/admin.c
+++ src/admin.c
@@ -41,40 +41,37 @@
41 const char *zArg3,
42 const char *zArg4
43 ){
44 int rc = SQLITE_DENY;
45 switch( type ){
46 case SQLITE_READ: {
47 if( strcmp(zArg2,"pw")==0 ){
48 rc = SQLITE_IGNORE;
49 }else{
50 rc = SQLITE_OK;
51 }
52 break;
53 }
54 case SQLITE_FUNCTION:
55 case SQLITE_SELECT: {
56 rc = SQLITE_OK;
57 break;
58 }
59 }
60 return rc;
61 }
62
 
 
 
 
 
 
 
 
 
 
63 /*
64 ** WEBPAGE: admin_sql
65 */
66 void admin_sql_page(void){
67 const char *zSql = PD("sql","");
68 login_check_credentials();
69 if( !g.okAdmin ){
70 login_needed();
71 return;
72 }
 
73 style_header("Admin SQL");
74 @ <h2>SQL:</h2>
75 @ You can enter only SELECT statements here, and some SQL-side functions
76 @ are also restricted.<br/>
77 @ <form action='' method='post'>
@@ -87,33 +84,7 @@
84 login_verify_csrf_secret();
85 sqlite3_set_authorizer(g.db, selectOnly, 0);
86 db_generic_query_view(zSql, 0);
87 sqlite3_set_authorizer(g.db, 0, 0);
88 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89 style_footer();
90 }
91

Keyboard Shortcuts

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