Fossil SCM

Changed /json/login output payload structure.

stephan 2011-10-01 02:12 UTC json
Commit 88ddf2cbce256e3fabf109684d4aee929a6dfc30
--- ajax/js/fossil-ajaj.js
+++ ajax/js/fossil-ajaj.js
@@ -91,12 +91,13 @@
9191
var oldOnResponse = ajajOpt.onResponse;
9292
ajajOpt.onResponse = function(resp,req) {
9393
var thisOpt = this;
9494
//alert('login response:\n'+WhAjaj.stringify(resp));
9595
if( resp && resp.payload ) {
96
- self.authToken = resp.payload;
97
- self.userName = name;
96
+ self.authToken = resp.payload.authToken;
97
+ self.userName = resp.payload.name;
98
+ self.capabilities = resp.payload.capabilities;
9899
}
99100
if( WhAjaj.isFunction( self.onLogin ) ){
100101
try{ self.onLogin(); }
101102
catch(e){}
102103
}
103104
--- ajax/js/fossil-ajaj.js
+++ ajax/js/fossil-ajaj.js
@@ -91,12 +91,13 @@
91 var oldOnResponse = ajajOpt.onResponse;
92 ajajOpt.onResponse = function(resp,req) {
93 var thisOpt = this;
94 //alert('login response:\n'+WhAjaj.stringify(resp));
95 if( resp && resp.payload ) {
96 self.authToken = resp.payload;
97 self.userName = name;
 
98 }
99 if( WhAjaj.isFunction( self.onLogin ) ){
100 try{ self.onLogin(); }
101 catch(e){}
102 }
103
--- ajax/js/fossil-ajaj.js
+++ ajax/js/fossil-ajaj.js
@@ -91,12 +91,13 @@
91 var oldOnResponse = ajajOpt.onResponse;
92 ajajOpt.onResponse = function(resp,req) {
93 var thisOpt = this;
94 //alert('login response:\n'+WhAjaj.stringify(resp));
95 if( resp && resp.payload ) {
96 self.authToken = resp.payload.authToken;
97 self.userName = resp.payload.name;
98 self.capabilities = resp.payload.capabilities;
99 }
100 if( WhAjaj.isFunction( self.onLogin ) ){
101 try{ self.onLogin(); }
102 catch(e){}
103 }
104
-3
--- src/json.c
+++ src/json.c
@@ -350,13 +350,10 @@
350350
*/
351351
cson_value * json_rc_string( int code ){
352352
return cson_value_new_string( json_rc_cstr(code), 11 );
353353
}
354354
355
-/*
356
-** Convenience wrapper around cson_value_new_string().
357
-*/
358355
cson_value * json_new_string( char const * str ){
359356
return str
360357
? cson_value_new_string(str,strlen(str))
361358
: NULL;
362359
}
363360
--- src/json.c
+++ src/json.c
@@ -350,13 +350,10 @@
350 */
351 cson_value * json_rc_string( int code ){
352 return cson_value_new_string( json_rc_cstr(code), 11 );
353 }
354
355 /*
356 ** Convenience wrapper around cson_value_new_string().
357 */
358 cson_value * json_new_string( char const * str ){
359 return str
360 ? cson_value_new_string(str,strlen(str))
361 : NULL;
362 }
363
--- src/json.c
+++ src/json.c
@@ -350,13 +350,10 @@
350 */
351 cson_value * json_rc_string( int code ){
352 return cson_value_new_string( json_rc_cstr(code), 11 );
353 }
354
 
 
 
355 cson_value * json_new_string( char const * str ){
356 return str
357 ? cson_value_new_string(str,strlen(str))
358 : NULL;
359 }
360
--- src/json_detail.h
+++ src/json_detail.h
@@ -176,6 +176,12 @@
176176
/*
177177
** Implements /json/timeline family of functions.
178178
*/
179179
cson_value * json_page_timeline();
180180
181
+/*
182
+** Convenience wrapper around cson_value_new_string().
183
+** Returns NULL if str is NULL or on allocation error.
184
+*/
185
+cson_value * json_new_string( char const * str );
186
+
181187
#endif/*FOSSIL_JSON_DETAIL_H_INCLUDED*/
182188
--- src/json_detail.h
+++ src/json_detail.h
@@ -176,6 +176,12 @@
176 /*
177 ** Implements /json/timeline family of functions.
178 */
179 cson_value * json_page_timeline();
180
 
 
 
 
 
 
181 #endif/*FOSSIL_JSON_DETAIL_H_INCLUDED*/
182
--- src/json_detail.h
+++ src/json_detail.h
@@ -176,6 +176,12 @@
176 /*
177 ** Implements /json/timeline family of functions.
178 */
179 cson_value * json_page_timeline();
180
181 /*
182 ** Convenience wrapper around cson_value_new_string().
183 ** Returns NULL if str is NULL or on allocation error.
184 */
185 cson_value * json_new_string( char const * str );
186
187 #endif/*FOSSIL_JSON_DETAIL_H_INCLUDED*/
188
+20 -5
--- src/json_login.c
+++ src/json_login.c
@@ -115,11 +115,11 @@
115115
o = cson_value_get_object(payload);
116116
cson_object_set( o, "n", cson_value_new_string(name,strlen(name)));
117117
cson_object_set( o, "p", cson_value_new_string(pw,strlen(pw)));
118118
return payload;
119119
}
120
-#else
120
+#endif
121121
uid = anonSeed
122122
? login_is_valid_anonymous(name, pw, anonSeed)
123123
: login_search_uid(name, pw)
124124
;
125125
if( !uid ){
@@ -132,17 +132,32 @@
132132
if(anonSeed){
133133
login_set_anon_cookie(NULL, &cookie);
134134
}else{
135135
login_set_user_cookie(name, uid, &cookie);
136136
}
137
- payload = cookie
138
- ? cson_value_new_string( cookie, strlen(cookie) )
139
- : cson_value_null()/*why null instead of NULL?*/;
137
+ /* FIXME: expand the payload to:
138
+
139
+ { authToken:...,
140
+ name:...,
141
+ capabilities:...
142
+ }
143
+ */
144
+ {
145
+ cson_object * po;
146
+ char * cap = NULL;
147
+ payload = cson_value_new_object();
148
+ po = cson_value_get_object(payload);
149
+ cson_object_set(po, "authToken", json_new_string(cookie));
150
+ cson_object_set(po, "name", json_new_string(name));
151
+ cap = db_text(NULL,"SELECT cap FROM user WHERE login=%Q",name);
152
+ cson_object_set(po, "capabilities", json_new_string(cap));
153
+ free(cap);
154
+ }
140155
free(cookie);
141156
return payload;
142157
}
143
-#endif
158
+
144159
}
145160
146161
/*
147162
** Impl of /json/logout.
148163
**
149164
--- src/json_login.c
+++ src/json_login.c
@@ -115,11 +115,11 @@
115 o = cson_value_get_object(payload);
116 cson_object_set( o, "n", cson_value_new_string(name,strlen(name)));
117 cson_object_set( o, "p", cson_value_new_string(pw,strlen(pw)));
118 return payload;
119 }
120 #else
121 uid = anonSeed
122 ? login_is_valid_anonymous(name, pw, anonSeed)
123 : login_search_uid(name, pw)
124 ;
125 if( !uid ){
@@ -132,17 +132,32 @@
132 if(anonSeed){
133 login_set_anon_cookie(NULL, &cookie);
134 }else{
135 login_set_user_cookie(name, uid, &cookie);
136 }
137 payload = cookie
138 ? cson_value_new_string( cookie, strlen(cookie) )
139 : cson_value_null()/*why null instead of NULL?*/;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140 free(cookie);
141 return payload;
142 }
143 #endif
144 }
145
146 /*
147 ** Impl of /json/logout.
148 **
149
--- src/json_login.c
+++ src/json_login.c
@@ -115,11 +115,11 @@
115 o = cson_value_get_object(payload);
116 cson_object_set( o, "n", cson_value_new_string(name,strlen(name)));
117 cson_object_set( o, "p", cson_value_new_string(pw,strlen(pw)));
118 return payload;
119 }
120 #endif
121 uid = anonSeed
122 ? login_is_valid_anonymous(name, pw, anonSeed)
123 : login_search_uid(name, pw)
124 ;
125 if( !uid ){
@@ -132,17 +132,32 @@
132 if(anonSeed){
133 login_set_anon_cookie(NULL, &cookie);
134 }else{
135 login_set_user_cookie(name, uid, &cookie);
136 }
137 /* FIXME: expand the payload to:
138
139 { authToken:...,
140 name:...,
141 capabilities:...
142 }
143 */
144 {
145 cson_object * po;
146 char * cap = NULL;
147 payload = cson_value_new_object();
148 po = cson_value_get_object(payload);
149 cson_object_set(po, "authToken", json_new_string(cookie));
150 cson_object_set(po, "name", json_new_string(name));
151 cap = db_text(NULL,"SELECT cap FROM user WHERE login=%Q",name);
152 cson_object_set(po, "capabilities", json_new_string(cap));
153 free(cap);
154 }
155 free(cookie);
156 return payload;
157 }
158
159 }
160
161 /*
162 ** Impl of /json/logout.
163 **
164

Keyboard Shortcuts

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