@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
TypeScript
/**
* 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[]>;
}