@@ -19,11 +19,16 @@ var _ = require('underscore');
1919var moment = require ( 'moment' ) ;
2020var IllegalArgumentError = require ( '../errors/IllegalArgumentError' ) ;
2121var NotFoundError = require ( '../errors/NotFoundError' ) ;
22- var UnauthorizedError = require ( '../errors/UnauthorizedError' ) ;
23- var ForbiddenError = require ( '../errors/ForbiddenError' ) ;
2422
2523var DATE_FORMAT = "YYYY-MM-DD HH:mm" ;
2624
25+ /**
26+ * Error messages
27+ */
28+ var NON_ADMIN_MESSAGE = "Admin access only." ,
29+ NON_ADMIN_OR_WEB_ARENA_SUPER_MESSAGE = "Admin or web Arena super user only." ,
30+ UNAUTHORIZED_MESSAGE = "Authorized information needed." ;
31+
2732/**
2833 * Get Round Question Answers.
2934 *
@@ -40,15 +45,7 @@ var getRoundQuestionAnswers = function (api, connection, dbConnectionMap, next)
4045
4146 async . waterfall ( [
4247 function ( cb ) {
43- if ( ! helper . isAdmin ( caller ) && ! caller . isWebArenaSuper ) {
44- if ( ! helper . isMember ( caller ) ) {
45- cb ( new UnauthorizedError ( "Authorized information needed." ) ) ;
46- } else {
47- cb ( new ForbiddenError ( "Admin or web Arena super user only." ) ) ;
48- }
49- } else {
50- cb ( ) ;
51- }
48+ cb ( helper . checkAdminOrWebArenaSuper ( connection , UNAUTHORIZED_MESSAGE , NON_ADMIN_OR_WEB_ARENA_SUPER_MESSAGE ) ) ;
5249 } , function ( cb ) {
5350 cb ( helper . checkIdParameter ( questionId , "questionId" ) ) ;
5451 } , function ( cb ) {
@@ -88,7 +85,7 @@ var getRoundQuestions = function (api, connection, dbConnectionMap, next) {
8885
8986 async . waterfall ( [
9087 function ( cb ) {
91- cb ( helper . checkAdmin ( connection , 'Authorized information needed.' , 'Admin access only.' ) ) ;
88+ cb ( helper . checkAdminOrWebArenaSuper ( connection , UNAUTHORIZED_MESSAGE , NON_ADMIN_OR_WEB_ARENA_SUPER_MESSAGE ) ) ;
9289 } , function ( cb ) {
9390 cb ( helper . checkIdParameter ( roundId , "roundId" ) ) ;
9491 } , function ( cb ) {
@@ -287,28 +284,6 @@ var setRoundSurvey = function (api, connection, dbConnectionMap, next) {
287284 } ) ;
288285} ;
289286
290- /**
291- * Check if user authorized and is admin or web Arena super user
292- *
293- * @param api the api instance.
294- * @param the connection instance
295- * @param callback the callback method
296- */
297- function checkAuthorization ( api , connection , callback ) {
298- var helper = api . helper ,
299- caller = connection . caller ;
300-
301- if ( ! helper . isAdmin ( caller ) && ! caller . isWebArenaSuper ) {
302- if ( ! helper . isMember ( caller ) ) {
303- callback ( new UnauthorizedError ( "Authorized information needed." ) ) ;
304- } else {
305- callback ( new ForbiddenError ( "Admin or web Arena super user only." ) ) ;
306- }
307- } else {
308- callback ( ) ;
309- }
310- }
311-
312287/**
313288 * Check question id.
314289 *
@@ -403,15 +378,7 @@ var addRoundQuestionAnswer = function (api, connection, dbConnectionMap, next) {
403378
404379 async . waterfall ( [
405380 function ( cb ) {
406- if ( ! helper . isAdmin ( caller ) && ! caller . isWebArenaSuper ) {
407- if ( ! helper . isMember ( caller ) ) {
408- cb ( new UnauthorizedError ( "Authorized information needed." ) ) ;
409- } else {
410- cb ( new ForbiddenError ( "Admin or web Arena super user only." ) ) ;
411- }
412- } else {
413- cb ( ) ;
414- }
381+ cb ( helper . checkAdminOrWebArenaSuper ( connection , UNAUTHORIZED_MESSAGE , NON_ADMIN_OR_WEB_ARENA_SUPER_MESSAGE ) ) ;
415382 } , function ( cb ) {
416383 checkQuestionId ( api , dbConnectionMap , questionId , cb ) ;
417384 } , function ( error , cb ) {
@@ -556,7 +523,7 @@ var addRoundQuestion = function (api, connection, dbConnectionMap, next) {
556523
557524 async . waterfall ( [
558525 function ( cb ) {
559- checkAuthorization ( api , connection , cb ) ;
526+ cb ( helper . checkAdminOrWebArenaSuper ( connection , UNAUTHORIZED_MESSAGE , NON_ADMIN_OR_WEB_ARENA_SUPER_MESSAGE ) ) ;
560527 } , function ( cb ) {
561528 checkRoundId ( api , dbConnectionMap , roundId , cb ) ;
562529 } , function ( error , cb ) {
@@ -620,7 +587,7 @@ var modifyRoundQuestion = function (api, connection, dbConnectionMap, next) {
620587
621588 async . waterfall ( [
622589 function ( cb ) {
623- cb ( helper . checkAdmin ( connection , 'Authorized information needed.' , 'Admin access only.' ) ) ;
590+ cb ( helper . checkAdminOrWebArenaSuper ( connection , UNAUTHORIZED_MESSAGE , NON_ADMIN_OR_WEB_ARENA_SUPER_MESSAGE ) ) ;
624591 } , function ( cb ) {
625592 checkQuestionId ( api , dbConnectionMap , questionId , cb ) ;
626593 } , function ( error , cb ) {
@@ -659,7 +626,7 @@ var deleteRoundQuestion = function (api, connection, dbConnectionMap, next) {
659626
660627 async . waterfall ( [
661628 function ( cb ) {
662- cb ( helper . checkAdmin ( connection , 'Authorized information needed.' , 'Admin access only.' ) ) ;
629+ cb ( helper . checkAdminOrWebArenaSuper ( connection , UNAUTHORIZED_MESSAGE , NON_ADMIN_OR_WEB_ARENA_SUPER_MESSAGE ) ) ;
663630 } , function ( cb ) {
664631 checkQuestionId ( api , dbConnectionMap , questionId , cb ) ;
665632 } , function ( error , cb ) {
@@ -731,7 +698,7 @@ var modifyRoundQuestionAnswer = function (api, connection, dbConnectionMap, next
731698
732699 async . waterfall ( [
733700 function ( cb ) {
734- cb ( helper . checkAdmin ( connection , 'Authorized information needed.' , 'Admin access only.' ) ) ;
701+ cb ( helper . checkAdminOrWebArenaSuper ( connection , UNAUTHORIZED_MESSAGE , NON_ADMIN_OR_WEB_ARENA_SUPER_MESSAGE ) ) ;
735702 } , function ( cb ) {
736703 checkAnswerValues ( api , text , sortOrder , correct , cb ) ;
737704 } , function ( error , cb ) {
@@ -768,7 +735,7 @@ var deleteRoundQuestionAnswer = function (api, connection, dbConnectionMap, next
768735
769736 async . waterfall ( [
770737 function ( cb ) {
771- cb ( helper . checkAdmin ( connection , 'Authorized information needed.' , 'Admin access only.' ) ) ;
738+ cb ( helper . checkAdminOrWebArenaSuper ( connection , UNAUTHORIZED_MESSAGE , NON_ADMIN_OR_WEB_ARENA_SUPER_MESSAGE ) ) ;
772739 } , function ( cb ) {
773740 cb ( helper . checkIdParameter ( answerId , 'answerId' ) ) ;
774741 } , function ( cb ) {
0 commit comments