Fossil SCM

/json/logout now returns the same as /json/whoami, but with the info for the nobody user, as suggested by Caleb Gray.

stephan 2011-11-01 02:45 json-multitag-test
Commit 013e8ee723fe17c61a74ef9aa69a3032e9aa3e55
1 file changed +10 -2
+10 -2
--- src/json_login.c
+++ src/json_login.c
@@ -185,12 +185,13 @@
185185
if(!token){
186186
g.json.resultCode = FSL_JSON_E_MISSING_AUTH;
187187
}else{
188188
login_clear_login_data();
189189
g.json.authToken = NULL /* memory is owned elsewhere.*/;
190
+ json_setenv(FossilJsonKeys.authToken, NULL);
190191
}
191
- return NULL;
192
+ return json_page_whoami();
192193
}
193194
194195
/*
195196
** Implementation of the /json/anonymousPassword page.
196197
*/
@@ -215,11 +216,18 @@
215216
*/
216217
cson_value * json_page_whoami(){
217218
cson_value * payload = NULL;
218219
cson_object * obj = NULL;
219220
Stmt q;
220
- db_prepare(&q, "SELECT login, cap FROM user WHERE uid=%d", g.userUid);
221
+ if(!g.json.authToken){
222
+ /* assume we just logged out. */
223
+ db_prepare(&q, "SELECT login, cap FROM user WHERE login='nobody'");
224
+ }
225
+ else{
226
+ db_prepare(&q, "SELECT login, cap FROM user WHERE uid=%d",
227
+ g.userUid);
228
+ }
221229
if( db_step(&q)==SQLITE_ROW ){
222230
223231
/* reminder: we don't use g.zLogin because it's 0 for the guest
224232
user and the HTML UI appears to currently allow the name to be
225233
changed (but doing so would break other code). */
226234
--- src/json_login.c
+++ src/json_login.c
@@ -185,12 +185,13 @@
185 if(!token){
186 g.json.resultCode = FSL_JSON_E_MISSING_AUTH;
187 }else{
188 login_clear_login_data();
189 g.json.authToken = NULL /* memory is owned elsewhere.*/;
 
190 }
191 return NULL;
192 }
193
194 /*
195 ** Implementation of the /json/anonymousPassword page.
196 */
@@ -215,11 +216,18 @@
215 */
216 cson_value * json_page_whoami(){
217 cson_value * payload = NULL;
218 cson_object * obj = NULL;
219 Stmt q;
220 db_prepare(&q, "SELECT login, cap FROM user WHERE uid=%d", g.userUid);
 
 
 
 
 
 
 
221 if( db_step(&q)==SQLITE_ROW ){
222
223 /* reminder: we don't use g.zLogin because it's 0 for the guest
224 user and the HTML UI appears to currently allow the name to be
225 changed (but doing so would break other code). */
226
--- src/json_login.c
+++ src/json_login.c
@@ -185,12 +185,13 @@
185 if(!token){
186 g.json.resultCode = FSL_JSON_E_MISSING_AUTH;
187 }else{
188 login_clear_login_data();
189 g.json.authToken = NULL /* memory is owned elsewhere.*/;
190 json_setenv(FossilJsonKeys.authToken, NULL);
191 }
192 return json_page_whoami();
193 }
194
195 /*
196 ** Implementation of the /json/anonymousPassword page.
197 */
@@ -215,11 +216,18 @@
216 */
217 cson_value * json_page_whoami(){
218 cson_value * payload = NULL;
219 cson_object * obj = NULL;
220 Stmt q;
221 if(!g.json.authToken){
222 /* assume we just logged out. */
223 db_prepare(&q, "SELECT login, cap FROM user WHERE login='nobody'");
224 }
225 else{
226 db_prepare(&q, "SELECT login, cap FROM user WHERE uid=%d",
227 g.userUid);
228 }
229 if( db_step(&q)==SQLITE_ROW ){
230
231 /* reminder: we don't use g.zLogin because it's 0 for the guest
232 user and the HTML UI appears to currently allow the name to be
233 changed (but doing so would break other code). */
234

Keyboard Shortcuts

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