UNPKG

@ultipa-graph/ultipa-node-sdk

Version:

NodeJS SDK for ultipa-server 4.0

348 lines 15 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PrivilegeExtra = exports.UserExtra = void 0; const connection_base_1 = require("./connection.base"); const types_1 = require("../../types"); const utils_1 = require("../../utils"); const ultipa_pb_1 = require("../../proto/ultipa_pb"); const { CommandList } = utils_1.UQLMAKER; const JSONSTRING_KEYS = ["graphPrivileges", "propertyPrivileges", "systemPrivileges", "policies", "policy", "graph_privileges", "system_privileges", "property_privileges"]; const GRPATH_PRIVILEGES_DATA_FORMAT = (obj) => { if (obj.graphPrivileges) { obj.graph_privileges = obj.graphPrivileges; delete obj.graphPrivileges; } if (obj.systemPrivileges) { obj.system_privileges = obj.systemPrivileges; delete obj.systemPrivileges; } if (obj.propertyPrivileges) { obj.property_privileges = obj.propertyPrivileges; delete obj.propertyPrivileges; } return obj; }; class UserExtra extends connection_base_1.ConnectionBase { /** * 用户列表 */ showUser(requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.showUser; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig); return connection_base_1.ConnectionBase.UqlListSimple(this, uqlMaker, { jsonKeys: JSONSTRING_KEYS, dataFormat: GRPATH_PRIVILEGES_DATA_FORMAT, }); }); } /** * 用户详细信息 */ getUser(userName, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.getUser; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, userName); let res = yield connection_base_1.ConnectionBase.UqlGetSimple(this, uqlMaker, { jsonKeys: JSONSTRING_KEYS, dataFormat: GRPATH_PRIVILEGES_DATA_FORMAT, }); return res; }); } /** * 获取当前用户的信息 */ getSelfInfo(commonReq) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.getSelfInfo; let uqlMaker = new utils_1.UQLMAKER(command, commonReq); let res = yield connection_base_1.ConnectionBase.UqlGetSimple(this, uqlMaker, { jsonKeys: JSONSTRING_KEYS, dataFormat: GRPATH_PRIVILEGES_DATA_FORMAT, }); return res; }); } /** * 创建用户 */ createUser(request, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.createUser; if (!request.system_privileges) { request.system_privileges = []; } if (!request.graph_privileges) { request.graph_privileges = {}; } if (!request.policies) { request.policies = []; } if (!request.property_privileges) { request.property_privileges = {}; } let params = [request.username, request.password, request.graph_privileges, request.system_privileges, request.policies, request.property_privileges]; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, params); return connection_base_1.ConnectionBase.UqlUpdateSimple(this, uqlMaker); }); } /** * 删除用户 */ dropUser(userName, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.dropUser; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, userName); return connection_base_1.ConnectionBase.UqlUpdateSimple(this, uqlMaker); }); } /** * 跟新用户 */ alterUser(request, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.alterUser; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, request.username); let set = {}; if (request.password) { set.password = request.password; } if (request.system_privileges) { set.system_privileges = request.system_privileges; } if (request.graph_privileges) { set.graph_privileges = request.graph_privileges; } if (request.policies) { set.policies = request.policies; } if (request.property_privileges) { set.property_privileges = request.property_privileges; } uqlMaker.addParam("set", set); return connection_base_1.ConnectionBase.UqlUpdateSimple(this, uqlMaker); }); } getUserSetting(request, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let req = new ultipa_pb_1.UserSettingRequest(); req.setOpt(ultipa_pb_1.UserSettingRequest.OPTION.OPT_GET); req.setUserName(request.username); if (request.type) { req.setType(request.type); } return yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let clientInfo = yield this.getClientInfo({ type: types_1.ULTIPA.ClientType.Leader, graphSetName: requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.graphSetName, clusterId: requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.clusterId, isGlobal: true, timeZone: requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.timeZone, timeZoneOffset: requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.timeZoneOffset, }); clientInfo.client.controlsClient.userSetting(req, clientInfo.metadata, (err, resp) => { let response = new types_1.ULTIPA.Response(); if (err) { response = utils_1.FormatResponse.unknownError(err, response); resolve(response); return; } resolve({ status: utils_1.FormatType.status(resp.getStatus()), data: resp.getData() }); }); })); }); } setUserSetting(request, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let req = new ultipa_pb_1.UserSettingRequest(); req.setOpt(ultipa_pb_1.UserSettingRequest.OPTION.OPT_SET); req.setUserName(request.username); req.setType(request.type); req.setData(request.data); return yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let clientInfo = yield this.getClientInfo({ graphSetName: requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.graphSetName, clusterId: requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.clusterId, isGlobal: true, type: types_1.ULTIPA.ClientType.Leader, timeZone: requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.timeZone, timeZoneOffset: requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.timeZoneOffset, }); clientInfo.client.controlsClient.userSetting(req, clientInfo.metadata, (err, resp) => { let response = new types_1.ULTIPA.Response(); if (err) { response = utils_1.FormatResponse.unknownError(err, response); resolve(response); return; } resolve({ status: utils_1.FormatType.status(resp.getStatus()), }); }); })); }); } } exports.UserExtra = UserExtra; class PrivilegeExtra extends connection_base_1.ConnectionBase { /** * 获取权限列表 */ showPrivilege(requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.showPrivilege; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig); return connection_base_1.ConnectionBase.UqlGetSimple(this, uqlMaker, { jsonKeys: JSONSTRING_KEYS, dataFormat: GRPATH_PRIVILEGES_DATA_FORMAT, }); }); } /** * 获取策略列表 */ showPolicy(requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.showPolicy; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig); return connection_base_1.ConnectionBase.UqlListSimple(this, uqlMaker, { jsonKeys: JSONSTRING_KEYS, dataFormat: GRPATH_PRIVILEGES_DATA_FORMAT, }); }); } /** * 获取策略详细 */ getPolicy(policyName, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.getPolicy; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, policyName); return connection_base_1.ConnectionBase.UqlGetSimple(this, uqlMaker, { jsonKeys: JSONSTRING_KEYS, dataFormat: GRPATH_PRIVILEGES_DATA_FORMAT, }); }); } /** * 创建策略 */ createPolicy(policy, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.createPolicy; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, [policy.name, policy.graph_privileges || {}, policy.system_privileges || [], policy.policies || [], policy.property_privileges || {}]); return connection_base_1.ConnectionBase.UqlUpdateSimple(this, uqlMaker); }); } /** * 更新策略 */ alterPolicy(policy, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.alterPolicy; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, policy.name); let set = {}; if (policy.graph_privileges) { set.graph_privileges = policy.graph_privileges; } if (policy.system_privileges) { set.system_privileges = policy.system_privileges; } if (policy.policies) { set.policies = policy.policies; } if (policy.property_privileges) { set.property_privileges = policy.property_privileges; } uqlMaker.addParam("set", set); return connection_base_1.ConnectionBase.UqlUpdateSimple(this, uqlMaker); }); } /** * 删除策略 */ dropPolicy(policyName, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let command = CommandList.dropPolicy; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, policyName); return connection_base_1.ConnectionBase.UqlUpdateSimple(this, uqlMaker); }); } /** * 赋予用户权限或策略 */ grantPolicy(userName, graphPrivileges, systemPrivileges, policies, PropertyPrivilege, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let req = { username: userName, graph_privileges: graphPrivileges, system_privileges: systemPrivileges, property_privileges: PropertyPrivilege, policies: policies, }; let command = CommandList.grantUser; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, req.username); let set = {}; if (req.graph_privileges) { set.graph_privileges = req.graph_privileges; } if (req.system_privileges) { set.system_privileges = req.system_privileges; } if (req.policies) { set.policies = req.policies; } if (req.property_privileges) { set.property_privileges = req.property_privileges; } uqlMaker.addParam("params", set); return connection_base_1.ConnectionBase.UqlUpdateSimple(this, uqlMaker); }); } /** * 移除用户权限或策略 */ revokePolicy(userName, graphPrivileges, systemPrivileges, policies, PropertyPrivilege, requestConfig) { return __awaiter(this, void 0, void 0, function* () { let req = { username: userName, graph_privileges: graphPrivileges, system_privileges: systemPrivileges, property_privileges: PropertyPrivilege, policies: policies, }; let command = CommandList.revokeUser; let uqlMaker = new utils_1.UQLMAKER(command, requestConfig, req.username); let set = {}; if (req.graph_privileges) { set.graph_privileges = req.graph_privileges; } if (req.system_privileges) { set.system_privileges = req.system_privileges; } if (req.property_privileges) { set.property_privileges = req.property_privileges; } if (req.policies) { set.policies = req.policies; } uqlMaker.addParam("params", set); return connection_base_1.ConnectionBase.UqlUpdateSimple(this, uqlMaker); }); } } exports.PrivilegeExtra = PrivilegeExtra; //# sourceMappingURL=user.privilege.extra.js.map