@ultipa-graph/ultipa-node-sdk
Version:
NodeJS SDK for ultipa-server 4.0
348 lines • 15 kB
JavaScript
"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