Skip to content

Commit 40c155f

Browse files
committed
Acl check type fix
1 parent f80e102 commit 40c155f

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@povio/openapi-codegen-cli",
3-
"version": "0.13.6",
3+
"version": "0.13.7",
44
"main": "./dist/index.js",
55
"bin": {
66
"openapi-codegen": "./dist/sh.js"

src/generators/generate/generateAclCheck.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ACL_APP_ABILITIES, ACL_CHECK_HOOK } from "../const/acl.const";
1+
import { ACL_APP_ABILITIES, ACL_CHECK_HOOK, CASL_ABILITY_BINDING, CASL_ABILITY_IMPORT } from "../const/acl.const";
22
import { ABILITY_CONTEXT, ABILITY_CONTEXT_IMPORT, ERROR_HANDLERS, ERROR_HANDLING_IMPORT } from "../const/deps.const";
33
import { SchemaResolver } from "../core/SchemaResolver.class";
44
import { getAppAbilitiesImportPath } from "../utils/generate/generate.utils";
@@ -12,9 +12,13 @@ export function generateAclCheck(resolver: SchemaResolver) {
1212
...ABILITY_CONTEXT_IMPORT,
1313
from: resolver.options.abilityContextImportPath,
1414
},
15+
caslAbilityTupleImport: {
16+
...CASL_ABILITY_IMPORT,
17+
bindings: [CASL_ABILITY_BINDING.abilityTuple],
18+
},
1519
appAbilitiesImport: {
1620
bindings: [ACL_APP_ABILITIES],
17-
from: getAppAbilitiesImportPath(),
21+
from: getAppAbilitiesImportPath(resolver.options),
1822
},
1923
errorHandlingImport: {
2024
...ERROR_HANDLING_IMPORT,

src/generators/templates/acl-check.hbs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { useCallback } from "react";
55
{{{genImport errorHandlingImport}}}
66
{{! App abilities import }}
77
{{{genImport appAbilitiesImport}}}
8+
{{! Casl ability tuple import }}
9+
{{{genImport caslAbilityTupleImport}}}
810

911
interface UseAclCheckProps {
1012
errorHandler?: {{errorHandler}}<never>;
@@ -14,7 +16,7 @@ export function {{aclCheckHook}}({ errorHandler }: UseAclCheckProps = {}) {
1416
const ability = {{abilityContext}}.useAbility();
1517

1618
const checkAcl = useCallback((appAbility: {{appAbilities}}) => {
17-
if (!ability.can(...appAbility)) {
19+
if (!ability.can(...(appAbility as AbilityTuple))) {
1820
(errorHandler ?? {{sharedErrorHandler}}).rethrowError(new Error("ACL check failed"));
1921
}
2022
}, [ability, errorHandler]);

src/generators/utils/generate/generate.utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,6 @@ export function getZodExtendedImportPath(options: GenerateOptions) {
8282
return `${getImportPath(options)}${ZOD_EXTENDED_FILE.fileName}`;
8383
}
8484

85-
export function getAppAbilitiesImportPath() {
86-
return `./${ACL_APP_ABILITY_FILE.fileName}`;
85+
export function getAppAbilitiesImportPath(options: GenerateOptions) {
86+
return `${getImportPath(options)}${ACL_APP_ABILITY_FILE.fileName}`;
8787
}

0 commit comments

Comments
 (0)