@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
93 lines • 8.03 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const child_process = require("child_process");
const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger"));
const PermissionSetFetcher_1 = __importDefault(require("./PermissionSetFetcher"));
const TableConstants_1 = require("../display/TableConstants");
const Table = require('cli-table');
class AssignPermissionSetsImpl {
constructor(conn, permSets, project_directory, packageLogger) {
this.conn = conn;
this.permSets = permSets;
this.project_directory = project_directory;
this.packageLogger = packageLogger;
}
async exec() {
let permsetListImpl = new PermissionSetFetcher_1.default(this.conn.getUsername(), this.conn);
let assignedPermSets = await permsetListImpl.fetchAllPermsetAssignment();
let failedAssignments = [];
let successfullAssignments = [];
for (let permSet of this.permSets) {
let permSetAssignmentMatch = assignedPermSets.find((record) => {
return record.PermissionSet.Name === permSet;
});
if (permSetAssignmentMatch !== undefined) {
// Treat permsets that have already been assigned as successes
successfullAssignments.push({ username: this.conn.getUsername(), permset: permSet });
continue;
}
try {
let permsetAssignmentJson = child_process.execSync(`sf org assign permset -n ${permSet} -o ${this.conn.getUsername()} --json`, {
cwd: this.project_directory,
encoding: 'utf8',
stdio: ['pipe', 'pipe', 'inherit'],
});
let permsetAssignment = JSON.parse(permsetAssignmentJson);
if (permsetAssignment.status === 0)
successfullAssignments.push({ username: this.conn.getUsername(), permset: permSet });
else
failedAssignments.push({ username: this.conn.getUsername(), permset: permSet });
}
catch (err) {
failedAssignments.push({ username: this.conn.getUsername(), permset: permSet });
}
}
if (successfullAssignments.length > 0) {
sfp_logger_1.default.log('Successful PermSet Assignments:', sfp_logger_1.LoggerLevel.INFO, this.packageLogger);
this.printPermsetAssignments(successfullAssignments);
}
if (failedAssignments.length > 0) {
sfp_logger_1.default.log('Failed PermSet Assignments', sfp_logger_1.LoggerLevel.INFO, this.packageLogger);
this.printPermsetAssignments(failedAssignments);
}
return { successfullAssignments, failedAssignments };
}
printPermsetAssignments(assignments) {
let table = new Table({
head: ['Username', 'Permission Set Assignment'],
chars: TableConstants_1.ZERO_BORDER_TABLE
});
assignments.forEach((assignment) => {
table.push([assignment.username, assignment.permset]);
});
sfp_logger_1.default.log(table.toString(), sfp_logger_1.LoggerLevel.INFO, this.packageLogger);
}
}
exports.default = AssignPermissionSetsImpl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXNzaWduUGVybWlzc2lvblNldHNJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvcGVybXNldHMvQXNzaWduUGVybWlzc2lvblNldHNJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrQ0FBZ0Q7QUFDaEQsbUVBQXNFO0FBQ3RFLGtGQUEwRDtBQUMxRCw4REFBOEQ7QUFDOUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRW5DLE1BQXFCLHdCQUF3QjtJQUN6QyxZQUNZLElBQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLGlCQUF5QixFQUN6QixhQUFxQjtRQUhyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBQzlCLENBQUM7SUFFRyxLQUFLLENBQUMsSUFBSTtRQVViLElBQUksZUFBZSxHQUF5QixJQUFJLDhCQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pHLElBQUksZ0JBQWdCLEdBQUcsTUFBTSxlQUFlLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUV6RSxJQUFJLGlCQUFpQixHQUdmLEVBQUUsQ0FBQztRQUNULElBQUksc0JBQXNCLEdBR3BCLEVBQUUsQ0FBQztRQUVULEtBQUssSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLElBQUksc0JBQXNCLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzFELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxD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