Fossil SCM
restructured /json/cap output.
Commit
7e3902d14f3e31bf8b989f6e3f0fbb7dd4cefd7c
Parent
e94605b54fa0b7a…
1 file changed
+19
+19
| --- src/json.c | ||
| +++ src/json.c | ||
| @@ -682,11 +682,30 @@ | ||
| 682 | 682 | ** This is primarily intended for debuggering, but may have |
| 683 | 683 | ** a use in client code. (?) |
| 684 | 684 | */ |
| 685 | 685 | cson_value * json_page_cap(void){ |
| 686 | 686 | cson_value * payload = cson_value_new_object(); |
| 687 | + cson_value * sub = cson_value_new_object(); | |
| 688 | + char * zCap; | |
| 689 | + Stmt q; | |
| 687 | 690 | cson_object * obj = cson_value_get_object(payload); |
| 691 | + if( g.zLogin ){ | |
| 692 | + cson_object_set( obj, "userName", | |
| 693 | + cson_value_new_string(g.zLogin,strlen(g.zLogin)) ); | |
| 694 | + } | |
| 695 | + db_prepare(&q, "SELECT cap FROM user WHERE uid=%d", g.userUid); | |
| 696 | + if( db_step(&q)==SQLITE_ROW ){ | |
| 697 | + char const * zCap = (char const *)sqlite3_column_text(q.pStmt,0); | |
| 698 | + if( zCap ){ | |
| 699 | + cson_object_set( obj, "capabilities", | |
| 700 | + cson_value_new_string(zCap,strlen(zCap)) ); | |
| 701 | + } | |
| 702 | + } | |
| 703 | + db_finalize(&q); | |
| 704 | + cson_object_set( obj, "permissionFlags", sub ); | |
| 705 | + obj = cson_value_get_object(sub); | |
| 706 | + | |
| 688 | 707 | #define ADD(X) cson_object_set(obj, #X, cson_value_new_bool(g.perm.X)) |
| 689 | 708 | ADD(Setup); |
| 690 | 709 | ADD(Admin); |
| 691 | 710 | ADD(Delete); |
| 692 | 711 | ADD(Password); |
| 693 | 712 |
| --- src/json.c | |
| +++ src/json.c | |
| @@ -682,11 +682,30 @@ | |
| 682 | ** This is primarily intended for debuggering, but may have |
| 683 | ** a use in client code. (?) |
| 684 | */ |
| 685 | cson_value * json_page_cap(void){ |
| 686 | cson_value * payload = cson_value_new_object(); |
| 687 | cson_object * obj = cson_value_get_object(payload); |
| 688 | #define ADD(X) cson_object_set(obj, #X, cson_value_new_bool(g.perm.X)) |
| 689 | ADD(Setup); |
| 690 | ADD(Admin); |
| 691 | ADD(Delete); |
| 692 | ADD(Password); |
| 693 |
| --- src/json.c | |
| +++ src/json.c | |
| @@ -682,11 +682,30 @@ | |
| 682 | ** This is primarily intended for debuggering, but may have |
| 683 | ** a use in client code. (?) |
| 684 | */ |
| 685 | cson_value * json_page_cap(void){ |
| 686 | cson_value * payload = cson_value_new_object(); |
| 687 | cson_value * sub = cson_value_new_object(); |
| 688 | char * zCap; |
| 689 | Stmt q; |
| 690 | cson_object * obj = cson_value_get_object(payload); |
| 691 | if( g.zLogin ){ |
| 692 | cson_object_set( obj, "userName", |
| 693 | cson_value_new_string(g.zLogin,strlen(g.zLogin)) ); |
| 694 | } |
| 695 | db_prepare(&q, "SELECT cap FROM user WHERE uid=%d", g.userUid); |
| 696 | if( db_step(&q)==SQLITE_ROW ){ |
| 697 | char const * zCap = (char const *)sqlite3_column_text(q.pStmt,0); |
| 698 | if( zCap ){ |
| 699 | cson_object_set( obj, "capabilities", |
| 700 | cson_value_new_string(zCap,strlen(zCap)) ); |
| 701 | } |
| 702 | } |
| 703 | db_finalize(&q); |
| 704 | cson_object_set( obj, "permissionFlags", sub ); |
| 705 | obj = cson_value_get_object(sub); |
| 706 | |
| 707 | #define ADD(X) cson_object_set(obj, #X, cson_value_new_bool(g.perm.X)) |
| 708 | ADD(Setup); |
| 709 | ADD(Admin); |
| 710 | ADD(Delete); |
| 711 | ADD(Password); |
| 712 |