import { KuzzleRequest } from "../request"; import { NativeController } from "./baseController"; /** * @class SecurityController */ export default class SecurityController extends NativeController { protected readonly subdomain: string; protected readonly securityCollections: string[]; protected getStrategyMethod: any; protected readonly logger: any; protected anonymousId: string | null; static userOrSdk(userId: string | null): string; constructor(); /** * Checks if an API action can be executed by a user */ checkRights(request: KuzzleRequest): Promise<{ allowed: any; }>; /** * Creates a new API key for a user */ createApiKey(request: KuzzleRequest): Promise; /** * Search in an user API keys */ searchApiKeys(request: KuzzleRequest): Promise<{ hits: any[]; total: number; }>; /** * Deletes an user API key */ deleteApiKey(request: KuzzleRequest): Promise<{ _id: string; }>; /** * Get the role mapping * * @returns {Promise} */ getRoleMapping(): Promise<{ mapping: any; }>; /** * Update the roles collection mapping * @param {Request} request * @returns {Promise} */ updateRoleMapping(request: KuzzleRequest): Promise; /** * Get the profile mapping * * @returns {Promise} */ getProfileMapping(): Promise<{ mapping: any; }>; /** * Update the profiles collection mapping * @param {Request} request * @returns {Promise} */ updateProfileMapping(request: any): Promise; /** * Get the user mapping * * @returns {Promise} */ getUserMapping(): Promise<{ mapping: any; }>; /** * Update the users collection mapping * @param {Request} request * @returns {Promise} */ updateUserMapping(request: KuzzleRequest): Promise; /** * Get a specific role according to the given id * * @param {Request} request * @returns {Promise} */ getRole(request: KuzzleRequest): Promise>; /** * Get specific roles according to given ids * * @param {Request} request * @returns {Promise} */ mGetRoles(request: KuzzleRequest): Promise<{ hits: any; }>; /** * Refresh a security collection (users, roles, profiles) * * @param {Request} request * @returns {Promise} */ refresh(request: KuzzleRequest): Promise; /** * Search for roles * * @param {Request} request * @returns {Promise} */ searchRoles(request: KuzzleRequest): Promise; /** * Create or replace a Role * * @param {Request} request * @returns {Promise} */ createOrReplaceRole(request: KuzzleRequest): Promise>; /** * Create a Role * * @param {Request} request * @returns {Promise} */ createRole(request: KuzzleRequest): Promise>; /** * Remove a role according to the given id * * @param {Request} request * @returns {Promise} */ deleteRole(request: KuzzleRequest): Promise<{ _id: string; }>; /** * Get a specific profile according to the given id * * @param {Request} request * @returns {Promise} */ getProfile(request: KuzzleRequest): Promise>; /** * Get specific profiles according to given ids * * @param {Request} request * @returns {Promise} */ mGetProfiles(request: KuzzleRequest): Promise<{ hits: any; }>; /** * Create or replace a Profile * * @param {Request} request * @returns {Promise} */ createOrReplaceProfile(request: KuzzleRequest): Promise>; /** * Create a Profile * * @param {Request} request * @returns {Promise} */ createProfile(request: KuzzleRequest): Promise>; /** * Deletes a profile * * @param {Request} request * @returns {Promise} */ deleteProfile(request: KuzzleRequest): Promise<{ _id: string; }>; /** * Search for profiles * * @param {Request} request * @returns {Promise} */ searchProfiles(request: KuzzleRequest): Promise; /** * Given a user id, returns the matching User object * * @param {Request} request * @returns {Promise} */ getUser(request: KuzzleRequest): Promise>; /** * Get specific users according to given ids * * @param {Request} request * @returns {Promise.} */ mGetUsers(request: KuzzleRequest): Promise<{ hits: any; }>; /** * Given a profile id, returns the matching profile's rights as an array. * * @param {Request} request * @returns {Promise} */ getProfileRights(request: KuzzleRequest): Promise<{ hits: any[]; total: number; }>; /** * Given a user id, returns the matching user's rights as an array. * * @param {Request} request * @returns {Promise} */ getUserRights(request: KuzzleRequest): Promise<{ hits: any[]; total: number; }>; /** * Given a user id, returns the matching user's strategies as an array. * * @param {Request} request * @returns {Promise} */ getUserStrategies(request: KuzzleRequest): Promise<{ strategies: any[]; total: number; }>; /** * Returns the User objects matching the given query * * @param {Request} request * @returns {Promise} */ searchUsers(request: KuzzleRequest): Promise<{ hits: any; scrollId: any; total: any; }>; /** * Given a credentials related search query, returns matched users' kuid. * * @param {Request} request * @returns {Promise} */ searchUsersByCredentials(request: KuzzleRequest): Promise; /** * Deletes a user from Kuzzle * * @param {Request} request * @returns {Promise} */ deleteUser(request: KuzzleRequest): Promise<{ _id: string; }>; /** * Creates a new User object in Kuzzle's database layer * * @param {Request} request * @returns {Promise} */ createUser(request: KuzzleRequest): Promise>; /** * Creates a new User object in Kuzzle's database layer and applies restricted profileIds * * @param {Request} request * @returns {Promise} */ createRestrictedUser(request: KuzzleRequest): Promise>; /** * Updates an existing User * * @param {Request} request * @returns {Promise} */ updateUser(request: KuzzleRequest): Promise>; /** * Applies a partial update to an existing user. * If the user doesn't already exist, a new user is created. * * @param {Request} request * @returns {Promise} */ upsertUser(request: KuzzleRequest): Promise>; /** * Replaces an existing User * * @param {Request} request * @returns {Promise} */ replaceUser(request: KuzzleRequest): Promise>; /** * Updates an existing profile * * @param {Request} request * @returns {Promise} */ updateProfile(request: KuzzleRequest): Promise>; /** * Updates an existing role * * @param {Request} request * @returns {Promise} */ updateRole(request: KuzzleRequest): Promise>; /** * Creates the first admin user if it does not already exist * * @param {Request} request * @returns {Promise} */ createFirstAdmin(request: KuzzleRequest): Promise>; /** * Restricted rights are applied to the `anonymous` and `default` roles * (by default, these roles don't have any restriction). * * The default permissions can be found in the default configuration * and can be modified in the `kuzzlerc`. */ restrictDefaultRights(request: KuzzleRequest): Promise; /** * Deletes multiple profiles * * @param {Request} request * @returns {Promise} */ mDeleteProfiles(request: any): Promise; /** * Deletes multiple roles * * @param {Request} request * @returns {Promise} */ mDeleteRoles(request: any): Promise; /** * Deletes multiple users * * @param {Request} request * @returns {Promise} */ mDeleteUsers(request: any): Promise; /** * Scroll a paginated users search result * * @param {Request} request * @returns {Promise} */ scrollUsers(request: KuzzleRequest): Promise; /** * Scroll a paginated profiles search result * * @param {Request} request * @returns {Promise} */ scrollProfiles(request: KuzzleRequest): Promise; /** * @param {Request} request * @returns {Promise} */ createCredentials(request: KuzzleRequest): Promise; /** * @param {Request} request * @returns {Promise} */ updateCredentials(request: KuzzleRequest): Promise; /** * @param {Request} request * @returns {Promise.} */ hasCredentials(request: KuzzleRequest): Promise; /** * @param {Request} request * @returns {Promise.} */ validateCredentials(request: KuzzleRequest): Promise; /** * @param {Request} request * @returns {Promise} */ deleteCredentials(request: KuzzleRequest): Promise<{ acknowledged: boolean; }>; /** * @param {Request} request * @returns {Promise} */ getCredentials(request: KuzzleRequest): Promise; /** * @param {Request} request * @returns {Promise} */ getCredentialsById(request: KuzzleRequest): Promise; /** * @param {Request} request * @returns {Promise} */ getCredentialFields(request: KuzzleRequest): Promise; /** * @returns {Promise} */ getAllCredentialFields(): Promise<{}>; /** * @param {Request} request * @returns {Promise.} */ revokeTokens(request: KuzzleRequest): Promise; /** * @param {string.} type * @param {Request} request * @returns {Promise.>} * @private */ _mDelete(type: string, request: KuzzleRequest): Promise; /** * @returns {Promise} * @private */ _changeUser(request: KuzzleRequest, id: string, content: any, userId: string | null, profileIds: string[] | null): Promise>; /** * @param {Request} request * @returns {Promise} * @private */ _persistUser(request: KuzzleRequest, profileIds: string[], content: any, { humanReadableId }?: { humanReadableId?: boolean; }): Promise>; /** * Checks if a search result can exceeds the server configured limit * @param {Request} request * @param {number} limit * @throws */ _getSearchPageSize(request: KuzzleRequest): number; }