UNPKG

@mindmakr/gs-websdk

Version:

Web SDK for Guru SaaS System - Complete JavaScript/TypeScript SDK for building applications with dynamic schema management

173 lines (172 loc) 5.24 kB
/** * Authentication & Authorization Service Module * Provides comprehensive RBAC (Role-Based Access Control) functionality */ import { GuruSaaSClient } from '../core/client'; import { User, Role, Permission, Tenant, PaginatedResponse, PaginationParams, UserFilters, RequestConfig } from '../types'; export declare class AuthService { private client; constructor(client: GuruSaaSClient); /** * Get users with pagination and filtering */ getUsers(pagination?: PaginationParams, filters?: UserFilters, config?: RequestConfig): Promise<PaginatedResponse<User>>; /** * Get user by ID */ getUserById(id: string, config?: RequestConfig): Promise<User>; /** * Create new user */ createUser(userData: { email: string; password: string; name?: string; role?: string; tenant_id?: string; }, config?: RequestConfig): Promise<User>; /** * Update user */ updateUser(id: string, userData: Partial<User>, config?: RequestConfig): Promise<User>; /** * Get all roles */ getRoles(tenantId?: string, config?: RequestConfig): Promise<Role[]>; /** * Get role by ID with permissions */ getRoleById(roleId: string, config?: RequestConfig): Promise<Role>; /** * Create new role */ createRole(roleData: { name: string; description?: string; tenant_id?: string; permissions?: number[]; }, config?: RequestConfig): Promise<Role>; /** * Update role */ updateRole(roleId: string, roleData: { name?: string; description?: string; }, config?: RequestConfig): Promise<Role>; /** * Delete role */ deleteRole(roleId: string, config?: RequestConfig): Promise<void>; /** * Clone role */ cloneRole(roleId: string, data: { name: string; tenant_id?: string; }, config?: RequestConfig): Promise<Role>; /** * Get all permissions */ getPermissions(config?: RequestConfig): Promise<Permission[]>; /** * Assign permission to role */ assignPermissionToRole(roleId: string, permissionId: string, config?: RequestConfig): Promise<void>; /** * Revoke permission from role */ revokePermissionFromRole(roleId: string, permissionId: string, config?: RequestConfig): Promise<void>; /** * Get roles assigned to a user */ getUserRoles(userId: string, config?: RequestConfig): Promise<Role[]>; /** * Set roles for a user (replaces all existing roles) */ setUserRoles(userId: string, roleIds: string[], config?: RequestConfig): Promise<void>; /** * Add role to user */ addRoleToUser(userId: string, roleId: string, config?: RequestConfig): Promise<void>; /** * Remove role from user */ removeRoleFromUser(userId: string, roleId: string, config?: RequestConfig): Promise<void>; /** * Get all tenants (super admin only) */ getAllTenants(config?: RequestConfig): Promise<Tenant[]>; /** * Create tenant (super admin only) */ createTenant(tenantData: { id: string; name: string; domain?: string; subdomain?: string; custom_domain?: string; system_config_code?: string; }, config?: RequestConfig): Promise<Tenant>; /** * Update tenant (super admin only) */ updateTenant(tenantId: string, tenantData: { name?: string; domain?: string; subdomain?: string; custom_domain?: string; system_config_code?: string; }, config?: RequestConfig): Promise<Tenant>; /** * Check if current user can access admin endpoints */ canAccessAdmin(config?: RequestConfig): Promise<boolean>; /** * Check if current user can create tenants */ canCreateTenant(config?: RequestConfig): Promise<boolean>; /** * Check if current user has a specific permission */ checkPermission(resource: string, action: string, config?: RequestConfig): Promise<boolean>; /** * Check if current user has a template-specific permission */ checkTemplatePermission(templateCode: string, action: string, config?: RequestConfig): Promise<boolean>; /** * Get all user settings */ getUserSettings(config?: RequestConfig): Promise<Array<{ id: string; key: string; value: any; }>>; /** * Get specific user setting */ getUserSetting(key: string, config?: RequestConfig): Promise<{ id: string; key: string; value: any; } | null>; /** * Set user setting */ setUserSetting(key: string, value: any, config?: RequestConfig): Promise<{ id: string; key: string; value: any; }>; /** * Delete user setting */ deleteUserSetting(key: string, config?: RequestConfig): Promise<boolean>; /** * Get all roles across all tenants (super admin only) */ getAllRoles(config?: RequestConfig): Promise<Role[]>; /** * Get all permissions (super admin access) */ getAllPermissions(config?: RequestConfig): Promise<Permission[]>; }