@@ -60,19 +60,21 @@
60 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zBody = NULL;
61 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zPageName;
62 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zFormat = NULL;
63 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char * zUuid = NULL;
64 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !g.perm.RdWiki ){
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_DENIED;
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !g.perm.RdWiki && !g.perm.Read ){
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_DENIED,
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Requires 'o' or 'j' access.");
67 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return NULL;
68 69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
69 70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPageName = g.isHTTP
70 71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
? json_getenv_cstr("page")
71 72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
: find_option("page","p",1);
72 73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!zPageName||!*zPageName){
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_MISSING_ARGS;
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_MISSING_ARGS,
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "'page' argument is missing.");
74 76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return NULL;
75 77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76 78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
77 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFormat = g.isHTTP
78 80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
? json_getenv_cstr("format")
@@ -90,11 +92,12 @@
90 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ORDER BY x.mtime DESC LIMIT 1",
91 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPageName
92 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
93 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (SQLITE_ROW != db_step(&q)) ){
94 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_destroy(pWiki);
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_UNKNOWN;
97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_UNKNOWN,
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Error reading wiki page manifest.");
96 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return NULL;
97 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rid = db_column_int(&q,0);
99 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUuid = db_column_malloc(&q,1);
100 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
@@ -103,11 +106,12 @@
103 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zBody = pWiki->zWiki;
104 107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
105 108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zBody==0 ){
106 109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_destroy(pWiki);
107 110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(zUuid);
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_RESOURCE_NOT_FOUND;
111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_RESOURCE_NOT_FOUND,
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Wiki body is empty (is that possible?)");
109 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return NULL;
110 114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111 115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
112 116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
113 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned int len;
@@ -176,17 +180,20 @@
176 180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zPageName;
177 181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned int contentLen = 0;
178 182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rid;
179 183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (createMode && !g.perm.NewWiki)
180 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (!createMode && !g.perm.WrWiki)){
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_DENIED;
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_DENIED,
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Requires '%c' permissions.",
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (createMode ? 'f' : 'k'));
182 188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return NULL;
183 189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
184 190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nameV = json_req_payload_get("name");
185 191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!nameV){
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_MISSING_ARGS;
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- goto error;
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err( FSL_JSON_E_MISSING_ARGS,
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "'name' parameter is missing.");
194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return NULL;
188 195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
189 196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPageName = cson_string_cstr(cson_value_get_string(nameV));
190 197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rid = db_int(0,
191 198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT x.rid FROM tag t, tagxref x"
192 199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" WHERE x.tagid=t.tagid AND t.tagname='wiki-%q'"
@@ -194,30 +201,36 @@
194 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPageName
195 202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
196 203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
197 204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(rid){
198 205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(createMode){
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_RESOURCE_ALREADY_EXISTS;
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_RESOURCE_ALREADY_EXISTS,
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Wiki page '%s' already exists.",
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zPageName);
200 209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto error;
201 210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
202 211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if(!allowCreateIfExists){
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_RESOURCE_NOT_FOUND;
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_RESOURCE_NOT_FOUND,
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Wiki page '%s' not found.",
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zPageName);
204 215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto error;
205 216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
206 217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
207 218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
contentV = json_req_payload_get("content");
208 219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !contentV ){
209 220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( createMode || (!rid && allowCreateIfExists) ){
210 221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
contentV = emptyContent = cson_value_new_string("",0);
211 222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_MISSING_ARGS;
223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_MISSING_ARGS,
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "'content' parameter is missing.");
213 225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto error;
214 226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
215 227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
216 228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !cson_value_is_string(nameV)
217 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| !cson_value_is_string(contentV)){
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_INVALID_ARGS;
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_INVALID_ARGS,
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "'name' and 'content' parameters must be strings.");
219 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto error;
220 233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
221 234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jstr = cson_value_get_string(contentV);
222 235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
contentLen = (int)cson_string_length_bytes(jstr);
223 236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(contentLen){
@@ -273,12 +286,13 @@
273 286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
274 287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static cson_value * json_wiki_list(){
275 288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * listV = NULL;
276 289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_array * list = NULL;
277 290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !g.perm.RdWiki ){
279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_DENIED;
291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !g.perm.RdWiki && !g.perm.Read ){
292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_DENIED,
293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Requires 'j' or 'o' permissions.");
280 294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return NULL;
281 295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
282 296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q,"SELECT"
283 297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" substr(tagname,6) as name"
284 298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" FROM tag WHERE tagname GLOB 'wiki-*'"
@@ -294,12 +308,13 @@
294 308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto error;
295 309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
296 310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
297 311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto end;
298 312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
error:
299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.json.resultCode = FSL_JSON_E_UNKNOWN;
300 313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value_free(listV);
301 314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
listV = NULL;
315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_set_err(FSL_JSON_E_UNKNOWN,
316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Error creating wiki page list.");
302 317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
end:
303 318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
304 319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return listV;
305 320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
306 321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!