@zpg6-test-pkgs/better-auth
Version:
The most comprehensive authentication library for TypeScript.
26 lines (22 loc) • 850 B
JavaScript
;
const plugins_organization_access_index = require('../plugins/organization/access/index.cjs');
const hasPermission = (input) => {
if (!input.permissions && !input.permission) {
return false;
}
const roles = input.role.split(",");
const acRoles = input.options.roles || plugins_organization_access_index.defaultRoles;
const creatorRole = input.options.creatorRole || "owner";
const isCreator = roles.includes(creatorRole);
const allowCreatorsAllPermissions = input.allowCreatorAllPermissions || false;
if (isCreator && allowCreatorsAllPermissions) return true;
for (const role of roles) {
const _role = acRoles[role];
const result = _role?.authorize(input.permissions ?? input.permission);
if (result?.success) {
return true;
}
}
return false;
};
exports.hasPermission = hasPermission;