mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
fix: link social, admin delete account,update
This commit is contained in:
+1
-13
@@ -134,7 +134,7 @@ export const auth = betterAuth({
|
||||
trustedProviders: [
|
||||
"credential",
|
||||
...getOAuthProviders().map((p) => p.id),
|
||||
...oidcProviders.map((p) => p.id),
|
||||
...oidcProviders.map((p) => p.id)
|
||||
],
|
||||
allowDifferentEmails: true,
|
||||
},
|
||||
@@ -338,18 +338,6 @@ export const auth = betterAuth({
|
||||
}
|
||||
},
|
||||
},
|
||||
delete: {
|
||||
before: async (account) => {
|
||||
const provider = SUPPORTED_PROVIDERS.find(
|
||||
(p) => p.id === account.providerId,
|
||||
);
|
||||
if (provider && provider.allowUnlinking === false) {
|
||||
throw new APIError("FORBIDDEN", {
|
||||
message: "Unlinking is disabled for this provider.",
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
user: {
|
||||
update: {
|
||||
|
||||
@@ -85,7 +85,8 @@ export function getOAuthProviders(): OAuthProvider[] {
|
||||
const client = process.env[`AUTH_SOCIAL_${prefix}_CLIENT`];
|
||||
if (!client) return;
|
||||
|
||||
const providerId = prefix.toLowerCase();
|
||||
const providerId =
|
||||
prefix.toLowerCase() === "x" ? "twitter" : prefix.toLowerCase();
|
||||
|
||||
const envTitle = process.env[`AUTH_SOCIAL_${prefix}_TITLE`];
|
||||
const envDesc = process.env[`AUTH_SOCIAL_${prefix}_DESC`];
|
||||
|
||||
+42
-46
@@ -1,76 +1,72 @@
|
||||
import {createAccessControl} from "better-auth/plugins/access";
|
||||
import {defaultStatements, adminAc} from "better-auth/plugins/admin/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
|
||||
defaultStatements as orgDefaultStatements,
|
||||
adminAc as orgAdminAc,
|
||||
ownerAc as orgOwnerAc,
|
||||
memberAc as orgMemberAc,
|
||||
} from "better-auth/plugins/organization/access";
|
||||
|
||||
const statement = {
|
||||
...defaultStatements,
|
||||
...orgDefaultStatements,
|
||||
project: ["create", "list", "update", "delete"],
|
||||
database: ["create", "list", "update", "delete", "backup"],
|
||||
agent: ["create", "list", "update", "delete"],
|
||||
|
||||
...defaultStatements,
|
||||
...orgDefaultStatements,
|
||||
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,
|
||||
project: ["create", "list", "update", "delete"],
|
||||
database: ["create", "list", "update", "delete"],
|
||||
agent: ["create", "list", "update", "delete"],
|
||||
...adminAc.statements,
|
||||
...orgMemberAc.statements,
|
||||
...orgAdminAc.statements,
|
||||
...orgOwnerAc.statements,
|
||||
});
|
||||
|
||||
const admin = ac.newRole({
|
||||
project: ["create", "list", "update", "delete"],
|
||||
database: ["create", "list", "update", "delete"],
|
||||
agent: ["create", "list", "update", "delete"],
|
||||
...adminAc.statements,
|
||||
...orgMemberAc.statements,
|
||||
...orgAdminAc.statements,
|
||||
project: ["create", "list", "update", "delete"],
|
||||
database: ["create", "list", "update", "delete"],
|
||||
agent: ["create", "list", "update", "delete"],
|
||||
...adminAc.statements,
|
||||
...orgMemberAc.statements,
|
||||
...orgAdminAc.statements,
|
||||
});
|
||||
|
||||
const user = ac.newRole({
|
||||
project: [],
|
||||
database: [],
|
||||
agent: [],
|
||||
project: [],
|
||||
database: [],
|
||||
agent: [],
|
||||
});
|
||||
|
||||
const pending = ac.newRole({
|
||||
project: [],
|
||||
database: [],
|
||||
agent: [],
|
||||
project: [],
|
||||
database: [],
|
||||
agent: [],
|
||||
});
|
||||
|
||||
//org
|
||||
const orgMember = ac.newRole({
|
||||
project: ["list"],
|
||||
database: ["list"],
|
||||
agent: ["list"],
|
||||
...orgMemberAc.statements,
|
||||
project: ["list"],
|
||||
database: ["list"],
|
||||
agent: ["list"],
|
||||
...orgMemberAc.statements,
|
||||
});
|
||||
|
||||
const orgAdmin = ac.newRole({
|
||||
project: ["create", "update"],
|
||||
...orgMemberAc.statements,
|
||||
...orgAdminAc.statements,
|
||||
project: ["create", "update"],
|
||||
...orgMemberAc.statements,
|
||||
...orgAdminAc.statements,
|
||||
});
|
||||
|
||||
const orgOwner = ac.newRole({
|
||||
project: ["create", "update", "delete"],
|
||||
...orgMemberAc.statements,
|
||||
...orgAdminAc.statements,
|
||||
...orgOwnerAc.statements,
|
||||
|
||||
project: ["create", "update", "delete"],
|
||||
...orgMemberAc.statements,
|
||||
...orgAdminAc.statements,
|
||||
...orgOwnerAc.statements,
|
||||
});
|
||||
|
||||
|
||||
export {ac, admin, superadmin, user, pending, orgAdmin, orgMember, orgOwner};
|
||||
export { ac, admin, superadmin, user, pending, orgAdmin, orgMember, orgOwner };
|
||||
|
||||
Reference in New Issue
Block a user