@@ -17,6 +17,7 @@ import urlencode from 'urlencode';
1717import elasticsearch from 'elasticsearch' ;
1818import Promise from 'bluebird' ;
1919import AWS from 'aws-sdk' ;
20+ import { ADMIN_ROLES } from './constants' ;
2021
2122const exec = require ( 'child_process' ) . exec ;
2223const models = require ( './models' ) . default ;
@@ -73,6 +74,27 @@ _.assignIn(util, {
7374 roles = roles . map ( s => s . toLowerCase ( ) ) ;
7475 return _ . indexOf ( roles , role . toLowerCase ( ) ) >= 0 ;
7576 } ,
77+ /**
78+ * Helper funtion to verify if user has specified roles
79+ * @param {object } req Request object that should contain authUser
80+ * @param {Array } roles specified roles
81+ * @return {boolean } true/false
82+ */
83+ hasRoles : ( req , roles ) => {
84+ let authRoles = _ . get ( req , 'authUser.roles' , [ ] ) ;
85+ authRoles = authRoles . map ( s => s . toLowerCase ( ) ) ;
86+ return _ . intersection ( authRoles , roles . map ( r => r . toLowerCase ( ) ) ) . length > 0 ;
87+ } ,
88+ /**
89+ * Helper funtion to verify if user has admin roles
90+ * @param {object } req Request object that should contain authUser
91+ * @return {boolean } true/false
92+ */
93+ hasAdminRole : ( req ) => {
94+ let roles = _ . get ( req , 'authUser.roles' , [ ] ) ;
95+ roles = roles . map ( s => s . toLowerCase ( ) ) ;
96+ return _ . intersection ( roles , ADMIN_ROLES . map ( r => r . toLowerCase ( ) ) ) . length > 0 ;
97+ } ,
7698
7799 /**
78100 * Parses query fields and groups them per table
@@ -206,6 +228,7 @@ _.assignIn(util, {
206228 getSystemUserToken : ( logger , id = 'system' ) => {
207229 const httpClient = util . getHttpClient ( { id, log : logger } ) ;
208230 const url = `${ config . get ( 'identityServiceEndpoint' ) } authorizations` ;
231+ console . log ( url , 'url' ) ;
209232 const formData = `clientId=${ config . get ( 'systemUserClientId' ) } &` +
210233 `secret=${ encodeURIComponent ( config . get ( 'systemUserClientSecret' ) ) } ` ;
211234 return httpClient . post ( url , formData ,
@@ -269,8 +292,11 @@ _.assignIn(util, {
269292 */
270293 getMemberDetailsByUserIds : Promise . coroutine ( function * ( userIds , logger , requestId ) { // eslint-disable-line func-names
271294 try {
272- const token = yield this . getSystemUserToken ( logger ) ;
295+ console . log ( 'getMemberDetailsByUserIds' ) ;
296+ const token = yield 'farzi' ; // this.getSystemUserToken(logger);
297+ console . log ( 'token' , token ) ;
273298 const httpClient = this . getHttpClient ( { id : requestId , log : logger } ) ;
299+ console . log ( config . memberServiceEndpoint , 'config.memberServiceEndpoint' ) ;
274300 return httpClient . get ( `${ config . memberServiceEndpoint } /_search` , {
275301 params : {
276302 query : `${ userIds . join ( urlencode ( ' OR ' , 'utf8' ) ) } ` ,
0 commit comments