Skip to content

Commit 94b31cd

Browse files
committed
update the casl ability type and acl check hook
1 parent bdf6907 commit 94b31cd

4 files changed

Lines changed: 17 additions & 11 deletions

File tree

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": "2.0.4-rc.1",
3+
"version": "2.0.4-rc.2",
44
"keywords": [
55
"codegen",
66
"openapi",

src/generators/generate/generateAcl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export function generateAcl({ resolver, data, tag }: GenerateTypeParams) {
1515
const caslAbilityTupleImport: Import = {
1616
bindings: [
1717
CASL_ABILITY_BINDING.abilityTuple,
18-
...(hasAdditionalAbilityImports ? [CASL_ABILITY_BINDING.subject] : []),
18+
...(hasAdditionalAbilityImports ? [CASL_ABILITY_BINDING.forcedSubject, CASL_ABILITY_BINDING.subject] : []),
1919
],
2020
from: CASL_ABILITY_IMPORT.from,
2121
};
Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
import { useCallback } from "react";
2-
{{! Ability context import }}
3-
{{{genImport abilityContextImport}}}
1+
{{! CASL ability import }}
2+
{{{genImport abilityTupleImport}}}
43
{{! Error handling import }}
54
{{{genImport errorHandlingImport}}}
5+
{{! Ability context import }}
6+
{{{genImport abilityContextImport}}}
7+
import { useCallback } from "react";
8+
69
{{! App abilities import }}
710
{{{genImport appAbilitiesImport}}}
811

@@ -13,11 +16,14 @@ interface UseAclCheckProps {
1316
export function {{aclCheckHook}}({ errorHandler }: UseAclCheckProps = {}) {
1417
const ability = {{abilityContext}}.useAbility{{#if hasGenericAppAbilities}}<{{appAbilities}}>{{/if}}();
1518

16-
const checkAcl = useCallback((appAbility: {{appAbilities}}) => {
17-
if (!ability.can(...appAbility)) {
18-
(errorHandler ?? {{sharedErrorHandler}}).rethrowError(new Error("ACL check failed"));
19-
}
20-
}, [ability, errorHandler]);
19+
const checkAcl = useCallback(
20+
(appAbility: {{appAbilities}}) => {
21+
if (!ability.can(...(appAbility as {{abilityTuple}}))) {
22+
(errorHandler ?? {{sharedErrorHandler}}).rethrowError(new Error("ACL check failed"));
23+
}
24+
},
25+
[ability, errorHandler],
26+
);
2127

2228
return { checkAcl };
2329
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{abilityTuple}}<"{{ablityAction endpoint}}", "{{ablitySubject endpoint}}">
1+
{{abilityTuple}}<"{{ablityAction endpoint}}", {{{union (abilitySubjectTypes endpoint)}}}>

0 commit comments

Comments
 (0)