auth0-deploy-cli 7.3.6 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.circleci/config.yml +15 -0
- package/.github/CODEOWNERS +1 -0
- package/.husky/pre-commit +6 -0
- package/.husky/pre-push +4 -0
- package/.nyc_output/60b76a45-577b-4171-9982-a8e836ab7fd6.json +1 -0
- package/.nyc_output/processinfo/60b76a45-577b-4171-9982-a8e836ab7fd6.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +35 -2
- package/lib/args.js +89 -81
- package/lib/commands/export.js +51 -77
- package/lib/commands/import.js +45 -69
- package/lib/commands/index.js +11 -20
- package/lib/configFactory.js +19 -27
- package/lib/context/defaults.js +18 -41
- package/lib/context/directory/handlers/actions.js +77 -107
- package/lib/context/directory/handlers/attackProtection.js +59 -0
- package/lib/context/directory/handlers/clientGrants.js +45 -54
- package/lib/context/directory/handlers/clients.js +60 -79
- package/lib/context/directory/handlers/connections.js +65 -89
- package/lib/context/directory/handlers/databases.js +91 -123
- package/lib/context/directory/handlers/emailProvider.js +46 -57
- package/lib/context/directory/handlers/emailTemplates.js +67 -80
- package/lib/context/directory/handlers/guardianFactorProviders.js +41 -49
- package/lib/context/directory/handlers/guardianFactorTemplates.js +41 -49
- package/lib/context/directory/handlers/guardianFactors.js +41 -49
- package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js +40 -50
- package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js +40 -50
- package/lib/context/directory/handlers/guardianPolicies.js +40 -50
- package/lib/context/directory/handlers/hooks.js +55 -70
- package/lib/context/directory/handlers/index.js +53 -123
- package/lib/context/directory/handlers/migrations.js +36 -41
- package/lib/context/directory/handlers/organizations.js +54 -69
- package/lib/context/directory/handlers/pages.js +72 -86
- package/lib/context/directory/handlers/resourceServers.js +41 -49
- package/lib/context/directory/handlers/roles.js +49 -62
- package/lib/context/directory/handlers/rules.js +52 -68
- package/lib/context/directory/handlers/rulesConfigs.js +33 -32
- package/lib/context/directory/handlers/tenant.js +52 -47
- package/lib/context/directory/handlers/triggers.js +39 -54
- package/lib/context/directory/index.js +113 -101
- package/lib/context/index.js +96 -105
- package/lib/context/yaml/handlers/actions.js +71 -88
- package/lib/context/yaml/handlers/attackProtection.js +29 -0
- package/lib/context/yaml/handlers/clientGrants.js +36 -29
- package/lib/context/yaml/handlers/clients.js +61 -76
- package/lib/context/yaml/handlers/connections.js +76 -103
- package/lib/context/yaml/handlers/databases.js +64 -79
- package/lib/context/yaml/handlers/emailProvider.js +33 -30
- package/lib/context/yaml/handlers/emailTemplates.js +45 -54
- package/lib/context/yaml/handlers/guardianFactorProviders.js +27 -18
- package/lib/context/yaml/handlers/guardianFactorTemplates.js +27 -18
- package/lib/context/yaml/handlers/guardianFactors.js +27 -18
- package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js +27 -20
- package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js +27 -20
- package/lib/context/yaml/handlers/guardianPolicies.js +27 -20
- package/lib/context/yaml/handlers/hooks.js +57 -67
- package/lib/context/yaml/handlers/index.js +53 -123
- package/lib/context/yaml/handlers/migrations.js +23 -24
- package/lib/context/yaml/handlers/organizations.js +40 -38
- package/lib/context/yaml/handlers/pages.js +49 -58
- package/lib/context/yaml/handlers/resourceServers.js +27 -18
- package/lib/context/yaml/handlers/roles.js +34 -24
- package/lib/context/yaml/handlers/rules.js +48 -58
- package/lib/context/yaml/handlers/rulesConfigs.js +27 -18
- package/lib/context/yaml/handlers/tenant.js +44 -30
- package/lib/context/yaml/handlers/triggers.js +32 -23
- package/lib/context/yaml/index.js +127 -142
- package/lib/index.js +73 -79
- package/lib/logger.js +18 -22
- package/lib/readonly.js +74 -66
- package/lib/tools/ValidationError.js +8 -13
- package/lib/tools/auth0/client.js +143 -133
- package/lib/tools/auth0/handlers/actions.js +231 -241
- package/lib/tools/auth0/handlers/attackProtection.js +86 -0
- package/lib/tools/auth0/handlers/branding.js +47 -46
- package/lib/tools/auth0/handlers/clientGrants.js +118 -116
- package/lib/tools/auth0/handlers/clients.js +72 -90
- package/lib/tools/auth0/handlers/connections.js +150 -118
- package/lib/tools/auth0/handlers/databases.js +127 -124
- package/lib/tools/auth0/handlers/default.js +186 -189
- package/lib/tools/auth0/handlers/emailProvider.js +67 -78
- package/lib/tools/auth0/handlers/emailTemplates.js +116 -92
- package/lib/tools/auth0/handlers/guardianFactorProviders.js +66 -81
- package/lib/tools/auth0/handlers/guardianFactorTemplates.js +60 -71
- package/lib/tools/auth0/handlers/guardianFactors.js +56 -63
- package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js +80 -79
- package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js +77 -76
- package/lib/tools/auth0/handlers/guardianPolicies.js +59 -62
- package/lib/tools/auth0/handlers/hooks.js +201 -227
- package/lib/tools/auth0/handlers/index.js +53 -111
- package/lib/tools/auth0/handlers/migrations.js +99 -79
- package/lib/tools/auth0/handlers/organizations.js +225 -247
- package/lib/tools/auth0/handlers/pages.js +116 -154
- package/lib/tools/auth0/handlers/prompts.js +47 -46
- package/lib/tools/auth0/handlers/resourceServers.js +88 -112
- package/lib/tools/auth0/handlers/roles.js +203 -220
- package/lib/tools/auth0/handlers/rules.js +168 -189
- package/lib/tools/auth0/handlers/rulesConfigs.js +54 -63
- package/lib/tools/auth0/handlers/tenant.js +88 -64
- package/lib/tools/auth0/handlers/triggers.js +126 -126
- package/lib/tools/auth0/index.js +92 -85
- package/lib/tools/auth0/schema.js +39 -31
- package/lib/tools/constants.js +111 -21
- package/lib/tools/deploy.js +35 -32
- package/lib/tools/index.js +19 -32
- package/lib/tools/logger.js +11 -12
- package/lib/tools/utils.js +258 -254
- package/lib/utils.js +167 -190
- package/package.json +6 -3
- package/tsconfig.json +96 -0
- package/typescript-migration-progress.sh +22 -0
- package/.nyc_output/8cf4dd0c-1f3a-4ac1-899c-8e453a64221e.json +0 -1
- package/.nyc_output/processinfo/8cf4dd0c-1f3a-4ac1-899c-8e453a64221e.json +0 -1
|
@@ -1,232 +1,215 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
5
17
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _default2 = _interopRequireDefault(_default);
|
|
13
|
-
|
|
14
|
-
var _utils = require("../../utils");
|
|
15
|
-
|
|
16
|
-
var _logger = require("../../logger");
|
|
17
|
-
|
|
18
|
-
var _logger2 = _interopRequireDefault(_logger);
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
|
-
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
23
|
-
|
|
24
|
-
const schema = exports.schema = {
|
|
25
|
-
type: 'array',
|
|
26
|
-
items: {
|
|
27
|
-
type: 'object',
|
|
28
|
-
properties: {
|
|
29
|
-
name: {
|
|
30
|
-
type: 'string'
|
|
31
|
-
},
|
|
32
|
-
id: {
|
|
33
|
-
type: 'string'
|
|
34
|
-
},
|
|
35
|
-
description: {
|
|
36
|
-
type: 'string'
|
|
37
|
-
},
|
|
38
|
-
permissions: {
|
|
39
|
-
type: 'array',
|
|
40
|
-
items: {
|
|
41
|
-
type: 'object',
|
|
42
|
-
properties: {
|
|
43
|
-
permission_name: {
|
|
44
|
-
type: 'string'
|
|
45
|
-
},
|
|
46
|
-
resource_server_identifier: {
|
|
47
|
-
type: 'string'
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
required: ['name']
|
|
54
|
-
}
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
55
23
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
32
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
33
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
34
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
35
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
36
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
37
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
62
38
|
});
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
39
|
+
};
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.schema = void 0;
|
|
45
|
+
const default_1 = __importStar(require("./default"));
|
|
46
|
+
const utils_1 = require("../../utils");
|
|
47
|
+
const logger_1 = __importDefault(require("../../logger"));
|
|
48
|
+
exports.schema = {
|
|
49
|
+
type: 'array',
|
|
50
|
+
items: {
|
|
51
|
+
type: 'object',
|
|
52
|
+
properties: {
|
|
53
|
+
name: { type: 'string' },
|
|
54
|
+
id: { type: 'string' },
|
|
55
|
+
description: { type: 'string' },
|
|
56
|
+
permissions: {
|
|
57
|
+
type: 'array',
|
|
58
|
+
items: {
|
|
59
|
+
type: 'object',
|
|
60
|
+
properties: {
|
|
61
|
+
permission_name: { type: 'string' },
|
|
62
|
+
resource_server_identifier: { type: 'string' }
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
required: ['name']
|
|
77
68
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
async createRoles(creates) {
|
|
83
|
-
await this.client.pool.addEachTask({
|
|
84
|
-
data: creates || [],
|
|
85
|
-
generator: item => this.createRole(item).then(data => {
|
|
86
|
-
this.didCreate(data);
|
|
87
|
-
this.created += 1;
|
|
88
|
-
}).catch(err => {
|
|
89
|
-
throw new Error(`Problem creating ${this.type} ${this.objString(item)}\n${err}`);
|
|
90
|
-
})
|
|
91
|
-
}).promise();
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
async deleteRole(data) {
|
|
95
|
-
await this.client.roles.delete({
|
|
96
|
-
id: data.id
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
async deleteRoles(dels) {
|
|
101
|
-
if (this.config('AUTH0_ALLOW_DELETE') === 'true' || this.config('AUTH0_ALLOW_DELETE') === true) {
|
|
102
|
-
await this.client.pool.addEachTask({
|
|
103
|
-
data: dels || [],
|
|
104
|
-
generator: item => this.deleteRole(item).then(() => {
|
|
105
|
-
this.didDelete(item);
|
|
106
|
-
this.deleted += 1;
|
|
107
|
-
}).catch(err => {
|
|
108
|
-
throw new Error(`Problem deleting ${this.type} ${this.objString(item)}\n${err}`);
|
|
109
|
-
})
|
|
110
|
-
}).promise();
|
|
111
|
-
} else {
|
|
112
|
-
_logger2.default.warn(`Detected the following roles should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config
|
|
113
|
-
\n${dels.map(i => this.objString(i)).join('\n')}`);
|
|
69
|
+
};
|
|
70
|
+
class RoleHandler extends default_1.default {
|
|
71
|
+
constructor(config) {
|
|
72
|
+
super(Object.assign(Object.assign({}, config), { type: 'roles', id: 'id', identifiers: ['name'] }));
|
|
114
73
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
await this.client.roles.update(params, data);
|
|
126
|
-
|
|
127
|
-
if (typeof existingRole.permissions !== 'undefined' && existingRole.permissions.length > 0) {
|
|
128
|
-
await this.client.roles.permissions.delete(params, {
|
|
129
|
-
permissions: existingRole.permissions
|
|
130
|
-
});
|
|
74
|
+
createRole(data) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
const role = Object.assign({}, data);
|
|
77
|
+
delete role.permissions;
|
|
78
|
+
const created = yield this.client.roles.create(role);
|
|
79
|
+
if (typeof data.permissions !== 'undefined' && data.permissions.length > 0) {
|
|
80
|
+
yield this.client.roles.permissions.create({ id: created.id }, { permissions: data.permissions });
|
|
81
|
+
}
|
|
82
|
+
return created;
|
|
83
|
+
});
|
|
131
84
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
85
|
+
createRoles(creates) {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
yield this.client.pool.addEachTask({
|
|
88
|
+
data: creates || [],
|
|
89
|
+
generator: (item) => this.createRole(item).then((data) => {
|
|
90
|
+
this.didCreate(data);
|
|
91
|
+
this.created += 1;
|
|
92
|
+
}).catch((err) => {
|
|
93
|
+
throw new Error(`Problem creating ${this.type} ${this.objString(item)}\n${err}`);
|
|
94
|
+
})
|
|
95
|
+
}).promise();
|
|
96
|
+
});
|
|
137
97
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
async updateRoles(updates, roles) {
|
|
143
|
-
await this.client.pool.addEachTask({
|
|
144
|
-
data: updates || [],
|
|
145
|
-
generator: item => this.updateRole(item, roles).then(data => {
|
|
146
|
-
this.didUpdate(data);
|
|
147
|
-
this.updated += 1;
|
|
148
|
-
}).catch(err => {
|
|
149
|
-
throw new Error(`Problem updating ${this.type} ${this.objString(item)}\n${err}`);
|
|
150
|
-
})
|
|
151
|
-
}).promise();
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
async getType() {
|
|
155
|
-
if (this.existing) {
|
|
156
|
-
return this.existing;
|
|
98
|
+
deleteRole(data) {
|
|
99
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
yield this.client.roles.delete({ id: data.id });
|
|
101
|
+
});
|
|
157
102
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
103
|
+
deleteRoles(dels) {
|
|
104
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
+
if (this.config('AUTH0_ALLOW_DELETE') === 'true' || this.config('AUTH0_ALLOW_DELETE') === true) {
|
|
106
|
+
yield this.client.pool.addEachTask({
|
|
107
|
+
data: dels || [],
|
|
108
|
+
generator: (item) => this.deleteRole(item).then(() => {
|
|
109
|
+
this.didDelete(item);
|
|
110
|
+
this.deleted += 1;
|
|
111
|
+
}).catch((err) => {
|
|
112
|
+
throw new Error(`Problem deleting ${this.type} ${this.objString(item)}\n${err}`);
|
|
113
|
+
})
|
|
114
|
+
}).promise();
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
logger_1.default.warn(`Detected the following roles should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config
|
|
118
|
+
\n${dels.map((i) => this.objString(i)).join('\n')}`);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
updateRole(data, roles) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
const existingRole = yield roles.find((roleDataForUpdate) => roleDataForUpdate.name === data.name);
|
|
125
|
+
const params = { id: data.id };
|
|
126
|
+
const newPermissions = data.permissions;
|
|
127
|
+
delete data.permissions;
|
|
128
|
+
delete data.id;
|
|
129
|
+
yield this.client.roles.update(params, data);
|
|
130
|
+
if (typeof existingRole.permissions !== 'undefined' && existingRole.permissions.length > 0) {
|
|
131
|
+
yield this.client.roles.permissions.delete(params, { permissions: existingRole.permissions });
|
|
132
|
+
}
|
|
133
|
+
if (typeof newPermissions !== 'undefined' && newPermissions.length > 0) {
|
|
134
|
+
yield this.client.roles.permissions.create(params, { permissions: newPermissions });
|
|
135
|
+
}
|
|
136
|
+
return params;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
updateRoles(updates, roles) {
|
|
140
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
+
yield this.client.pool.addEachTask({
|
|
142
|
+
data: updates || [],
|
|
143
|
+
generator: (item) => this.updateRole(item, roles).then((data) => {
|
|
144
|
+
this.didUpdate(data);
|
|
145
|
+
this.updated += 1;
|
|
146
|
+
}).catch((err) => {
|
|
147
|
+
throw new Error(`Problem updating ${this.type} ${this.objString(item)}\n${err}`);
|
|
148
|
+
})
|
|
149
|
+
}).promise();
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
getType() {
|
|
153
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
if (this.existing) {
|
|
155
|
+
return this.existing;
|
|
156
|
+
}
|
|
157
|
+
// in case client version does not support roles
|
|
158
|
+
if (!this.client.roles || typeof this.client.roles.getAll !== 'function') {
|
|
159
|
+
return [];
|
|
160
|
+
}
|
|
161
|
+
try {
|
|
162
|
+
const roles = yield this.client.roles.getAll({ paginate: true, include_totals: true });
|
|
163
|
+
for (let index = 0; index < roles.length; index++) {
|
|
164
|
+
const permissions = yield this.client.roles.permissions.getAll({ paginate: true, include_totals: true, id: roles[index].id });
|
|
165
|
+
const strippedPerms = yield Promise.all(permissions.map((permission) => __awaiter(this, void 0, void 0, function* () {
|
|
166
|
+
delete permission.resource_server_name;
|
|
167
|
+
delete permission.description;
|
|
168
|
+
return permission;
|
|
169
|
+
})));
|
|
170
|
+
roles[index].permissions = strippedPerms;
|
|
171
|
+
}
|
|
172
|
+
this.existing = roles;
|
|
173
|
+
return this.existing;
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
176
|
+
if (err.statusCode === 404 || err.statusCode === 501) {
|
|
177
|
+
return [];
|
|
178
|
+
}
|
|
179
|
+
throw err;
|
|
180
|
+
}
|
|
181
|
+
});
|
|
161
182
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
183
|
+
processChanges(assets) {
|
|
184
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
+
const { roles } = assets;
|
|
186
|
+
// Do nothing if not set
|
|
187
|
+
if (!roles)
|
|
188
|
+
return;
|
|
189
|
+
// Gets roles from destination tenant
|
|
190
|
+
const existing = yield this.getType();
|
|
191
|
+
const changes = (0, utils_1.calcChanges)(this, roles, existing, ['id', 'name']);
|
|
192
|
+
logger_1.default.debug(`Start processChanges for roles [delete:${changes.del.length}] [update:${changes.update.length}], [create:${changes.create.length}]`);
|
|
193
|
+
const myChanges = [{ del: changes.del }, { create: changes.create }, { update: changes.update }];
|
|
194
|
+
yield Promise.all(myChanges.map((change) => __awaiter(this, void 0, void 0, function* () {
|
|
195
|
+
switch (true) {
|
|
196
|
+
case change.del && change.del.length > 0:
|
|
197
|
+
yield this.deleteRoles(change.del);
|
|
198
|
+
break;
|
|
199
|
+
case change.create && change.create.length > 0:
|
|
200
|
+
yield this.createRoles(changes.create);
|
|
201
|
+
break;
|
|
202
|
+
case change.update && change.update.length > 0:
|
|
203
|
+
yield this.updateRoles(change.update, existing);
|
|
204
|
+
break;
|
|
205
|
+
default:
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
})));
|
|
174
209
|
});
|
|
175
|
-
const strippedPerms = await Promise.all(permissions.map(async permission => {
|
|
176
|
-
delete permission.resource_server_name;
|
|
177
|
-
delete permission.description;
|
|
178
|
-
return permission;
|
|
179
|
-
}));
|
|
180
|
-
roles[index].permissions = strippedPerms;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
this.existing = roles;
|
|
184
|
-
return this.existing;
|
|
185
|
-
} catch (err) {
|
|
186
|
-
if (err.statusCode === 404 || err.statusCode === 501) {
|
|
187
|
-
return [];
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
throw err;
|
|
191
210
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
} = assets;
|
|
198
|
-
if (!roles) return;
|
|
199
|
-
const existing = await this.getType();
|
|
200
|
-
const changes = (0, _utils.calcChanges)(this, roles, existing, ['id', 'name']);
|
|
201
|
-
|
|
202
|
-
_logger2.default.debug(`Start processChanges for roles [delete:${changes.del.length}] [update:${changes.update.length}], [create:${changes.create.length}]`);
|
|
203
|
-
|
|
204
|
-
const myChanges = [{
|
|
205
|
-
del: changes.del
|
|
206
|
-
}, {
|
|
207
|
-
create: changes.create
|
|
208
|
-
}, {
|
|
209
|
-
update: changes.update
|
|
210
|
-
}];
|
|
211
|
-
await Promise.all(myChanges.map(async change => {
|
|
212
|
-
switch (true) {
|
|
213
|
-
case change.del && change.del.length > 0:
|
|
214
|
-
await this.deleteRoles(change.del);
|
|
215
|
-
break;
|
|
216
|
-
|
|
217
|
-
case change.create && change.create.length > 0:
|
|
218
|
-
await this.createRoles(changes.create);
|
|
219
|
-
break;
|
|
220
|
-
|
|
221
|
-
case change.update && change.update.length > 0:
|
|
222
|
-
await this.updateRoles(change.update, existing);
|
|
223
|
-
break;
|
|
224
|
-
|
|
225
|
-
default:
|
|
226
|
-
break;
|
|
227
|
-
}
|
|
228
|
-
}));
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
}, (_applyDecoratedDescriptor(_class.prototype, "processChanges", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "processChanges"), _class.prototype)), _class));
|
|
232
|
-
exports.default = RoleHandler;
|
|
211
|
+
}
|
|
212
|
+
__decorate([
|
|
213
|
+
(0, default_1.order)('60')
|
|
214
|
+
], RoleHandler.prototype, "processChanges", null);
|
|
215
|
+
exports.default = RoleHandler;
|