@@ -18,8 +18,11 @@ var Strategy = require('../models/strategy').Strategy;
1818var User = require ( '../models/user' ) . User ;
1919var Discussion = require ( '../models/discussion' ) . Discussion ;
2020
21+ // TODO: Possible unneccessary directory traversal
2122var categories = require ( '../controllers/discussion' ) . categories ;
2223
24+ var getFlaggedListForContent = require ( './flag' ) . getFlaggedListForContent ;
25+
2326var userRoles = require ( '../models/userRoles.json' ) ;
2427var scriptStorage = require ( './scriptStorage' ) ;
2528var modelParser = require ( '../libs/modelParser' ) ;
@@ -234,8 +237,29 @@ exports.userListPage = function (aReq, aRes, aNext) {
234237 pageMetadata ( options , [ 'Flagged Users' , 'Moderation' ] ) ;
235238 }
236239 }
237- function render ( ) { aRes . render ( 'pages/userListPage' , options ) ; }
238- function asyncComplete ( err ) { if ( err ) { return aNext ( ) ; } else { preRender ( ) ; render ( ) ; } }
240+ function render ( ) {
241+ aRes . render ( 'pages/userListPage' , options ) ;
242+ }
243+ function asyncComplete ( aErr ) {
244+ if ( aErr ) {
245+ aNext ( ) ;
246+ return ;
247+ }
248+
249+ async . parallel ( [
250+ function ( aCallback ) {
251+ if ( ! options . isFlagged || ! options . isAdmin ) { // NOTE: Watchpoint
252+ aCallback ( ) ;
253+ return ;
254+ }
255+ getFlaggedListForContent ( 'User' , options , aCallback ) ;
256+ }
257+ ] , function ( aErr ) {
258+ preRender ( ) ;
259+ render ( ) ;
260+ } ) ;
261+
262+ }
239263 async . parallel ( tasks , asyncComplete ) ;
240264} ;
241265
@@ -292,9 +316,27 @@ exports.view = function (aReq, aRes, aNext) {
292316 tasks = tasks . concat ( stats . getSummaryTasks ( options ) ) ;
293317
294318 //---
295- function preRender ( ) { }
296- function render ( ) { aRes . render ( 'pages/userPage' , options ) ; }
297- function asyncComplete ( ) { preRender ( ) ; render ( ) ; }
319+ function preRender ( ) {
320+ }
321+ function render ( ) {
322+ aRes . render ( 'pages/userPage' , options ) ;
323+ }
324+ function asyncComplete ( ) {
325+
326+ async . parallel ( [
327+ function ( aCallback ) {
328+ if ( ! options . isAdmin ) { // NOTE: Watchpoint
329+ aCallback ( ) ;
330+ return ;
331+ }
332+ getFlaggedListForContent ( 'User' , options , aCallback ) ;
333+ }
334+ ] , function ( aErr ) {
335+ preRender ( ) ;
336+ render ( ) ;
337+ } ) ;
338+
339+ }
298340 async . parallel ( tasks , asyncComplete ) ;
299341 } ) ;
300342} ;
@@ -410,13 +452,14 @@ exports.userCommentListPage = function (aReq, aRes, aNext) {
410452
411453exports . userScriptListPage = function ( aReq , aRes , aNext ) {
412454 var authedUser = aReq . session . user ;
413-
414455 var username = aReq . params . username ;
415456
416457 User . findOne ( {
417458 name : caseInsensitive ( username )
418459 } , function ( aErr , aUserData ) {
419- if ( aErr || ! aUserData ) { return aNext ( ) ; }
460+ if ( aErr || ! aUserData ) {
461+ return aNext ( ) ;
462+ }
420463
421464 //
422465 var options = { } ;
@@ -497,8 +540,25 @@ exports.userScriptListPage = function (aReq, aRes, aNext) {
497540 options . scriptListIsEmptyMessage = 'This user hasn\'t added any scripts yet.' ;
498541 }
499542 }
500- function render ( ) { aRes . render ( 'pages/userScriptListPage' , options ) ; }
501- function asyncComplete ( ) { preRender ( ) ; render ( ) ; }
543+ function render ( ) {
544+ aRes . render ( 'pages/userScriptListPage' , options ) ;
545+ }
546+ function asyncComplete ( ) {
547+
548+ async . parallel ( [
549+ function ( aCallback ) {
550+ if ( ! options . isFlagged || ! options . isAdmin ) { // NOTE: Watchpoint
551+ aCallback ( ) ;
552+ return ;
553+ }
554+ getFlaggedListForContent ( 'Script' , options , aCallback ) ;
555+ }
556+ ] , function ( aErr ) {
557+ preRender ( ) ;
558+ render ( ) ;
559+ } ) ;
560+
561+ }
502562 async . parallel ( tasks , asyncComplete ) ;
503563 } ) ;
504564} ;
0 commit comments