|
|
@@ -1,8 +1,9 @@
|
|
|
import RoleUtils from '~/services/rights/roleUtils'
|
|
|
import {AbilitiesType} from '~/types/interfaces'
|
|
|
-import YamlDenormalizer from "~/services/data/serializer/denormalizer/yamlDenormalizer";
|
|
|
import {MongoAbility} from "@casl/ability/dist/types/Ability";
|
|
|
import {ABILITIES} from "~/types/enum/enums";
|
|
|
+import YamlEncoder from "~/services/encoder/yamlEncoder";
|
|
|
+import {read} from "yaml-import";
|
|
|
|
|
|
interface Condition {
|
|
|
function: string
|
|
|
@@ -19,7 +20,7 @@ class AbilityBuilder {
|
|
|
private readonly accessProfile: any
|
|
|
private readonly organizationProfile: any
|
|
|
|
|
|
- private readonly configDir = './config/abilities/config.yaml'
|
|
|
+ private readonly configFile = './config/abilities/config.yaml'
|
|
|
|
|
|
private abilities: Array<AbilitiesType> = []
|
|
|
|
|
|
@@ -96,7 +97,11 @@ class AbilityBuilder {
|
|
|
buildAbilitiesFromConfig() {
|
|
|
const abilitiesByConfig: Array<AbilitiesType> = []
|
|
|
|
|
|
- const doc = YamlDenormalizer.denormalize({path: this.configDir})
|
|
|
+ const doc = YamlEncoder.decode(read(this.configFile))
|
|
|
+ if (doc === null) {
|
|
|
+ throw new Error('Error while reading abilities config file')
|
|
|
+ }
|
|
|
+
|
|
|
const fromConfig = doc.abilities
|
|
|
|
|
|
useEach(fromConfig, (ability: { action: ABILITIES, conditions: Array<Condition> }, subject: string) => {
|