Refactoring.

This commit is contained in:
charlesgauthereau
2025-11-01 19:38:05 +01:00
parent 84dab35f4b
commit 5251e01011
60 changed files with 1804 additions and 340 deletions
+18 -7
View File
@@ -1,6 +1,11 @@
import { createAccessControl } from "better-auth/plugins/access";
import { defaultStatements, adminAc } from "better-auth/plugins/admin/access";
import { defaultStatements as orgDefaultStatements, adminAc as orgAdminAc, ownerAc as orgOwnerAc, memberAc as orgMemberAc } from "better-auth/plugins/organization/access";
import {createAccessControl} from "better-auth/plugins/access";
import {defaultStatements, adminAc} from "better-auth/plugins/admin/access";
import {
defaultStatements as orgDefaultStatements,
adminAc as orgAdminAc,
ownerAc as orgOwnerAc,
memberAc as orgMemberAc
} from "better-auth/plugins/organization/access";
const statement = {
...defaultStatements,
@@ -8,20 +13,20 @@ const statement = {
project: ["create", "list", "update", "delete"],
database: ["create", "list", "update", "delete", "backup"],
agent: ["create", "list", "update", "delete"],
} as const;
const ac = createAccessControl(statement);
const superadmin = ac.newRole({
project: ["create", "list", "update", "delete"],
database: ["create", "list", "update", "delete"],
agent: ["create", "list", "update", "delete"],
...adminAc.statements,
...orgMemberAc.statements,
...orgAdminAc.statements,
...orgOwnerAc.statements,
...orgMemberAc.statements,
});
const admin = ac.newRole({
@@ -29,6 +34,8 @@ const admin = ac.newRole({
database: ["create", "list", "update", "delete"],
agent: ["create", "list", "update", "delete"],
...adminAc.statements,
...orgMemberAc.statements,
...orgAdminAc.statements,
});
const user = ac.newRole({
@@ -48,18 +55,22 @@ const orgMember = ac.newRole({
project: ["list"],
database: ["list"],
agent: ["list"],
...orgMemberAc.statements,
});
const orgAdmin = ac.newRole({
project: ["create", "update"],
...orgMemberAc.statements,
...orgAdminAc.statements,
});
const orgOwner = ac.newRole({
project: ["create", "update", "delete"],
...orgMemberAc.statements,
...orgAdminAc.statements,
...orgOwnerAc.statements,
...orgMemberAc.statements
});
export { ac, admin, superadmin, user, pending, orgAdmin, orgMember, orgOwner };
export {ac, admin, superadmin, user, pending, orgAdmin, orgMember, orgOwner};