| | @@ -115,11 +115,11 @@ |
| 115 | 115 | o = cson_value_get_object(payload); |
| 116 | 116 | cson_object_set( o, "n", cson_value_new_string(name,strlen(name))); |
| 117 | 117 | cson_object_set( o, "p", cson_value_new_string(pw,strlen(pw))); |
| 118 | 118 | return payload; |
| 119 | 119 | } |
| 120 | | -#else |
| 120 | +#endif |
| 121 | 121 | uid = anonSeed |
| 122 | 122 | ? login_is_valid_anonymous(name, pw, anonSeed) |
| 123 | 123 | : login_search_uid(name, pw) |
| 124 | 124 | ; |
| 125 | 125 | if( !uid ){ |
| | @@ -132,17 +132,32 @@ |
| 132 | 132 | if(anonSeed){ |
| 133 | 133 | login_set_anon_cookie(NULL, &cookie); |
| 134 | 134 | }else{ |
| 135 | 135 | login_set_user_cookie(name, uid, &cookie); |
| 136 | 136 | } |
| 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 | + } |
| 140 | 155 | free(cookie); |
| 141 | 156 | return payload; |
| 142 | 157 | } |
| 143 | | -#endif |
| 158 | + |
| 144 | 159 | } |
| 145 | 160 | |
| 146 | 161 | /* |
| 147 | 162 | ** Impl of /json/logout. |
| 148 | 163 | ** |
| 149 | 164 | |