@@ -4,7 +4,7 @@ import { Op, Sequelize } from 'sequelize';
44import models from '../../models' ;
55import util from '../../util' ;
66import { PERMISSION } from '../../permissions/constants' ;
7- import { DEFAULT_PAGE_SIZE } from '../../constants' ;
7+ import { DEFAULT_PAGE_SIZE , USER_ROLE } from '../../constants' ;
88
99module . exports = [
1010 ( req , res , next ) => {
@@ -17,6 +17,8 @@ module.exports = [
1717 return next ( err ) ;
1818 }
1919
20+ const isAdminOrManager = util . hasRoles ( req , [ USER_ROLE . CONNECT_ADMIN , USER_ROLE . TOPCODER_ADMIN , USER_ROLE . PROJECT_MANAGER ] ) ;
21+
2022 const page = parseInt ( req . query . page , 10 ) || 1 ;
2123 const pageSize = parseInt ( req . query . pageSize , 10 ) || DEFAULT_PAGE_SIZE ;
2224 const offset = ( page - 1 ) * pageSize ;
@@ -46,7 +48,7 @@ module.exports = [
4648 let order = [ [ sortParams [ 0 ] , sortParams [ 1 ] ] ] ;
4749 const relationBasedSortParams = [ 'projectName' ] ;
4850 const jsonBasedSortParams = [ 'opportunityTitle' , 'projectType' ] ;
49- if ( relationBasedSortParams . includes ( sortParams [ 0 ] ) ) {
51+ if ( relationBasedSortParams . includes ( sortParams [ 0 ] ) && isAdminOrManager ) {
5052 order = [
5153 [ { model : models . Project , as : 'project' } , 'name' , sortParams [ 1 ] ] ,
5254 [ 'id' , 'DESC' ]
@@ -64,9 +66,11 @@ module.exports = [
6466
6567 return models . CopilotRequest . findAndCountAll ( {
6668 where : whereCondition ,
67- include : [
69+ include : isAdminOrManager ? [
6870 { model : models . CopilotOpportunity , as : 'copilotOpportunity' , required : false } ,
6971 { model : models . Project , as : 'project' , required : false } ,
72+ ] : [
73+ { model : models . CopilotOpportunity , as : 'copilotOpportunity' , required : false } ,
7074 ] ,
7175 order,
7276 limit : pageSize ,
0 commit comments