Differences From
Artifact [cc5cf170ae]:
166 166 if subj == nil then subj = '' end
167 167
168 168 var p = lib.store.post {
169 169 author = co.who.id, acl = acl;
170 170 body = text, subject = subj;
171 + parent = 0;
171 172 }
172 173 var newid = p:publish(co.srv)
173 174
174 175 var idbuf: int8[lib.math.shorthand.maxlen]
175 176 var idlen = lib.math.shorthand.gen(newid, idbuf)
................................................................................
382 383 lib.render.conf(co,path,msg)
383 384 do return end
384 385
385 386 ::nopriv:: co:complain(403,'insufficient privileges','you do not have the necessary powers to perform this action')
386 387 end
388 +
389 +terra http.user_notices(co: &lib.srv.convo, meth: method.t)
390 + if meth == method.post then
391 + var act = co:ppostv('act')
392 + if act:cmp(lib.str.plit'clear') then
393 + co.srv:actor_conf_int_set(co.who.id, 'notice-clear-time', lib.osclock.time(nil))
394 + co:reroute('/')
395 + return
396 + else goto badop end
397 + end
398 +
399 + lib.render.notices(co)
400 + do return end
401 +
402 + ::badop :: do co:complain(405, 'invalid operation', 'the operation you have attempted on this post is not meaningful') return end
403 +end
387 404
388 405 do local branches = quote end
389 406 local filename, flen = symbol(&int8), symbol(intptr)
390 407 local page = symbol(lib.http.page)
391 408 local send = label()
................................................................................
444 461 elseif uri.ptr[1] == @'s' and uri.ptr[2] == @'/' and uri.ct > 3 then
445 462 if not meth_get(meth) then goto wrongmeth end
446 463 if not http.static_content(co, uri.ptr + 3, uri.ct - 3) then goto notfound end
447 464 elseif lib.str.ncmp('/avi/', uri.ptr, 5) == 0 then
448 465 http.local_avatar(co, [lib.mem.ptr(int8)] {ptr = uri.ptr + 5, ct = uri.ct - 5})
449 - elseif lib.str.ncmp('/compose', uri.ptr, lib.math.biggest(uri.ct,8)) == 0 then
466 + elseif uri:cmp(lib.str.plit '/notices') then
467 + if co.aid == 0 then co:reroute('/login') return end
468 + http.user_notices(co,meth)
469 + elseif uri:cmp(lib.str.plit '/compose') then
450 470 if co.aid == 0 then co:reroute('/login') return end
451 471 http.post_compose(co,meth)
452 - elseif lib.str.ncmp('/login', uri.ptr, lib.math.biggest(uri.ct,6)) == 0 then
472 + elseif uri:cmp(lib.str.plit '/login') then
453 473 if co.aid == 0
454 474 then http.login_form(co, meth)
455 475 else co:reroute('/')
456 476 end
457 - elseif lib.str.ncmp('/logout', uri.ptr, lib.math.biggest(uri.ct,7)) == 0 then
477 + elseif uri:cmp(lib.str.plit '/logout') then
458 478 if co.aid == 0
459 479 then goto notfound
460 480 else co:reroute_cookie('/','auth=; Path=/')
461 481 end
462 482 else -- hierarchical routes