Skip to content

Instantly share code, notes, and snippets.

@ykshinde21
Created March 26, 2024 14:42
Show Gist options
  • Save ykshinde21/3e256b1321d2cda25a5280d9e7e159b4 to your computer and use it in GitHub Desktop.
Save ykshinde21/3e256b1321d2cda25a5280d9e7e159b4 to your computer and use it in GitHub Desktop.
import {
FgaAccountPrefix,
FgaGroupUserAdmin,
FgaGroupUserBranchBlocking,
FgaGroupUserReporting,
FgaLocationBranchPrefix,
FgaLocationCorporatePrefix,
FgaLocationDivisionPrefix,
FgaLocationRegionPrefix,
FgaRelations,
} from './fgaObjects';
export enum FgaAuthorizationType {
'corporateSalesReader',
'corporateSalesWriter',
'regionSalesReader',
'regionSalesWriter',
'divisionSalesReader',
'divisionSalesWriter',
'branchSalesReader',
'branchSalesWriter',
'accountSalesReader',
'accountSalesWriter',
'accountPaymentWriter',
'groupUserAdmin',
'groupUserReporting',
'groupUserBranchBlocking',
}
export const FgaAuthorizationObject = {
[FgaAuthorizationType.corporateSalesReader]: {
relation: FgaRelations.SalesReader,
object: FgaLocationCorporatePrefix,
},
[FgaAuthorizationType.corporateSalesWriter]: {
relation: FgaRelations.SalesWriter,
object: FgaLocationCorporatePrefix,
},
[FgaAuthorizationType.regionSalesReader]: {
relation: FgaRelations.SalesReader,
object: `${FgaLocationRegionPrefix}{id}`,
},
[FgaAuthorizationType.regionSalesWriter]: {
relation: FgaRelations.SalesWriter,
object: `${FgaLocationRegionPrefix}{id}`,
},
[FgaAuthorizationType.divisionSalesReader]: {
relation: FgaRelations.SalesReader,
object: `${FgaLocationDivisionPrefix}{id}`,
},
[FgaAuthorizationType.divisionSalesWriter]: {
relation: FgaRelations.SalesWriter,
object: `${FgaLocationDivisionPrefix}{id}`,
},
[FgaAuthorizationType.branchSalesReader]: {
relation: FgaRelations.SalesReader,
object: `${FgaLocationBranchPrefix}{id}`,
},
[FgaAuthorizationType.branchSalesWriter]: {
relation: FgaRelations.SalesWriter,
object: `${FgaLocationBranchPrefix}{id}`,
},
[FgaAuthorizationType.accountSalesReader]: {
relation: FgaRelations.SalesReader,
object: `${FgaAccountPrefix}{id}`,
},
[FgaAuthorizationType.accountSalesWriter]: {
relation: FgaRelations.SalesWriter,
object: `${FgaAccountPrefix}{id}`,
},
[FgaAuthorizationType.accountPaymentWriter]: {
relation: FgaRelations.PaymentWriter,
object: `${FgaAccountPrefix}{id}`,
},
[FgaAuthorizationType.groupUserAdmin]: {
relation: FgaRelations.Member,
object: FgaGroupUserAdmin,
},
[FgaAuthorizationType.groupUserReporting]: {
relation: FgaRelations.Member,
object: FgaGroupUserReporting,
},
[FgaAuthorizationType.groupUserBranchBlocking]: {
relation: FgaRelations.Member,
object: FgaGroupUserBranchBlocking,
},
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment