@pnp/cli-microsoft365 6.3.0-beta.c3dc921 → 6.3.0-beta.e46ffee
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/dist/Auth.js +0 -18
- package/dist/m365/file/commands/convert/convert-pdf.js +7 -6
- package/dist/m365/flow/commands/run/run-list.js +55 -3
- package/dist/m365/onenote/commands/notebook/notebook-list.js +2 -16
- package/dist/m365/onenote/commands/page/page-list.js +2 -16
- package/dist/m365/outlook/commands/mail/mail-send.js +3 -2
- package/dist/m365/outlook/commands/message/message-get.js +4 -3
- package/dist/m365/planner/commands/plan/plan-add.js +20 -6
- package/dist/m365/planner/commands/plan/plan-remove.js +1 -1
- package/dist/m365/planner/commands/roster/roster-add.js +47 -0
- package/dist/m365/planner/commands/roster/roster-remove.js +88 -0
- package/dist/m365/planner/commands.js +2 -0
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +70 -0
- package/dist/m365/purview/commands.js +1 -0
- package/dist/m365/spfx/commands/project/WebApiPermissionRequests.js +3 -0
- package/dist/m365/spfx/commands/project/project-permissions-grant.js +81 -0
- package/dist/m365/spfx/commands.js +3 -2
- package/dist/m365/spo/commands/navigation/navigation-node-add.js +17 -3
- package/dist/m365/spo/commands/navigation/navigation-node-list.js +4 -7
- package/dist/m365/spo/commands/navigation/navigation-node-set.js +118 -0
- package/dist/m365/spo/commands/site/site-apppermission-add.js +2 -14
- package/dist/m365/spo/commands/site/site-apppermission-get.js +2 -14
- package/dist/m365/spo/commands/site/site-apppermission-list.js +2 -14
- package/dist/m365/spo/commands/site/site-apppermission-remove.js +2 -14
- package/dist/m365/spo/commands/site/site-apppermission-set.js +2 -14
- package/dist/m365/spo/commands/web/web-set.js +11 -4
- package/dist/m365/spo/commands.js +1 -0
- package/dist/m365/teams/commands/chat/chat-list.js +4 -4
- package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +5 -5
- package/dist/m365/teams/commands/meeting/meeting-get.js +5 -5
- package/dist/m365/teams/commands/meeting/meeting-list.js +4 -3
- package/dist/utils/accessToken.js +1 -1
- package/dist/utils/planner.js +4 -4
- package/dist/utils/spo.js +27 -0
- package/docs/docs/cmd/aad/app/app-list.md +3 -0
- package/docs/docs/cmd/aad/user/user-set.md +1 -1
- package/docs/docs/cmd/flow/run/run-list.md +21 -0
- package/docs/docs/cmd/planner/plan/plan-add.md +17 -6
- package/docs/docs/cmd/planner/plan/plan-remove.md +4 -0
- package/docs/docs/cmd/planner/roster/roster-add.md +60 -0
- package/docs/docs/cmd/planner/roster/roster-remove.md +48 -0
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.md +100 -0
- package/docs/docs/cmd/spfx/project/project-permissions-grant.md +65 -0
- package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +2 -2
- package/docs/docs/cmd/spo/listitem/listitem-isrecord.md +2 -2
- package/docs/docs/cmd/spo/navigation/navigation-node-add.md +18 -3
- package/docs/docs/cmd/spo/navigation/navigation-node-list.md +30 -0
- package/docs/docs/cmd/spo/navigation/navigation-node-remove.md +1 -1
- package/docs/docs/cmd/spo/navigation/navigation-node-set.md +59 -0
- package/docs/docs/cmd/spo/web/web-set.md +9 -0
- package/package.json +1 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const path = require("path");
|
|
13
|
+
const fs = require("fs");
|
|
14
|
+
const Command_1 = require("../../../../Command");
|
|
15
|
+
const commands_1 = require("../../commands");
|
|
16
|
+
const base_project_command_1 = require("./base-project-command");
|
|
17
|
+
const SpoServicePrincipalGrantAddCommand = require("../../../spo/commands/serviceprincipal/serviceprincipal-grant-add");
|
|
18
|
+
const Cli_1 = require("../../../../cli/Cli");
|
|
19
|
+
class SpfxProjectPermissionSGrantCommand extends base_project_command_1.BaseProjectCommand {
|
|
20
|
+
get name() {
|
|
21
|
+
return commands_1.default.PROJECT_PERMISSIONS_GRANT;
|
|
22
|
+
}
|
|
23
|
+
get description() {
|
|
24
|
+
return 'Grant API permissions defined in the current SPFx project';
|
|
25
|
+
}
|
|
26
|
+
constructor() {
|
|
27
|
+
super();
|
|
28
|
+
}
|
|
29
|
+
commandAction(logger) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
this.projectRootPath = this.getProjectRoot(process.cwd());
|
|
32
|
+
if (this.projectRootPath === null) {
|
|
33
|
+
throw new Command_1.CommandError(`Couldn't find project root folder`, SpfxProjectPermissionSGrantCommand.ERROR_NO_PROJECT_ROOT_FOLDER);
|
|
34
|
+
}
|
|
35
|
+
if (this.debug) {
|
|
36
|
+
logger.logToStderr(`Granting API permissions defined in the current SPFx project`);
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const webApiPermissionsRequest = this.getWebApiPermissionRequest(path.join(this.projectRootPath, 'config', 'package-solution.json'));
|
|
40
|
+
for (const permission of webApiPermissionsRequest) {
|
|
41
|
+
const options = {
|
|
42
|
+
resource: permission.resource,
|
|
43
|
+
scope: permission.scope,
|
|
44
|
+
output: 'json',
|
|
45
|
+
debug: this.debug,
|
|
46
|
+
verbose: this.verbose
|
|
47
|
+
};
|
|
48
|
+
let output = null;
|
|
49
|
+
try {
|
|
50
|
+
output = yield Cli_1.Cli.executeCommandWithOutput(SpoServicePrincipalGrantAddCommand, { options: Object.assign(Object.assign({}, options), { _: [] }) });
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
if (err.error && err.error.message.indexOf('already exists') > -1) {
|
|
54
|
+
this.warn(logger, err.error.message);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const getGrantOutput = JSON.parse(output.stdout);
|
|
62
|
+
logger.log(getGrantOutput);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
throw new Command_1.CommandError(error);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
getWebApiPermissionRequest(filePath) {
|
|
71
|
+
if (!fs.existsSync(filePath)) {
|
|
72
|
+
throw (`The package-solution.json file could not be found`);
|
|
73
|
+
}
|
|
74
|
+
const existingContent = fs.readFileSync(filePath, 'utf-8');
|
|
75
|
+
const solutionContent = JSON.parse(existingContent);
|
|
76
|
+
return solutionContent.solution.webApiPermissionRequests;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
SpfxProjectPermissionSGrantCommand.ERROR_NO_PROJECT_ROOT_FOLDER = 1;
|
|
80
|
+
module.exports = new SpfxProjectPermissionSGrantCommand();
|
|
81
|
+
//# sourceMappingURL=project-permissions-grant.js.map
|
|
@@ -5,8 +5,9 @@ exports.default = {
|
|
|
5
5
|
DOCTOR: `${prefix} doctor`,
|
|
6
6
|
PACKAGE_GENERATE: `${prefix} package generate`,
|
|
7
7
|
PROJECT_DOCTOR: `${prefix} project doctor`,
|
|
8
|
-
PROJECT_UPGRADE: `${prefix} project upgrade`,
|
|
9
8
|
PROJECT_EXTERNALIZE: `${prefix} project externalize`,
|
|
10
|
-
|
|
9
|
+
PROJECT_PERMISSIONS_GRANT: `${prefix} project permissions grant`,
|
|
10
|
+
PROJECT_RENAME: `${prefix} project rename`,
|
|
11
|
+
PROJECT_UPGRADE: `${prefix} project upgrade`
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=commands.js.map
|
|
@@ -38,6 +38,7 @@ class SpoNavigationNodeAddCommand extends SpoCommand_1.default {
|
|
|
38
38
|
return ['url'];
|
|
39
39
|
}
|
|
40
40
|
commandAction(logger, args) {
|
|
41
|
+
var _a;
|
|
41
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
43
|
if (this.verbose) {
|
|
43
44
|
logger.logToStderr(`Adding navigation node...`);
|
|
@@ -51,12 +52,13 @@ class SpoNavigationNodeAddCommand extends SpoCommand_1.default {
|
|
|
51
52
|
accept: 'application/json;odata=nometadata',
|
|
52
53
|
'content-type': 'application/json;odata=nometadata'
|
|
53
54
|
},
|
|
55
|
+
responseType: 'json',
|
|
54
56
|
data: {
|
|
57
|
+
AudienceIds: (_a = args.options.audienceIds) === null || _a === void 0 ? void 0 : _a.split(','),
|
|
55
58
|
Title: args.options.title,
|
|
56
59
|
Url: args.options.url,
|
|
57
60
|
IsExternal: args.options.isExternal === true
|
|
58
|
-
}
|
|
59
|
-
responseType: 'json'
|
|
61
|
+
}
|
|
60
62
|
};
|
|
61
63
|
try {
|
|
62
64
|
const res = yield request_1.default.post(requestOptions);
|
|
@@ -73,7 +75,8 @@ _SpoNavigationNodeAddCommand_instances = new WeakSet(), _SpoNavigationNodeAddCom
|
|
|
73
75
|
Object.assign(this.telemetryProperties, {
|
|
74
76
|
isExternal: args.options.isExternal,
|
|
75
77
|
location: typeof args.options.location !== 'undefined',
|
|
76
|
-
parentNodeId: typeof args.options.parentNodeId !== 'undefined'
|
|
78
|
+
parentNodeId: typeof args.options.parentNodeId !== 'undefined',
|
|
79
|
+
audienceIds: typeof args.options.audienceIds !== 'undefined'
|
|
77
80
|
});
|
|
78
81
|
});
|
|
79
82
|
}, _SpoNavigationNodeAddCommand_initOptions = function _SpoNavigationNodeAddCommand_initOptions() {
|
|
@@ -90,6 +93,8 @@ _SpoNavigationNodeAddCommand_instances = new WeakSet(), _SpoNavigationNodeAddCom
|
|
|
90
93
|
option: '--parentNodeId [parentNodeId]'
|
|
91
94
|
}, {
|
|
92
95
|
option: '--isExternal'
|
|
96
|
+
}, {
|
|
97
|
+
option: '--audienceIds [audienceIds]'
|
|
93
98
|
});
|
|
94
99
|
}, _SpoNavigationNodeAddCommand_initValidators = function _SpoNavigationNodeAddCommand_initValidators() {
|
|
95
100
|
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -108,6 +113,15 @@ _SpoNavigationNodeAddCommand_instances = new WeakSet(), _SpoNavigationNodeAddCom
|
|
|
108
113
|
return `${args.options.location} is not a valid value for the location option. Allowed values are QuickLaunch|TopNavigationBar`;
|
|
109
114
|
}
|
|
110
115
|
}
|
|
116
|
+
if (args.options.audienceIds) {
|
|
117
|
+
const audienceIdsSplitted = args.options.audienceIds.split(',');
|
|
118
|
+
if (audienceIdsSplitted.length > 10) {
|
|
119
|
+
return 'The maximum amount of audienceIds per navigation node exceeded. The maximum amount of auciendeIds is 10.';
|
|
120
|
+
}
|
|
121
|
+
if (!validation_1.validation.isValidGuidArray(audienceIdsSplitted)) {
|
|
122
|
+
return 'The option audienceIds contains one or more invalid GUIDs';
|
|
123
|
+
}
|
|
124
|
+
}
|
|
111
125
|
return true;
|
|
112
126
|
}));
|
|
113
127
|
}, _SpoNavigationNodeAddCommand_initOptionSets = function _SpoNavigationNodeAddCommand_initOptionSets() {
|
|
@@ -26,6 +26,9 @@ class SpoNavigationNodeListCommand extends SpoCommand_1.default {
|
|
|
26
26
|
get description() {
|
|
27
27
|
return 'Lists nodes from the specified site navigation';
|
|
28
28
|
}
|
|
29
|
+
defaultProperties() {
|
|
30
|
+
return ['Id', 'Title', 'Url'];
|
|
31
|
+
}
|
|
29
32
|
constructor() {
|
|
30
33
|
super();
|
|
31
34
|
_SpoNavigationNodeListCommand_instances.add(this);
|
|
@@ -40,13 +43,7 @@ class SpoNavigationNodeListCommand extends SpoCommand_1.default {
|
|
|
40
43
|
}
|
|
41
44
|
try {
|
|
42
45
|
const res = yield odata_1.odata.getAllItems(`${args.options.webUrl}/_api/web/navigation/${args.options.location.toLowerCase()}`);
|
|
43
|
-
logger.log(res
|
|
44
|
-
return {
|
|
45
|
-
Id: n.Id,
|
|
46
|
-
Title: n.Title,
|
|
47
|
-
Url: n.Url
|
|
48
|
-
};
|
|
49
|
-
}));
|
|
46
|
+
logger.log(res);
|
|
50
47
|
}
|
|
51
48
|
catch (err) {
|
|
52
49
|
this.handleRejectedODataJsonPromise(err);
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
13
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
14
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
+
};
|
|
16
|
+
var _SpoNavigationNodeSetCommand_instances, _SpoNavigationNodeSetCommand_initTelemetry, _SpoNavigationNodeSetCommand_initTypes, _SpoNavigationNodeSetCommand_initOptions, _SpoNavigationNodeSetCommand_initValidators;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const request_1 = require("../../../../request");
|
|
19
|
+
const validation_1 = require("../../../../utils/validation");
|
|
20
|
+
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
21
|
+
const commands_1 = require("../../commands");
|
|
22
|
+
class SpoNavigationNodeSetCommand extends SpoCommand_1.default {
|
|
23
|
+
get name() {
|
|
24
|
+
return commands_1.default.NAVIGATION_NODE_SET;
|
|
25
|
+
}
|
|
26
|
+
get description() {
|
|
27
|
+
return 'Adds a navigation node to the specified site navigation';
|
|
28
|
+
}
|
|
29
|
+
constructor() {
|
|
30
|
+
super();
|
|
31
|
+
_SpoNavigationNodeSetCommand_instances.add(this);
|
|
32
|
+
__classPrivateFieldGet(this, _SpoNavigationNodeSetCommand_instances, "m", _SpoNavigationNodeSetCommand_initTelemetry).call(this);
|
|
33
|
+
__classPrivateFieldGet(this, _SpoNavigationNodeSetCommand_instances, "m", _SpoNavigationNodeSetCommand_initOptions).call(this);
|
|
34
|
+
__classPrivateFieldGet(this, _SpoNavigationNodeSetCommand_instances, "m", _SpoNavigationNodeSetCommand_initTypes).call(this);
|
|
35
|
+
__classPrivateFieldGet(this, _SpoNavigationNodeSetCommand_instances, "m", _SpoNavigationNodeSetCommand_initValidators).call(this);
|
|
36
|
+
}
|
|
37
|
+
commandAction(logger, args) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
try {
|
|
40
|
+
if (this.verbose) {
|
|
41
|
+
logger.logToStderr(`Setting navigation node...`);
|
|
42
|
+
}
|
|
43
|
+
const requestBody = {
|
|
44
|
+
Title: args.options.title,
|
|
45
|
+
IsExternal: args.options.isExternal,
|
|
46
|
+
Url: args.options.url
|
|
47
|
+
};
|
|
48
|
+
if (args.options.audienceIds !== undefined) {
|
|
49
|
+
requestBody.AudienceIds = args.options.audienceIds === '' ? [] : args.options.audienceIds.split(',');
|
|
50
|
+
}
|
|
51
|
+
const requestOptions = {
|
|
52
|
+
url: `${args.options.webUrl}/_api/web/navigation/GetNodeById(${args.options.id})`,
|
|
53
|
+
headers: {
|
|
54
|
+
accept: 'application/json;odata=nometadata',
|
|
55
|
+
'content-type': 'application/json;odata=nometadata'
|
|
56
|
+
},
|
|
57
|
+
data: requestBody,
|
|
58
|
+
responseType: 'json'
|
|
59
|
+
};
|
|
60
|
+
const response = yield request_1.default.patch(requestOptions);
|
|
61
|
+
if (response['odata.null'] === true) {
|
|
62
|
+
throw `Navigation node does not exist.`;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
this.handleRejectedODataJsonPromise(err);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
_SpoNavigationNodeSetCommand_instances = new WeakSet(), _SpoNavigationNodeSetCommand_initTelemetry = function _SpoNavigationNodeSetCommand_initTelemetry() {
|
|
72
|
+
this.telemetry.push((args) => {
|
|
73
|
+
Object.assign(this.telemetryProperties, {
|
|
74
|
+
title: typeof args.options.title !== 'undefined',
|
|
75
|
+
url: typeof args.options.url !== 'undefined',
|
|
76
|
+
isExternal: typeof args.options.isExternal !== 'undefined',
|
|
77
|
+
audienceIds: typeof args.options.audienceIds !== 'undefined'
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}, _SpoNavigationNodeSetCommand_initTypes = function _SpoNavigationNodeSetCommand_initTypes() {
|
|
81
|
+
this.types.boolean.push('isExternal');
|
|
82
|
+
}, _SpoNavigationNodeSetCommand_initOptions = function _SpoNavigationNodeSetCommand_initOptions() {
|
|
83
|
+
this.options.unshift({
|
|
84
|
+
option: '-u, --webUrl <webUrl>'
|
|
85
|
+
}, {
|
|
86
|
+
option: '--id <id>'
|
|
87
|
+
}, {
|
|
88
|
+
option: '--title [title]'
|
|
89
|
+
}, {
|
|
90
|
+
option: '--url [url]'
|
|
91
|
+
}, {
|
|
92
|
+
option: '--audienceIds [audienceIds]'
|
|
93
|
+
}, {
|
|
94
|
+
option: '--isExternal [isExternal]'
|
|
95
|
+
});
|
|
96
|
+
}, _SpoNavigationNodeSetCommand_initValidators = function _SpoNavigationNodeSetCommand_initValidators() {
|
|
97
|
+
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
|
|
99
|
+
if (isValidSharePointUrl !== true) {
|
|
100
|
+
return isValidSharePointUrl;
|
|
101
|
+
}
|
|
102
|
+
if (args.options.audienceIds === undefined && !args.options.url && args.options.isExternal === undefined && !args.options.title) {
|
|
103
|
+
return `Please specify atleast one property to update.`;
|
|
104
|
+
}
|
|
105
|
+
if (args.options.audienceIds) {
|
|
106
|
+
const audienceIdsSplitted = args.options.audienceIds.split(',');
|
|
107
|
+
if (audienceIdsSplitted.length > 10) {
|
|
108
|
+
return 'The maximum amount of audienceIds per navigation node exceeded. The maximum amount of audienceIds is 10.';
|
|
109
|
+
}
|
|
110
|
+
if (!validation_1.validation.isValidGuidArray(audienceIdsSplitted)) {
|
|
111
|
+
return `The option audienceIds contains one or more invalid GUIDs`;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return true;
|
|
115
|
+
}));
|
|
116
|
+
};
|
|
117
|
+
module.exports = new SpoNavigationNodeSetCommand();
|
|
118
|
+
//# sourceMappingURL=navigation-node-set.js.map
|
|
@@ -17,6 +17,7 @@ var _SpoSiteAppPermissionAddCommand_instances, _SpoSiteAppPermissionAddCommand_i
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const request_1 = require("../../../../request");
|
|
19
19
|
const formatting_1 = require("../../../../utils/formatting");
|
|
20
|
+
const spo_1 = require("../../../../utils/spo");
|
|
20
21
|
const validation_1 = require("../../../../utils/validation");
|
|
21
22
|
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
22
23
|
const commands_1 = require("../../commands");
|
|
@@ -37,19 +38,6 @@ class SpoSiteAppPermissionAddCommand extends GraphCommand_1.default {
|
|
|
37
38
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionAddCommand_instances, "m", _SpoSiteAppPermissionAddCommand_initValidators).call(this);
|
|
38
39
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionAddCommand_instances, "m", _SpoSiteAppPermissionAddCommand_initOptionSets).call(this);
|
|
39
40
|
}
|
|
40
|
-
getSpoSiteId(args) {
|
|
41
|
-
const url = new URL(args.options.siteUrl);
|
|
42
|
-
const requestOptions = {
|
|
43
|
-
url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
|
|
44
|
-
headers: {
|
|
45
|
-
accept: 'application/json;odata.metadata=none'
|
|
46
|
-
},
|
|
47
|
-
responseType: 'json'
|
|
48
|
-
};
|
|
49
|
-
return request_1.default
|
|
50
|
-
.get(requestOptions)
|
|
51
|
-
.then((site) => site.id);
|
|
52
|
-
}
|
|
53
41
|
getAppInfo(args) {
|
|
54
42
|
if (args.options.appId && args.options.appDisplayName) {
|
|
55
43
|
return Promise.resolve({
|
|
@@ -136,7 +124,7 @@ class SpoSiteAppPermissionAddCommand extends GraphCommand_1.default {
|
|
|
136
124
|
commandAction(logger, args) {
|
|
137
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
138
126
|
try {
|
|
139
|
-
this.siteId = yield
|
|
127
|
+
this.siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
|
|
140
128
|
const appInfo = yield this.getAppInfo(args);
|
|
141
129
|
let permission = yield this.addPermissions(args, appInfo);
|
|
142
130
|
if (this.roleNeedsElevation(args.options.permission)) {
|
|
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
16
16
|
var _SpoSiteAppPermissionGetCommand_instances, _SpoSiteAppPermissionGetCommand_initOptions, _SpoSiteAppPermissionGetCommand_initValidators;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const request_1 = require("../../../../request");
|
|
19
|
+
const spo_1 = require("../../../../utils/spo");
|
|
19
20
|
const validation_1 = require("../../../../utils/validation");
|
|
20
21
|
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
21
22
|
const commands_1 = require("../../commands");
|
|
@@ -32,19 +33,6 @@ class SpoSiteAppPermissionGetCommand extends GraphCommand_1.default {
|
|
|
32
33
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionGetCommand_instances, "m", _SpoSiteAppPermissionGetCommand_initOptions).call(this);
|
|
33
34
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionGetCommand_instances, "m", _SpoSiteAppPermissionGetCommand_initValidators).call(this);
|
|
34
35
|
}
|
|
35
|
-
getSpoSiteId(args) {
|
|
36
|
-
const url = new URL(args.options.siteUrl);
|
|
37
|
-
const requestOptions = {
|
|
38
|
-
url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
|
|
39
|
-
headers: {
|
|
40
|
-
accept: 'application/json;odata.metadata=none'
|
|
41
|
-
},
|
|
42
|
-
responseType: 'json'
|
|
43
|
-
};
|
|
44
|
-
return request_1.default
|
|
45
|
-
.get(requestOptions)
|
|
46
|
-
.then((site) => site.id);
|
|
47
|
-
}
|
|
48
36
|
getApplicationPermission(args, siteId) {
|
|
49
37
|
const requestOptions = {
|
|
50
38
|
url: `${this.resource}/v1.0/sites/${siteId}/permissions/${args.options.id}`,
|
|
@@ -58,7 +46,7 @@ class SpoSiteAppPermissionGetCommand extends GraphCommand_1.default {
|
|
|
58
46
|
commandAction(logger, args) {
|
|
59
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
48
|
try {
|
|
61
|
-
const siteId = yield
|
|
49
|
+
const siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
|
|
62
50
|
const permissionObject = yield this.getApplicationPermission(args, siteId);
|
|
63
51
|
const transposed = [];
|
|
64
52
|
permissionObject.grantedToIdentities.forEach((permissionEntity) => {
|
|
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
16
16
|
var _SpoSiteAppPermissionListCommand_instances, _SpoSiteAppPermissionListCommand_initTelemetry, _SpoSiteAppPermissionListCommand_initOptions, _SpoSiteAppPermissionListCommand_initValidators;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const request_1 = require("../../../../request");
|
|
19
|
+
const spo_1 = require("../../../../utils/spo");
|
|
19
20
|
const validation_1 = require("../../../../utils/validation");
|
|
20
21
|
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
21
22
|
const commands_1 = require("../../commands");
|
|
@@ -34,19 +35,6 @@ class SpoSiteAppPermissionListCommand extends GraphCommand_1.default {
|
|
|
34
35
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionListCommand_instances, "m", _SpoSiteAppPermissionListCommand_initOptions).call(this);
|
|
35
36
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionListCommand_instances, "m", _SpoSiteAppPermissionListCommand_initValidators).call(this);
|
|
36
37
|
}
|
|
37
|
-
getSpoSiteId(args) {
|
|
38
|
-
const url = new URL(args.options.siteUrl);
|
|
39
|
-
const requestOptions = {
|
|
40
|
-
url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
|
|
41
|
-
headers: {
|
|
42
|
-
accept: 'application/json;odata.metadata=none'
|
|
43
|
-
},
|
|
44
|
-
responseType: 'json'
|
|
45
|
-
};
|
|
46
|
-
return request_1.default
|
|
47
|
-
.get(requestOptions)
|
|
48
|
-
.then((site) => site.id);
|
|
49
|
-
}
|
|
50
38
|
getFilteredPermissions(args, permissions) {
|
|
51
39
|
let filterProperty = 'displayName';
|
|
52
40
|
let filterValue = args.options.appDisplayName;
|
|
@@ -95,7 +83,7 @@ class SpoSiteAppPermissionListCommand extends GraphCommand_1.default {
|
|
|
95
83
|
commandAction(logger, args) {
|
|
96
84
|
return __awaiter(this, void 0, void 0, function* () {
|
|
97
85
|
try {
|
|
98
|
-
this.siteId = yield
|
|
86
|
+
this.siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
|
|
99
87
|
const permRes = yield this.getPermissions();
|
|
100
88
|
let permissions = permRes.value;
|
|
101
89
|
if (args.options.appId || args.options.appDisplayName) {
|
|
@@ -17,6 +17,7 @@ var _SpoSiteAppPermissionRemoveCommand_instances, _SpoSiteAppPermissionRemoveCom
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const Cli_1 = require("../../../../cli/Cli");
|
|
19
19
|
const request_1 = require("../../../../request");
|
|
20
|
+
const spo_1 = require("../../../../utils/spo");
|
|
20
21
|
const validation_1 = require("../../../../utils/validation");
|
|
21
22
|
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
22
23
|
const commands_1 = require("../../commands");
|
|
@@ -36,19 +37,6 @@ class SpoSiteAppPermissionRemoveCommand extends GraphCommand_1.default {
|
|
|
36
37
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionRemoveCommand_instances, "m", _SpoSiteAppPermissionRemoveCommand_initValidators).call(this);
|
|
37
38
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionRemoveCommand_instances, "m", _SpoSiteAppPermissionRemoveCommand_initOptionSets).call(this);
|
|
38
39
|
}
|
|
39
|
-
getSpoSiteId(args) {
|
|
40
|
-
const url = new URL(args.options.siteUrl);
|
|
41
|
-
const requestOptions = {
|
|
42
|
-
url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
|
|
43
|
-
headers: {
|
|
44
|
-
accept: 'application/json;odata.metadata=none'
|
|
45
|
-
},
|
|
46
|
-
responseType: 'json'
|
|
47
|
-
};
|
|
48
|
-
return request_1.default
|
|
49
|
-
.get(requestOptions)
|
|
50
|
-
.then((site) => site.id);
|
|
51
|
-
}
|
|
52
40
|
getPermissions() {
|
|
53
41
|
const requestOptions = {
|
|
54
42
|
url: `${this.resource}/v1.0/sites/${this.siteId}/permissions`,
|
|
@@ -98,7 +86,7 @@ class SpoSiteAppPermissionRemoveCommand extends GraphCommand_1.default {
|
|
|
98
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
99
87
|
const removeSiteAppPermission = () => __awaiter(this, void 0, void 0, function* () {
|
|
100
88
|
try {
|
|
101
|
-
this.siteId = yield
|
|
89
|
+
this.siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
|
|
102
90
|
const permissionIdsToRemove = yield this.getPermissionIds(args);
|
|
103
91
|
const tasks = [];
|
|
104
92
|
for (const permissionId of permissionIdsToRemove) {
|
|
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
16
16
|
var _SpoSiteAppPermissionSetCommand_instances, _SpoSiteAppPermissionSetCommand_initTelemetry, _SpoSiteAppPermissionSetCommand_initOptions, _SpoSiteAppPermissionSetCommand_initValidators, _SpoSiteAppPermissionSetCommand_initOptionSets;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const request_1 = require("../../../../request");
|
|
19
|
+
const spo_1 = require("../../../../utils/spo");
|
|
19
20
|
const validation_1 = require("../../../../utils/validation");
|
|
20
21
|
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
21
22
|
const commands_1 = require("../../commands");
|
|
@@ -36,19 +37,6 @@ class SpoSiteAppPermissionSetCommand extends GraphCommand_1.default {
|
|
|
36
37
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionSetCommand_instances, "m", _SpoSiteAppPermissionSetCommand_initValidators).call(this);
|
|
37
38
|
__classPrivateFieldGet(this, _SpoSiteAppPermissionSetCommand_instances, "m", _SpoSiteAppPermissionSetCommand_initOptionSets).call(this);
|
|
38
39
|
}
|
|
39
|
-
getSpoSiteId(args) {
|
|
40
|
-
const url = new URL(args.options.siteUrl);
|
|
41
|
-
const siteRequestOptions = {
|
|
42
|
-
url: `${this.resource}/v1.0/sites/${url.hostname}:${url.pathname}`,
|
|
43
|
-
headers: {
|
|
44
|
-
accept: 'application/json;odata.metadata=none'
|
|
45
|
-
},
|
|
46
|
-
responseType: 'json'
|
|
47
|
-
};
|
|
48
|
-
return request_1.default
|
|
49
|
-
.get(siteRequestOptions)
|
|
50
|
-
.then((site) => site.id);
|
|
51
|
-
}
|
|
52
40
|
getFilteredPermissions(args, permissions) {
|
|
53
41
|
let filterProperty = 'displayName';
|
|
54
42
|
let filterValue = args.options.appDisplayName;
|
|
@@ -85,7 +73,7 @@ class SpoSiteAppPermissionSetCommand extends GraphCommand_1.default {
|
|
|
85
73
|
commandAction(logger, args) {
|
|
86
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87
75
|
try {
|
|
88
|
-
this.siteId = yield
|
|
76
|
+
this.siteId = yield spo_1.spo.getSpoGraphSiteId(args.options.siteUrl);
|
|
89
77
|
const sitePermissionId = yield this.getPermission(args);
|
|
90
78
|
const requestOptions = {
|
|
91
79
|
url: `${this.resource}/v1.0/sites/${this.siteId}/permissions/${sitePermissionId}`,
|
|
@@ -62,6 +62,9 @@ class SpoWebSetCommand extends SpoCommand_1.default {
|
|
|
62
62
|
if (typeof args.options.footerEnabled !== 'undefined') {
|
|
63
63
|
payload.FooterEnabled = args.options.footerEnabled;
|
|
64
64
|
}
|
|
65
|
+
if (typeof args.options.navAudienceTargetingEnabled !== 'undefined') {
|
|
66
|
+
payload.NavAudienceTargetingEnabled = args.options.navAudienceTargetingEnabled;
|
|
67
|
+
}
|
|
65
68
|
if (typeof args.options.searchScope !== 'undefined') {
|
|
66
69
|
const searchScope = args.options.searchScope.toLowerCase();
|
|
67
70
|
payload.SearchScope = SpoWebSetCommand.searchScopeOptions.indexOf(searchScope);
|
|
@@ -96,11 +99,12 @@ _SpoWebSetCommand_instances = new WeakSet(), _SpoWebSetCommand_initTelemetry = f
|
|
|
96
99
|
description: typeof args.options.description !== 'undefined',
|
|
97
100
|
headerEmphasis: typeof args.options.headerEmphasis !== 'undefined',
|
|
98
101
|
headerLayout: typeof args.options.headerLayout !== 'undefined',
|
|
99
|
-
megaMenuEnabled: args.options.megaMenuEnabled,
|
|
102
|
+
megaMenuEnabled: typeof args.options.megaMenuEnabled !== 'undefined',
|
|
100
103
|
siteLogoUrl: typeof args.options.siteLogoUrl !== 'undefined',
|
|
101
104
|
title: typeof args.options.title !== 'undefined',
|
|
102
|
-
quickLaunchEnabled: args.options.quickLaunchEnabled,
|
|
103
|
-
footerEnabled: args.options.footerEnabled,
|
|
105
|
+
quickLaunchEnabled: typeof args.options.quickLaunchEnabled !== 'undefined',
|
|
106
|
+
footerEnabled: typeof args.options.footerEnabled !== 'undefined',
|
|
107
|
+
navAudienceTargetingEnabled: typeof args.options.navAudienceTargetingEnabled !== 'undefined',
|
|
104
108
|
searchScope: args.options.searchScope !== 'undefined'
|
|
105
109
|
});
|
|
106
110
|
this.trackUnknownOptions(this.telemetryProperties, args.options);
|
|
@@ -129,12 +133,15 @@ _SpoWebSetCommand_instances = new WeakSet(), _SpoWebSetCommand_initTelemetry = f
|
|
|
129
133
|
}, {
|
|
130
134
|
option: '--footerEnabled [footerEnabled]',
|
|
131
135
|
autocomplete: ['true', 'false']
|
|
136
|
+
}, {
|
|
137
|
+
option: '--navAudienceTargetingEnabled [navAudienceTargetingEnabled]',
|
|
138
|
+
autocomplete: ['true', 'false']
|
|
132
139
|
}, {
|
|
133
140
|
option: '--searchScope [searchScope]',
|
|
134
141
|
autocomplete: SpoWebSetCommand.searchScopeOptions
|
|
135
142
|
});
|
|
136
143
|
}, _SpoWebSetCommand_initTypes = function _SpoWebSetCommand_initTypes() {
|
|
137
|
-
this.types.boolean.push('megaMenuEnabled', 'footerEnabled', 'quickLaunchEnabled');
|
|
144
|
+
this.types.boolean.push('megaMenuEnabled', 'footerEnabled', 'quickLaunchEnabled', 'navAudienceTargetingEnabled');
|
|
138
145
|
}, _SpoWebSetCommand_initValidators = function _SpoWebSetCommand_initValidators() {
|
|
139
146
|
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
140
147
|
const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.url);
|
|
@@ -167,6 +167,7 @@ exports.default = {
|
|
|
167
167
|
NAVIGATION_NODE_ADD: `${prefix} navigation node add`,
|
|
168
168
|
NAVIGATION_NODE_LIST: `${prefix} navigation node list`,
|
|
169
169
|
NAVIGATION_NODE_REMOVE: `${prefix} navigation node remove`,
|
|
170
|
+
NAVIGATION_NODE_SET: `${prefix} navigation node set`,
|
|
170
171
|
ORGASSETSLIBRARY_ADD: `${prefix} orgassetslibrary add`,
|
|
171
172
|
ORGASSETSLIBRARY_LIST: `${prefix} orgassetslibrary list`,
|
|
172
173
|
ORGASSETSLIBRARY_REMOVE: `${prefix} orgassetslibrary remove`,
|
|
@@ -41,14 +41,14 @@ class TeamsChatListCommand extends GraphCommand_1.default {
|
|
|
41
41
|
}
|
|
42
42
|
commandAction(logger, args) {
|
|
43
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
const
|
|
45
|
-
if (
|
|
44
|
+
const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
|
|
45
|
+
if (isAppOnlyAccessToken && !args.options.userId && !args.options.userName) {
|
|
46
46
|
throw `The option 'userId' or 'userName' is required when obtaining chats using app only permissions`;
|
|
47
47
|
}
|
|
48
|
-
else if (!
|
|
48
|
+
else if (!isAppOnlyAccessToken && (args.options.userId || args.options.userName)) {
|
|
49
49
|
throw `The options 'userId' or 'userName' cannot be used when obtaining chats using delegated permissions`;
|
|
50
50
|
}
|
|
51
|
-
let requestUrl = `${this.resource}/v1.0/${!
|
|
51
|
+
let requestUrl = `${this.resource}/v1.0/${!isAppOnlyAccessToken ? 'me' : `users/${args.options.userId || args.options.userName}`}/chats`;
|
|
52
52
|
if (args.options.type) {
|
|
53
53
|
requestUrl += `?$filter=chatType eq '${args.options.type}'`;
|
|
54
54
|
}
|
|
@@ -42,19 +42,19 @@ class TeamsMeetingAttendancereportListCommand extends GraphCommand_1.default {
|
|
|
42
42
|
}
|
|
43
43
|
commandAction(logger, args) {
|
|
44
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
const
|
|
46
|
-
if (
|
|
45
|
+
const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
|
|
46
|
+
if (isAppOnlyAccessToken && !args.options.userId && !args.options.userName && !args.options.email) {
|
|
47
47
|
this.handleError(`The option 'userId', 'userName' or 'email' is required when retrieving meeting attendance report using app only permissions`);
|
|
48
48
|
}
|
|
49
|
-
else if (!
|
|
49
|
+
else if (!isAppOnlyAccessToken && (args.options.userId || args.options.userName || args.options.email)) {
|
|
50
50
|
this.handleError(`The options 'userId', 'userName' and 'email' cannot be used when retrieving meeting attendance reports using delegated permissions`);
|
|
51
51
|
}
|
|
52
52
|
try {
|
|
53
53
|
if (this.verbose) {
|
|
54
|
-
logger.logToStderr(`Retrieving attendance report for ${
|
|
54
|
+
logger.logToStderr(`Retrieving attendance report for ${isAppOnlyAccessToken ? 'specific user' : 'currently logged in user'}`);
|
|
55
55
|
}
|
|
56
56
|
let requestUrl = `${this.resource}/v1.0/`;
|
|
57
|
-
if (
|
|
57
|
+
if (isAppOnlyAccessToken) {
|
|
58
58
|
requestUrl += 'users/';
|
|
59
59
|
if (args.options.userId) {
|
|
60
60
|
requestUrl += args.options.userId;
|
|
@@ -53,23 +53,23 @@ class TeamsMeetingGetCommand extends GraphCommand_1.default {
|
|
|
53
53
|
}
|
|
54
54
|
commandAction(logger, args) {
|
|
55
55
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
const
|
|
57
|
-
if (
|
|
56
|
+
const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
|
|
57
|
+
if (isAppOnlyAccessToken) {
|
|
58
58
|
if (!args.options.userId && !args.options.userName && !args.options.email) {
|
|
59
59
|
this.handleError(`The option 'userId', 'userName' or 'email' is required when retrieving meetings using app only permissions`);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
else {
|
|
63
|
-
if (!
|
|
63
|
+
if (!isAppOnlyAccessToken && (args.options.userId || args.options.userName || args.options.email)) {
|
|
64
64
|
this.handleError(`The options 'userId', 'userName' and 'email' cannot be used when retrieving meetings using delegated permissions`);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
if (this.verbose) {
|
|
68
|
-
logger.logToStderr(`Retrieving meeting for ${
|
|
68
|
+
logger.logToStderr(`Retrieving meeting for ${isAppOnlyAccessToken ? 'specific user' : 'currently logged in user'}`);
|
|
69
69
|
}
|
|
70
70
|
try {
|
|
71
71
|
let requestUrl = `${this.resource}/v1.0/`;
|
|
72
|
-
if (
|
|
72
|
+
if (isAppOnlyAccessToken) {
|
|
73
73
|
requestUrl += 'users/';
|
|
74
74
|
if (args.options.userId) {
|
|
75
75
|
requestUrl += args.options.userId;
|
|
@@ -22,6 +22,7 @@ const commands_1 = require("../../commands");
|
|
|
22
22
|
const odata_1 = require("../../../../utils/odata");
|
|
23
23
|
const validation_1 = require("../../../../utils/validation");
|
|
24
24
|
const AadUserGetCommand = require("../../../aad/commands/user/user-get");
|
|
25
|
+
const accessToken_1 = require("../../../../utils/accessToken");
|
|
25
26
|
class TeamsMeetingListCommand extends GraphCommand_1.default {
|
|
26
27
|
get name() {
|
|
27
28
|
return commands_1.default.MEETING_LIST;
|
|
@@ -42,12 +43,12 @@ class TeamsMeetingListCommand extends GraphCommand_1.default {
|
|
|
42
43
|
commandAction(logger, args) {
|
|
43
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
45
|
try {
|
|
45
|
-
const
|
|
46
|
+
const isAppOnlyAccessToken = accessToken_1.accessToken.isAppOnlyAccessToken(Auth_1.default.service.accessTokens[this.resource].accessToken);
|
|
46
47
|
if (this.verbose) {
|
|
47
|
-
logger.logToStderr(`Retrieving meetings for ${
|
|
48
|
+
logger.logToStderr(`Retrieving meetings for ${isAppOnlyAccessToken ? 'specific user' : 'currently logged in user'}`);
|
|
48
49
|
}
|
|
49
50
|
let requestUrl = `${this.resource}/v1.0/`;
|
|
50
|
-
if (
|
|
51
|
+
if (isAppOnlyAccessToken) {
|
|
51
52
|
if (!args.options.userId && !args.options.userName && !args.options.email) {
|
|
52
53
|
throw `The option 'userId', 'userName' or 'email' is required when retrieving meetings using app only permissions`;
|
|
53
54
|
}
|