@@ -34,7 +34,7 @@ import { WebPageConfigRepository } from 'src/webpage-config/repositories/webpage
3434import { InjectModel } from '@nestjs/mongoose' ;
3535import { CustomerOnboarding } from 'src/customer-onboarding/schemas/customer-onboarding.schema' ;
3636import { Model } from 'mongoose' ;
37- import { getAccessListForModule } from 'src/utils/utils' ;
37+ import { evaluateAccessPolicy , getAccessListForModule } from 'src/utils/utils' ;
3838import { TokenModule } from 'src/config/access-matrix' ;
3939import { redisClient } from 'src/utils/redis.provider' ;
4040import {
@@ -68,7 +68,7 @@ export class AppAuthService {
6868 @InjectModel ( CustomerOnboarding . name )
6969 private readonly onboardModel : Model < CustomerOnboarding > ,
7070 private readonly webpageConfigRepo : WebPageConfigRepository ,
71- ) { }
71+ ) { }
7272
7373 async createAnApp (
7474 createAppDto : CreateAppDto ,
@@ -752,10 +752,15 @@ export class AppAuthService {
752752 switch ( serviceType ) {
753753 case SERVICE_TYPES . SSI_API : {
754754 grant_type = GRANT_TYPES . access_service_ssi ;
755- accessList = getAccessListForModule (
755+ const defaultAccessList = getAccessListForModule (
756756 TokenModule . APP_AUTH ,
757757 SERVICE_TYPES . SSI_API ,
758758 ) ;
759+ accessList = evaluateAccessPolicy (
760+ defaultAccessList ,
761+ SERVICE_TYPES . SSI_API ,
762+ [ ] ,
763+ ) ;
759764 break ;
760765 }
761766 case SERVICE_TYPES . CAVACH_API : {
@@ -769,18 +774,28 @@ export class AppAuthService {
769774 ] ) ;
770775 }
771776 grant_type = grantType || GRANT_TYPES . access_service_kyc ;
772- accessList = getAccessListForModule (
777+ const defaultAccessList = getAccessListForModule (
773778 TokenModule . APP_AUTH ,
774779 SERVICE_TYPES . CAVACH_API ,
775780 ) ;
781+ accessList = evaluateAccessPolicy (
782+ defaultAccessList ,
783+ SERVICE_TYPES . CAVACH_API ,
784+ [ ] ,
785+ ) ;
776786 break ;
777787 }
778788 case SERVICE_TYPES . QUEST : {
779789 grant_type = GRANT_TYPES . access_service_quest ;
780- accessList = getAccessListForModule (
790+ const defaultAccessList = getAccessListForModule (
781791 TokenModule . APP_AUTH ,
782792 SERVICE_TYPES . QUEST ,
783793 ) ;
794+ accessList = evaluateAccessPolicy (
795+ defaultAccessList ,
796+ SERVICE_TYPES . QUEST ,
797+ [ ] ,
798+ ) ;
784799 break ;
785800 }
786801 default : {
@@ -865,8 +880,13 @@ export class AppAuthService {
865880 grantType : string ,
866881 appId : string ,
867882 user ,
883+ session ?,
868884 ) : Promise < { access_token ; expiresIn ; tokenType } > {
869- const sessionId = `${ appId } _${ Context . idDashboard } ` ;
885+ const context = Context . idDashboard ;
886+ let sessionId = `${ appId } _${ context } _${ session . userId } ` ;
887+ if ( session && session . tenantId ) {
888+ sessionId = `${ sessionId } _tenant` ;
889+ }
870890 const savedSession = await redisClient . get ( sessionId ) ;
871891 switch ( grantType ) {
872892 case GRANT_TYPES . access_service_ssi :
@@ -924,10 +944,16 @@ export class AppAuthService {
924944 'Invalid grant type for this service ' + appId ,
925945 ] ) ;
926946 }
927- accessList = getAccessListForModule (
947+ const defaultAccessList = getAccessListForModule (
928948 TokenModule . DASHBOARD ,
929949 SERVICE_TYPES . SSI_API ,
930950 ) ;
951+ accessList = evaluateAccessPolicy (
952+ defaultAccessList ,
953+ SERVICE_TYPES . SSI_API ,
954+ user . accessList ,
955+ context ,
956+ ) ;
931957 break ;
932958 }
933959 case SERVICE_TYPES . CAVACH_API : {
@@ -939,10 +965,16 @@ export class AppAuthService {
939965 'Invalid grant type for this service ' + appId ,
940966 ] ) ;
941967 }
942- accessList = getAccessListForModule (
968+ const defaultAccessList = getAccessListForModule (
943969 TokenModule . DASHBOARD ,
944970 SERVICE_TYPES . CAVACH_API ,
945971 ) ;
972+ accessList = evaluateAccessPolicy (
973+ defaultAccessList ,
974+ SERVICE_TYPES . CAVACH_API ,
975+ user . accessList ,
976+ context ,
977+ ) ;
946978 break ;
947979 }
948980 case SERVICE_TYPES . QUEST : {
@@ -951,10 +983,16 @@ export class AppAuthService {
951983 'Invalid grant type for this service ' + appId ,
952984 ] ) ;
953985 }
954- accessList = getAccessListForModule (
986+ const defaultAccessList = getAccessListForModule (
955987 TokenModule . DASHBOARD ,
956988 SERVICE_TYPES . QUEST ,
957989 ) ;
990+ accessList = evaluateAccessPolicy (
991+ defaultAccessList ,
992+ SERVICE_TYPES . QUEST ,
993+ user . accessList ,
994+ context ,
995+ ) ;
958996 break ;
959997 }
960998 default : {
0 commit comments