@@ -56,7 +56,9 @@ class DiscussionHandler extends Handler {
5656 // TODO(twd2): exclude problem/contest discussions?
5757 // TODO(iceboy): continuation based pagination.
5858 this . vnode = await discussion . getVnode ( domainId , typeMapper [ type ] , name , this . user . _id ) ;
59- if ( ! discussion . checkVNodeVisibility ( typeMapper [ type ] , this . vnode , this . user ) ) throw new DiscussionNodeNotFoundError ( this . vnode . id ) ;
59+ if ( ! discussion . checkVNodeVisibility ( typeMapper [ type ] , this . vnode , this . user ) ) {
60+ throw new DiscussionNodeNotFoundError ( domainId , this . vnode . id ) ;
61+ }
6062 if ( this . ddoc ) {
6163 this . ddoc . parentType ||= this . vnode . type ;
6264 this . ddoc . parentId ||= this . vnode . id ;
@@ -422,7 +424,7 @@ class DiscussionEditHandler extends DiscussionHandler {
422424}
423425
424426export async function apply ( ctx ) {
425- ctx . Route ( 'discussion_main' , '/discuss' , DiscussionMainHandler ) ;
427+ ctx . Route ( 'discussion_main' , '/discuss' , DiscussionMainHandler , PERM . PERM_VIEW_DISCUSSION ) ;
426428 ctx . Route ( 'discussion_detail' , '/discuss/:did' , DiscussionDetailHandler ) ;
427429 ctx . Route ( 'discussion_edit' , '/discuss/:did/edit' , DiscussionEditHandler ) ;
428430 ctx . Route ( 'discussion_raw' , '/discuss/:did/raw' , DiscussionRawHandler ) ;
0 commit comments