UNPKG

kuzzle-sdk

Version:
413 lines 14.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SecurityController = void 0; const Base_1 = require("./Base"); const Role_1 = require("../core/security/Role"); const Role_2 = require("../core/searchResult/Role"); const Profile_1 = require("../core/security/Profile"); const Profile_2 = require("../core/searchResult/Profile"); const User_1 = require("../core/security/User"); const User_2 = require("../core/searchResult/User"); class SecurityController extends Base_1.BaseController { /** * @param {Kuzzle} kuzzle */ constructor(kuzzle) { super(kuzzle, "security"); } /** * Creates a new API key for a user. * * @param {String} userId - User kuid * @param {String} description - API key description * @param {Object} [options] - { _id, expiresIn, refresh } * * @returns {Promise.<Object>} ApiKey { _id, _source } */ createApiKey(userId, description, options = {}) { const request = { _id: options._id, action: "createApiKey", body: { description, }, expiresIn: options.expiresIn, refresh: options.refresh, userId, }; return this.query(request, options).then((response) => response.result); } /** * Checks if an API action can be executed by a user * * @param {String} kuid - User kuid * @param {Object} requestPayload - Request to check */ checkRights(kuid, requestPayload, options = {}) { const request = { action: "checkRights", body: requestPayload, userId: kuid, }; return this.query(request, options).then((response) => response.result.allowed); } /** * Deletes an user API key. * * @param {String} userId - User kuid * @param {String} id - API key ID * @param {Object} [options] - { refresh } * * @returns {Promise} */ deleteApiKey(userId, id, options = {}) { const request = { _id: id, action: "deleteApiKey", refresh: options.refresh, userId, }; return this.query(request, options); } /** * Searches for a user API key. * * @param {String} userId - User kuid * @param {Object} [query] - Search query * @param {Object} [options] - { from, size } * * @returns {Promise.<object[]>} - { hits, total } */ searchApiKeys(userId, query = {}, options = {}) { const request = { action: "searchApiKeys", body: query, from: options.from, lang: options.lang, size: options.size, userId, }; return this.query(request, options).then((response) => response.result); } createCredentials(strategy, _id, body, options = {}) { return this.query({ _id, action: "createCredentials", body, strategy, }, options).then((response) => response.result); } createFirstAdmin(_id, body, options = {}) { const request = { _id, action: "createFirstAdmin", body, reset: options.reset, }; return this.query(request, options).then((response) => new User_1.User(this.kuzzle, response.result._id, response.result._source)); } createOrReplaceProfile(_id, body, options = {}) { const request = { _id, action: "createOrReplaceProfile", body, }; return this.query(request, options).then((response) => new Profile_1.Profile(this.kuzzle, response.result._id, response.result._source)); } createOrReplaceRole(_id, body, options = {}) { const request = { _id, action: "createOrReplaceRole", body, force: options.force ? true : null, }; return this.query(request, options).then((response) => new Role_1.Role(this.kuzzle, response.result._id, response.result._source.controllers)); } createProfile(_id, body, options = {}) { const request = { _id, action: "createProfile", body, }; return this.query(request, options).then((response) => new Profile_1.Profile(this.kuzzle, response.result._id, response.result._source)); } createRestrictedUser(body, _id = null, options = {}) { if (!body.content) { body.content = {}; } const request = { _id, action: "createRestrictedUser", body, }; return this.query(request, options).then((response) => new User_1.User(this.kuzzle, response.result._id, response.result._source)); } createRole(_id, body, options = {}) { const request = { _id, action: "createRole", body, force: options.force ? true : null, }; return this.query(request, options).then((response) => new Role_1.Role(this.kuzzle, response.result._id, response.result._source.controllers)); } createUser(_id, body, options = {}) { const request = { _id, action: "createUser", body, }; return this.query(request, options).then((response) => new User_1.User(this.kuzzle, response.result._id, response.result._source)); } deleteCredentials(strategy, _id, options = {}) { const request = { _id, action: "deleteCredentials", strategy, }; return this.query(request, options).then((response) => response.result); } deleteProfile(_id, options = {}) { const request = { _id, action: "deleteProfile", }; return this.query(request, options).then((response) => response.result); } deleteRole(_id, options = {}) { const request = { _id, action: "deleteRole", }; return this.query(request, options).then((response) => response.result); } deleteUser(_id, options = {}) { const request = { _id, action: "deleteUser", }; return this.query(request, options).then((response) => response.result); } getAllCredentialFields(options = {}) { return this.query({ action: "getAllCredentialFields", }, options).then((response) => response.result); } getCredentialFields(strategy, options = {}) { return this.query({ action: "getCredentialFields", strategy, }, options).then((response) => response.result); } getCredentials(strategy, _id, options = {}) { return this.query({ _id, action: "getCredentials", strategy, }, options).then((response) => response.result); } getCredentialsById(strategy, _id, options = {}) { return this.query({ _id, action: "getCredentialsById", strategy, }, options).then((response) => response.result); } getProfile(_id, options = {}) { return this.query({ _id, action: "getProfile" }, options).then((response) => new Profile_1.Profile(this.kuzzle, response.result._id, response.result._source)); } getProfileMapping(options = {}) { return this.query({ action: "getProfileMapping", }, options).then((response) => response.result); } getProfileRights(_id, options = {}) { return this.query({ _id, action: "getProfileRights", }, options).then((response) => response.result.hits); } getRole(_id, options = {}) { return this.query({ _id, action: "getRole", }, options).then((response) => new Role_1.Role(this.kuzzle, response.result._id, response.result._source.controllers)); } getRoleMapping(options = {}) { return this.query({ action: "getRoleMapping", }, options).then((response) => response.result); } getUser(_id, options = {}) { return this.query({ _id, action: "getUser", }, options).then((response) => new User_1.User(this.kuzzle, response.result._id, response.result._source)); } getUserMapping(options = {}) { return this.query({ action: "getUserMapping", }, options).then((response) => response.result); } getUserRights(_id, options = {}) { return this.query({ _id, action: "getUserRights", }, options).then((response) => response.result.hits); } getUserStrategies(_id, options = {}) { return this.query({ _id, action: "getUserStrategies", }, options).then((response) => response.result.strategies); } hasCredentials(strategy, _id, options = {}) { return this.query({ _id, action: "hasCredentials", strategy, }, options).then((response) => response.result); } mDeleteProfiles(ids, options = {}) { const request = { action: "mDeleteProfiles", body: { ids }, }; return this.query(request, options).then((response) => response.result); } mDeleteRoles(ids, options = {}) { const request = { action: "mDeleteRoles", body: { ids }, }; return this.query(request, options).then((response) => response.result); } mDeleteUsers(ids, options = {}) { const request = { action: "mDeleteUsers", body: { ids }, }; return this.query(request, options).then((response) => response.result); } mGetProfiles(ids, options = {}) { return this.query({ action: "mGetProfiles", body: { ids } }, options).then((response) => response.result.hits.map((hit) => new Profile_1.Profile(this.kuzzle, hit._id, hit._source))); } mGetUsers(ids, options = {}) { const request = { action: "mGetUsers", body: { ids }, }; return this.query(request, options).then((response) => response.result.hits.map((hit) => new User_1.User(this.kuzzle, hit._id, hit._source))); } mGetRoles(ids, options = {}) { return this.query({ action: "mGetRoles", body: { ids }, }, options).then((response) => response.result.hits.map((hit) => new Role_1.Role(this.kuzzle, hit._id, hit._source.controllers))); } refresh(collection, options = {}) { return this.query({ action: "refresh", collection, }, options); } replaceUser(_id, body, options = {}) { const request = { _id, action: "replaceUser", body, }; return this.query(request, options).then((response) => new User_1.User(this.kuzzle, response.result._id, response.result._source)); } searchProfiles(body, options = {}) { const request = { action: "searchProfiles", body, }; for (const [key, value] of Object.entries(options)) { request[key] = value; } return this.query(request, options).then((response) => new Profile_2.ProfileSearchResult(this.kuzzle, request, options, response.result)); } searchRoles(body, options = {}) { const request = { action: "searchRoles", body, }; for (const [key, value] of Object.entries(options)) { request[key] = value; } return this.query(request, options).then((response) => new Role_2.RoleSearchResult(this.kuzzle, request, options, response.result)); } searchUsers(body, options = {}) { const request = { action: "searchUsers", body, }; for (const opt of ["from", "size", "scroll", "lang"]) { request[opt] = options[opt]; } return this.query(request, options).then((response) => new User_2.UserSearchResult(this.kuzzle, request, options, response.result)); } updateCredentials(strategy, _id, body, options = {}) { return this.query({ _id, action: "updateCredentials", body, strategy, }, options).then((response) => response.result); } updateProfile(_id, body, options = {}) { const request = { _id, action: "updateProfile", body, }; return this.query(request, options).then((response) => new Profile_1.Profile(this.kuzzle, response.result._id, response.result._source)); } updateProfileMapping(body, options = {}) { return this.query({ action: "updateProfileMapping", body, }, options).then((response) => response.result); } updateRole(_id, body, options = {}) { const request = { _id, action: "updateRole", body, force: options.force ? true : null, }; return this.query(request, options).then((response) => new Role_1.Role(this.kuzzle, response.result._id, response.result._source.controllers)); } updateRoleMapping(body, options = {}) { return this.query({ action: "updateRoleMapping", body, }, options).then((response) => response.result); } updateUser(_id, body, options = {}) { const request = { _id, action: "updateUser", body, }; return this.query(request, options).then((response) => new User_1.User(this.kuzzle, response.result._id, response.result._source)); } updateUserMapping(body, options = {}) { return this.query({ action: "updateUserMapping", body, }, options).then((response) => response.result); } validateCredentials(strategy, _id, body, options = {}) { return this.query({ _id, action: "validateCredentials", body, strategy, }, options).then((response) => response.result); } } exports.SecurityController = SecurityController; //# sourceMappingURL=Security.js.map