UNPKG

@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
"use strict"; 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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