Edit: /tmp/tsx-0/17887-4c05e22c379a440a0d3aec00f58d933a0fdb22dc (38941B)
{"code":"__filename=\"/opt/canhelp/node_modules/better-auth/dist/plugins/organization/routes/crud-access-control.mjs\";(()=>{\nvar __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:true}):target,mod));var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var crud_access_control_exports={};__export(crud_access_control_exports,{createOrgRole:()=>createOrgRole,deleteOrgRole:()=>deleteOrgRole,getOrgRole:()=>getOrgRole,listOrgRoles:()=>listOrgRoles,updateOrgRole:()=>updateOrgRole});module.exports=__toCommonJS(crud_access_control_exports);var import_to_zod=require(\"../../../db/to-zod.mjs\");var import_db=require(\"../../../db/index.mjs\");var import_error_codes=require(\"../error-codes.mjs\");var import_call=require(\"../call.mjs\");var import_has_permission=require(\"../has-permission.mjs\");var import_error=require(\"@better-auth/core/error\");var import_api=require(\"@better-auth/core/api\");var z=__toESM(require(\"zod\"));const normalizeRoleName=__name(role=>role.toLowerCase(),\"normalizeRoleName\");const DEFAULT_MAXIMUM_ROLES_PER_ORGANIZATION=Number.POSITIVE_INFINITY;const getAdditionalFields=__name((options,shouldBePartial=false)=>{const additionalFields=options?.schema?.organizationRole?.additionalFields||{};if(shouldBePartial)for(const key in additionalFields)additionalFields[key].required=false;return{additionalFieldsSchema:(0,import_to_zod.toZodSchema)({fields:additionalFields,isClientSide:true}),$AdditionalFields:{},$ReturnAdditionalFields:{}}},\"getAdditionalFields\");const baseCreateOrgRoleSchema=z.object({organizationId:z.string().optional().meta({description:\"The id of the organization to create the role in. If not provided, the user's active organization will be used.\"}),role:z.string().meta({description:\"The name of the role to create\"}),permission:z.record(z.string(),z.array(z.string())).meta({description:\"The permission to assign to the role\"})});const createOrgRole=__name(options=>{const{additionalFieldsSchema,$AdditionalFields,$ReturnAdditionalFields}=getAdditionalFields(options,false);return(0,import_api.createAuthEndpoint)(\"/organization/create-role\",{method:\"POST\",body:baseCreateOrgRoleSchema.safeExtend({additionalFields:z.object({...additionalFieldsSchema.shape}).optional()}),metadata:{$Infer:{body:{}}},requireHeaders:true,use:[import_call.orgSessionMiddleware]},async ctx=>{const{session,user}=ctx.context.session;let roleName=ctx.body.role;const permission=ctx.body.permission;const additionalFields=ctx.body.additionalFields;const ac=options.ac;if(!ac){ctx.context.logger.error(`[Dynamic Access Control] The organization plugin is missing a pre-defined ac instance.`,`\nPlease refer to the documentation here: https://better-auth.com/docs/plugins/organization#dynamic-access-control`);throw import_error.APIError.from(\"NOT_IMPLEMENTED\",import_error_codes.ORGANIZATION_ERROR_CODES.MISSING_AC_INSTANCE)}const organizationId=ctx.body.organizationId??session.activeOrganizationId;if(!organizationId){ctx.context.logger.error(`[Dynamic Access Control] The session is missing an active organization id to create a role. Either set an active org id, or pass an organizationId in the request body.`);throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_MUST_BE_IN_AN_ORGANIZATION_TO_CREATE_A_ROLE)}roleName=normalizeRoleName(roleName);await checkIfRoleNameIsTakenByPreDefinedRole({role:roleName,organizationId,options,ctx});const member=await ctx.context.adapter.findOne({model:\"member\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},{field:\"userId\",value:user.id,operator:\"eq\",connector:\"AND\"}]});if(!member){ctx.context.logger.error(`[Dynamic Access Control] The user is not a member of the organization to create a role.`,{userId:user.id,organizationId});throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION)}if(!await(0,import_has_permission.hasPermission)({options,organizationId,permissions:{ac:[\"create\"]},role:member.role},ctx)){ctx.context.logger.error(`[Dynamic Access Control] The user is not permitted to create a role. If this is unexpected, please make sure the role associated to that member has the \"ac\" resource with the \"create\" permission.`,{userId:user.id,organizationId,role:member.role});throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_CREATE_A_ROLE)}const maximumRolesPerOrganization=typeof options.dynamicAccessControl?.maximumRolesPerOrganization===\"function\"?await options.dynamicAccessControl.maximumRolesPerOrganization(organizationId):options.dynamicAccessControl?.maximumRolesPerOrganization??DEFAULT_MAXIMUM_ROLES_PER_ORGANIZATION;const rolesInDB=await ctx.context.adapter.count({model:\"organizationRole\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"}]});if(rolesInDB>=maximumRolesPerOrganization){ctx.context.logger.error(`[Dynamic Access Control] Failed to create a new role, the organization has too many roles. Maximum allowed roles is ${maximumRolesPerOrganization}.`,{organizationId,maximumRolesPerOrganization,rolesInDB});throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.TOO_MANY_ROLES)}await checkForInvalidResources({ac,ctx,permission});await checkIfMemberHasPermission({ctx,member,options,organizationId,permissionRequired:permission,user,action:\"create\"});await checkIfRoleNameIsTakenByRoleInDB({ctx,organizationId,role:roleName});const newRole=ac.newRole(permission);const data={...await ctx.context.adapter.create({model:\"organizationRole\",data:{createdAt:new Date,organizationId,permission:JSON.stringify(permission),role:roleName,...additionalFields}}),permission};return ctx.json({success:true,roleData:data,statements:newRole.statements})})},\"createOrgRole\");const deleteOrgRoleBodySchema=z.object({organizationId:z.string().optional().meta({description:\"The id of the organization to create the role in. If not provided, the user's active organization will be used.\"})}).and(z.union([z.object({roleName:z.string().nonempty().meta({description:\"The name of the role to delete\"})}),z.object({roleId:z.string().nonempty().meta({description:\"The id of the role to delete\"})})]));const deleteOrgRole=__name(options=>{return(0,import_api.createAuthEndpoint)(\"/organization/delete-role\",{method:\"POST\",body:deleteOrgRoleBodySchema,requireHeaders:true,use:[import_call.orgSessionMiddleware],metadata:{$Infer:{body:{}}}},async ctx=>{const{session,user}=ctx.context.session;const organizationId=ctx.body.organizationId??session.activeOrganizationId;if(!organizationId){ctx.context.logger.error(`[Dynamic Access Control] The session is missing an active organization id to delete a role. Either set an active org id, or pass an organizationId in the request body.`);throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION)}const member=await ctx.context.adapter.findOne({model:\"member\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},{field:\"userId\",value:user.id,operator:\"eq\",connector:\"AND\"}]});if(!member){ctx.context.logger.error(`[Dynamic Access Control] The user is not a member of the organization to delete a role.`,{userId:user.id,organizationId});throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION)}if(!await(0,import_has_permission.hasPermission)({options,organizationId,permissions:{ac:[\"delete\"]},role:member.role},ctx)){ctx.context.logger.error(`[Dynamic Access Control] The user is not permitted to delete a role. If this is unexpected, please make sure the role associated to that member has the \"ac\" resource with the \"delete\" permission.`,{userId:user.id,organizationId,role:member.role});throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_DELETE_A_ROLE)}if(ctx.body.roleName){const roleName=ctx.body.roleName;const defaultRoles=options.roles?Object.keys(options.roles):[\"owner\",\"admin\",\"member\"];if(defaultRoles.includes(roleName)){ctx.context.logger.error(`[Dynamic Access Control] Cannot delete a pre-defined role.`,{roleName,organizationId,defaultRoles});throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.CANNOT_DELETE_A_PRE_DEFINED_ROLE)}}let condition;if(ctx.body.roleName)condition={field:\"role\",value:ctx.body.roleName,operator:\"eq\",connector:\"AND\"};else if(ctx.body.roleId)condition={field:\"id\",value:ctx.body.roleId,operator:\"eq\",connector:\"AND\"};else{ctx.context.logger.error(`[Dynamic Access Control] The role name/id is not provided in the request body.`);throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.ROLE_NOT_FOUND)}const existingRoleInDB=await ctx.context.adapter.findOne({model:\"organizationRole\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},condition]});if(!existingRoleInDB){ctx.context.logger.error(`[Dynamic Access Control] The role name/id does not exist in the database.`,{...\"roleName\"in ctx.body?{roleName:ctx.body.roleName}:{roleId:ctx.body.roleId},organizationId});throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.ROLE_NOT_FOUND)}existingRoleInDB.permission=JSON.parse(existingRoleInDB.permission);const roleToDelete=existingRoleInDB.role;if((await ctx.context.adapter.findMany({model:\"member\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},{field:\"role\",value:roleToDelete,operator:\"contains\"}]})).find(member2=>{return member2.role.split(\",\").map(r=>r.trim()).includes(roleToDelete)})){ctx.context.logger.error(`[Dynamic Access Control] Cannot delete a role that is assigned to members.`,{role:existingRoleInDB.role,organizationId});throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.ROLE_IS_ASSIGNED_TO_MEMBERS)}await ctx.context.adapter.delete({model:\"organizationRole\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},condition]});return ctx.json({success:true})})},\"deleteOrgRole\");const listOrgRolesQuerySchema=z.object({organizationId:z.string().optional().meta({description:\"The id of the organization to list roles for. If not provided, the user's active organization will be used.\"})}).optional();const listOrgRoles=__name(options=>{const{$ReturnAdditionalFields}=getAdditionalFields(options,false);return(0,import_api.createAuthEndpoint)(\"/organization/list-roles\",{method:\"GET\",requireHeaders:true,use:[import_call.orgSessionMiddleware],query:listOrgRolesQuerySchema},async ctx=>{const{session,user}=ctx.context.session;const organizationId=ctx.query?.organizationId??session.activeOrganizationId;if(!organizationId){ctx.context.logger.error(`[Dynamic Access Control] The session is missing an active organization id to list roles. Either set an active org id, or pass an organizationId in the request query.`);throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION)}const member=await ctx.context.adapter.findOne({model:\"member\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},{field:\"userId\",value:user.id,operator:\"eq\",connector:\"AND\"}]});if(!member){ctx.context.logger.error(`[Dynamic Access Control] The user is not a member of the organization to list roles.`,{userId:user.id,organizationId});throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION)}if(!await(0,import_has_permission.hasPermission)({options,organizationId,permissions:{ac:[\"read\"]},role:member.role},ctx)){ctx.context.logger.error(`[Dynamic Access Control] The user is not permitted to list roles.`,{userId:user.id,organizationId,role:member.role});throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_LIST_A_ROLE)}let roles=await ctx.context.adapter.findMany({model:\"organizationRole\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"}]});roles=roles.map(x=>({...x,permission:JSON.parse(x.permission)}));return ctx.json(roles)})},\"listOrgRoles\");const getOrgRoleQuerySchema=z.object({organizationId:z.string().optional().meta({description:\"The id of the organization to read a role for. If not provided, the user's active organization will be used.\"})}).and(z.union([z.object({roleName:z.string().nonempty().meta({description:\"The name of the role to read\"})}),z.object({roleId:z.string().nonempty().meta({description:\"The id of the role to read\"})})])).optional();const getOrgRole=__name(options=>{const{$ReturnAdditionalFields}=getAdditionalFields(options,false);return(0,import_api.createAuthEndpoint)(\"/organization/get-role\",{method:\"GET\",requireHeaders:true,use:[import_call.orgSessionMiddleware],query:getOrgRoleQuerySchema,metadata:{$Infer:{query:{}}}},async ctx=>{const{session,user}=ctx.context.session;const organizationId=ctx.query?.organizationId??session.activeOrganizationId;if(!organizationId){ctx.context.logger.error(`[Dynamic Access Control] The session is missing an active organization id to read a role. Either set an active org id, or pass an organizationId in the request query.`);throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION)}const member=await ctx.context.adapter.findOne({model:\"member\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},{field:\"userId\",value:user.id,operator:\"eq\",connector:\"AND\"}]});if(!member){ctx.context.logger.error(`[Dynamic Access Control] The user is not a member of the organization to read a role.`,{userId:user.id,organizationId});throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION)}if(!await(0,import_has_permission.hasPermission)({options,organizationId,permissions:{ac:[\"read\"]},role:member.role},ctx)){ctx.context.logger.error(`[Dynamic Access Control] The user is not permitted to read a role.`,{userId:user.id,organizationId,role:member.role});throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_READ_A_ROLE)}let condition;if(ctx.query.roleName)condition={field:\"role\",value:ctx.query.roleName,operator:\"eq\",connector:\"AND\"};else if(ctx.query.roleId)condition={field:\"id\",value:ctx.query.roleId,operator:\"eq\",connector:\"AND\"};else{ctx.context.logger.error(`[Dynamic Access Control] The role name/id is not provided in the request query.`);throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.ROLE_NOT_FOUND)}const role=await ctx.context.adapter.findOne({model:\"organizationRole\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},condition]});if(!role){ctx.context.logger.error(`[Dynamic Access Control] The role name/id does not exist in the database.`,{...\"roleName\"in ctx.query?{roleName:ctx.query.roleName}:{roleId:ctx.query.roleId},organizationId});throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.ROLE_NOT_FOUND)}role.permission=JSON.parse(role.permission);return ctx.json(role)})},\"getOrgRole\");const roleNameOrIdSchema=z.union([z.object({roleName:z.string().nonempty().meta({description:\"The name of the role to update\"})}),z.object({roleId:z.string().nonempty().meta({description:\"The id of the role to update\"})})]);const updateOrgRole=__name(options=>{const{additionalFieldsSchema,$AdditionalFields,$ReturnAdditionalFields}=getAdditionalFields(options,true);return(0,import_api.createAuthEndpoint)(\"/organization/update-role\",{method:\"POST\",body:z.object({organizationId:z.string().optional().meta({description:\"The id of the organization to update the role in. If not provided, the user's active organization will be used.\"}),data:z.object({permission:z.record(z.string(),z.array(z.string())).optional().meta({description:\"The permission to update the role with\"}),roleName:z.string().optional().meta({description:\"The name of the role to update\"}),...additionalFieldsSchema.shape})}).and(roleNameOrIdSchema),metadata:{$Infer:{body:{}}},requireHeaders:true,use:[import_call.orgSessionMiddleware]},async ctx=>{const{session,user}=ctx.context.session;const ac=options.ac;if(!ac){ctx.context.logger.error(`[Dynamic Access Control] The organization plugin is missing a pre-defined ac instance.`,`\nPlease refer to the documentation here: https://better-auth.com/docs/plugins/organization#dynamic-access-control`);throw import_error.APIError.from(\"NOT_IMPLEMENTED\",import_error_codes.ORGANIZATION_ERROR_CODES.MISSING_AC_INSTANCE)}const organizationId=ctx.body.organizationId??session.activeOrganizationId;if(!organizationId){ctx.context.logger.error(`[Dynamic Access Control] The session is missing an active organization id to update a role. Either set an active org id, or pass an organizationId in the request body.`);throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION)}const member=await ctx.context.adapter.findOne({model:\"member\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},{field:\"userId\",value:user.id,operator:\"eq\",connector:\"AND\"}]});if(!member){ctx.context.logger.error(`[Dynamic Access Control] The user is not a member of the organization to update a role.`,{userId:user.id,organizationId});throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION)}if(!await(0,import_has_permission.hasPermission)({options,organizationId,role:member.role,permissions:{ac:[\"update\"]}},ctx)){ctx.context.logger.error(`[Dynamic Access Control] The user is not permitted to update a role.`);throw import_error.APIError.from(\"FORBIDDEN\",import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_A_ROLE)}let condition;if(ctx.body.roleName)condition={field:\"role\",value:ctx.body.roleName,operator:\"eq\",connector:\"AND\"};else if(ctx.body.roleId)condition={field:\"id\",value:ctx.body.roleId,operator:\"eq\",connector:\"AND\"};else{ctx.context.logger.error(`[Dynamic Access Control] The role name/id is not provided in the request body.`);throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.ROLE_NOT_FOUND)}const role=await ctx.context.adapter.findOne({model:\"organizationRole\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},condition]});if(!role){ctx.context.logger.error(`[Dynamic Access Control] The role name/id does not exist in the database.`,{...\"roleName\"in ctx.body?{roleName:ctx.body.roleName}:{roleId:ctx.body.roleId},organizationId});throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.ROLE_NOT_FOUND)}role.permission=role.permission?JSON.parse(role.permission):void 0;const{permission:_,roleName:__,...additionalFields}=ctx.body.data;const updateData={...additionalFields};if(ctx.body.data.permission){const newPermission=ctx.body.data.permission;await checkForInvalidResources({ac,ctx,permission:newPermission});await checkIfMemberHasPermission({ctx,member,options,organizationId,permissionRequired:newPermission,user,action:\"update\"});updateData.permission=newPermission}if(ctx.body.data.roleName){let newRoleName=ctx.body.data.roleName;newRoleName=normalizeRoleName(newRoleName);await checkIfRoleNameIsTakenByPreDefinedRole({role:newRoleName,organizationId,options,ctx});await checkIfRoleNameIsTakenByRoleInDB({role:newRoleName,organizationId,ctx});updateData.role=newRoleName}const update={...updateData,...updateData.permission?{permission:JSON.stringify(updateData.permission)}:{}};await ctx.context.adapter.update({model:\"organizationRole\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},condition],update});return ctx.json({success:true,roleData:{...role,...update,permission:updateData.permission||role.permission||null}})})},\"updateOrgRole\");async function checkForInvalidResources({ac,ctx,permission}){const validResources=Object.keys(ac.statements);const providedResources=Object.keys(permission);if(providedResources.some(r=>!validResources.includes(r))){ctx.context.logger.error(`[Dynamic Access Control] The provided permission includes an invalid resource.`,{providedResources,validResources});throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.INVALID_RESOURCE)}}__name(checkForInvalidResources,\"checkForInvalidResources\");async function checkIfMemberHasPermission({ctx,permissionRequired:permission,options,organizationId,member,user,action}){const hasNecessaryPermissions=[];const permissionEntries=Object.entries(permission);for await(const[resource,permissions]of permissionEntries)for await(const perm of permissions)hasNecessaryPermissions.push({resource:{[resource]:[perm]},hasPermission:await(0,import_has_permission.hasPermission)({options,organizationId,permissions:{[resource]:[perm]},useMemoryCache:true,role:member.role},ctx)});const missingPermissions=hasNecessaryPermissions.filter(x=>x.hasPermission===false).map(x=>{const key=Object.keys(x.resource)[0];return`${key}:${x.resource[key][0]}`});if(missingPermissions.length>0){ctx.context.logger.error(`[Dynamic Access Control] The user is missing permissions necessary to ${action} a role with those set of permissions.\n`,{userId:user.id,organizationId,role:member.role,missingPermissions});let error;if(action===\"create\")error=import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_CREATE_A_ROLE;else if(action===\"update\")error=import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_A_ROLE;else if(action===\"delete\")error=import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_DELETE_A_ROLE;else if(action===\"read\")error=import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_READ_A_ROLE;else if(action===\"list\")error=import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_LIST_A_ROLE;else error=import_error_codes.ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_GET_A_ROLE;throw import_error.APIError.fromStatus(\"FORBIDDEN\",{message:error.message,code:error.code,missingPermissions})}}__name(checkIfMemberHasPermission,\"checkIfMemberHasPermission\");async function checkIfRoleNameIsTakenByPreDefinedRole({options,organizationId,role,ctx}){const defaultRoles=options.roles?Object.keys(options.roles):[\"owner\",\"admin\",\"member\"];if(defaultRoles.includes(role)){ctx.context.logger.error(`[Dynamic Access Control] The role name \"${role}\" is already taken by a pre-defined role.`,{role,organizationId,defaultRoles});throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.ROLE_NAME_IS_ALREADY_TAKEN)}}__name(checkIfRoleNameIsTakenByPreDefinedRole,\"checkIfRoleNameIsTakenByPreDefinedRole\");async function checkIfRoleNameIsTakenByRoleInDB({organizationId,role,ctx}){if(await ctx.context.adapter.findOne({model:\"organizationRole\",where:[{field:\"organizationId\",value:organizationId,operator:\"eq\",connector:\"AND\"},{field:\"role\",value:role,operator:\"eq\",connector:\"AND\"}]})){ctx.context.logger.error(`[Dynamic Access Control] The role name \"${role}\" is already taken by a role in the database.`,{role,organizationId});throw import_error.APIError.from(\"BAD_REQUEST\",import_error_codes.ORGANIZATION_ERROR_CODES.ROLE_NAME_IS_ALREADY_TAKEN)}}__name(checkIfRoleNameIsTakenByRoleInDB,\"checkIfRoleNameIsTakenByRoleInDB\");0&&(module.exports={createOrgRole,deleteOrgRole,getOrgRole,listOrgRoles,updateOrgRole});\n})()\n","warnings":[],"map":{"version":3,"mappings":"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","names":["member"],"ignoreList":[],"sources":["/opt/canhelp/node_modules/better-auth/dist/plugins/organization/routes/crud-access-control.mjs"],"sourcesContent":[null]}}