* Converts permissions JSON to an array of PermissionRule objects * @param data The parsed permissions data * @param source The source of these rules * @returns Array of PermissionRule objects
( data: SettingsJson | null, source: PermissionRuleSource, )
| 89 | * @returns Array of PermissionRule objects |
| 90 | */ |
| 91 | function settingsJsonToRules( |
| 92 | data: SettingsJson | null, |
| 93 | source: PermissionRuleSource, |
| 94 | ): PermissionRule[] { |
| 95 | if (!data || !data.permissions) { |
| 96 | return [] |
| 97 | } |
| 98 | |
| 99 | const { permissions } = data |
| 100 | const rules: PermissionRule[] = [] |
| 101 | for (const behavior of SUPPORTED_RULE_BEHAVIORS) { |
| 102 | const behaviorArray = permissions[behavior] |
| 103 | if (behaviorArray) { |
| 104 | for (const ruleString of behaviorArray) { |
| 105 | rules.push({ |
| 106 | source, |
| 107 | ruleBehavior: behavior, |
| 108 | ruleValue: permissionRuleValueFromString(ruleString), |
| 109 | }) |
| 110 | } |
| 111 | } |
| 112 | } |
| 113 | return rules |
| 114 | } |
| 115 | |
| 116 | /** |
| 117 | * Loads all permission rules from all relevant sources (managed and project settings) |
no test coverage detected