diff --git a/surfsense_web/contracts/types/rbac.types.ts b/surfsense_web/contracts/types/rbac.types.ts deleted file mode 100644 index 724b9fd3e..000000000 --- a/surfsense_web/contracts/types/rbac.types.ts +++ /dev/null @@ -1,293 +0,0 @@ -import { z } from "zod"; - -export const role = z.object({ - id: z.number(), - name: z.string().min(1).max(100), - description: z.string().max(500).nullable(), - permissions: z.array(z.string()), - is_default: z.boolean(), - is_system_role: z.boolean(), - search_space_id: z.number(), - created_at: z.string(), -}); - -export const membership = z.object({ - id: z.number(), - user_id: z.string(), - search_space_id: z.number(), - role_id: z.number().nullable(), - is_owner: z.boolean(), - joined_at: z.string(), - created_at: z.string(), - role: role.nullable().optional(), - user_email: z.string().nullable().optional(), - user_is_active: z.boolean().nullable().optional(), -}); - -export const invite = z.object({ - id: z.number(), - name: z.string().max(100).nullable().optional(), - invite_code: z.string(), - search_space_id: z.number(), - created_by_id: z.string().nullable(), - role_id: z.number().nullable(), - expires_at: z.string().nullable(), - max_uses: z.number().nullable(), - uses_count: z.number(), - is_active: z.boolean(), - created_at: z.string(), - role: role.nullable().optional(), -}); - -export const permissionInfo = z.object({ - value: z.string(), - name: z.string(), - category: z.string(), -}); - -/** - * Get permissions - */ -export const getPermissionsResponse = z.object({ - permissions: z.array(permissionInfo), -}); - -/** - * Create role - */ -export const createRoleRequest = z.object({ - search_space_id: z.number(), - data: role.pick({ - name: true, - description: true, - permissions: true, - is_default: true, - }), -}); - -export const createRoleResponse = role; - -/** - * Get roles - */ -export const getRolesRequest = z.object({ - search_space_id: z.number(), -}); - -export const getRolesResponse = z.array(role); - -/** - * Get role by ID - */ -export const getRoleByIdRequest = z.object({ - search_space_id: z.number(), - role_id: z.number(), -}); - -export const getRoleByIdResponse = role; - -/** - * Update role - */ -export const updateRoleRequest = z.object({ - search_space_id: z.number(), - role_id: z.number(), - data: role.pick({ - name: true, - description: true, - permissions: true, - is_default: true, - }).partial(), -}); - -export const updateRoleResponse = role; - -/** - * Delete role - */ -export const deleteRoleRequest = z.object({ - search_space_id: z.number(), - role_id: z.number(), -}); - -export const deleteRoleResponse = z.object({ - message: z.string(), -}); - -/** - * Get members - */ -export const getMembersRequest = z.object({ - search_space_id: z.number(), -}); - -export const getMembersResponse = z.array(membership); - -/** - * Update membership - */ -export const updateMembershipRequest = z.object({ - search_space_id: z.number(), - membership_id: z.number(), - data: z.object({ - role_id: z.number(), - }), -}); - -export const updateMembershipResponse = membership; - -/** - * Delete membership - */ -export const deleteMembershipRequest = z.object({ - search_space_id: z.number(), - membership_id: z.number(), -}); - -export const deleteMembershipResponse = z.object({ - message: z.string(), -}); - -/** - * Leave search space - */ -export const leaveSearchSpaceRequest = z.object({ - search_space_id: z.number(), -}); - -export const leaveSearchSpaceResponse = z.object({ - message: z.string(), -}); - -/** - * Create invite - */ -export const createInviteRequest = z.object({ - search_space_id: z.number(), - data: z.object({ - name: z.string().max(100).optional(), - role_id: z.number().nullable().optional(), - expires_at: z.string().nullable().optional(), - max_uses: z.number().nullable().optional(), - }), -}); - -export const createInviteResponse = invite; - -/** - * Get invites - */ -export const getInvitesRequest = z.object({ - search_space_id: z.number(), -}); - -export const getInvitesResponse = z.array(invite); - -/** - * Update invite - */ -export const updateInviteRequest = z.object({ - search_space_id: z.number(), - invite_id: z.number(), - data: z.object({ - name: z.string().max(100).optional(), - role_id: z.number().nullable().optional(), - expires_at: z.string().nullable().optional(), - max_uses: z.number().nullable().optional(), - is_active: z.boolean().optional(), - }), -}); - -export const updateInviteResponse = invite; - -/** - * Delete invite - */ -export const deleteInviteRequest = z.object({ - search_space_id: z.number(), - invite_id: z.number(), -}); - -export const deleteInviteResponse = z.object({ - message: z.string(), -}); - -/** - * Get invite info by code - */ -export const getInviteInfoRequest = z.object({ - invite_code: z.string(), -}); - -export const getInviteInfoResponse = z.object({ - invite_code: z.string(), - search_space_name: z.string(), - role_name: z.string().nullable(), - expires_at: z.string().nullable(), - is_valid: z.boolean(), -}); - -/** - * Accept invite - */ -export const acceptInviteRequest = z.object({ - invite_code: z.string(), -}); - -export const acceptInviteResponse = z.object({ - message: z.string(), - search_space_id: z.number(), -}); - -/** - * Get my access - */ -export const getMyAccessRequest = z.object({ - search_space_id: z.number(), -}); - -export const getMyAccessResponse = z.object({ - user_id: z.string(), - search_space_id: z.number(), - is_owner: z.boolean(), - permissions: z.array(z.string()), - role_name: z.string().nullable(), -}); - -export type Role = z.infer; -export type Membership = z.infer; -export type Invite = z.infer; -export type PermissionInfo = z.infer; -export type GetPermissionsResponse = z.infer; -export type CreateRoleRequest = z.infer; -export type CreateRoleResponse = z.infer; -export type GetRolesRequest = z.infer; -export type GetRolesResponse = z.infer; -export type GetRoleByIdRequest = z.infer; -export type GetRoleByIdResponse = z.infer; -export type UpdateRoleRequest = z.infer; -export type UpdateRoleResponse = z.infer; -export type DeleteRoleRequest = z.infer; -export type DeleteRoleResponse = z.infer; -export type GetMembersRequest = z.infer; -export type GetMembersResponse = z.infer; -export type UpdateMembershipRequest = z.infer; -export type UpdateMembershipResponse = z.infer; -export type DeleteMembershipRequest = z.infer; -export type DeleteMembershipResponse = z.infer; -export type LeaveSearchSpaceRequest = z.infer; -export type LeaveSearchSpaceResponse = z.infer; -export type CreateInviteRequest = z.infer; -export type CreateInviteResponse = z.infer; -export type GetInvitesRequest = z.infer; -export type GetInvitesResponse = z.infer; -export type UpdateInviteRequest = z.infer; -export type UpdateInviteResponse = z.infer; -export type DeleteInviteRequest = z.infer; -export type DeleteInviteResponse = z.infer; -export type GetInviteInfoRequest = z.infer; -export type GetInviteInfoResponse = z.infer; -export type AcceptInviteRequest = z.infer; -export type AcceptInviteResponse = z.infer; -export type GetMyAccessRequest = z.infer; -export type GetMyAccessResponse = z.infer;