@pnp/cli-microsoft365 7.0.0-beta.c2db9df → 7.0.0-beta.e15bb2d
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/m365/aad/commands/app/app-set.js +4 -4
- package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +4 -4
- package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +4 -4
- package/dist/m365/aad/commands/group/group-remove.js +98 -0
- package/dist/m365/aad/commands/m365group/m365group-add.js +9 -3
- package/dist/m365/aad/commands.js +1 -0
- package/dist/m365/graph/commands/subscription/subscription-add.js +5 -5
- package/dist/m365/planner/commands/bucket/bucket-add.js +4 -1
- package/dist/m365/planner/commands/bucket/bucket-get.js +4 -1
- package/dist/m365/planner/commands/bucket/bucket-list.js +4 -1
- package/dist/m365/planner/commands/bucket/bucket-remove.js +4 -1
- package/dist/m365/planner/commands/bucket/bucket-set.js +4 -1
- package/dist/m365/planner/commands/plan/plan-add.js +4 -1
- package/dist/m365/planner/commands/plan/plan-get.js +4 -1
- package/dist/m365/planner/commands/plan/plan-list.js +4 -1
- package/dist/m365/planner/commands/plan/plan-remove.js +4 -1
- package/dist/m365/planner/commands/plan/plan-set.js +4 -1
- package/dist/m365/planner/commands/roster/roster-get.js +4 -1
- package/dist/m365/planner/commands/roster/roster-member-add.js +4 -1
- package/dist/m365/planner/commands/roster/roster-member-get.js +4 -1
- package/dist/m365/planner/commands/roster/roster-member-list.js +4 -1
- package/dist/m365/planner/commands/roster/roster-member-remove.js +4 -1
- package/dist/m365/planner/commands/roster/roster-plan-list.js +4 -1
- package/dist/m365/planner/commands/roster/roster-remove.js +4 -1
- package/dist/m365/planner/commands/task/task-add.js +4 -1
- package/dist/m365/planner/commands/task/task-checklistitem-add.js +4 -1
- package/dist/m365/planner/commands/task/task-checklistitem-list.js +4 -1
- package/dist/m365/planner/commands/task/task-checklistitem-remove.js +4 -1
- package/dist/m365/planner/commands/task/task-get.js +4 -1
- package/dist/m365/planner/commands/task/task-list.js +4 -1
- package/dist/m365/planner/commands/task/task-reference-add.js +4 -1
- package/dist/m365/planner/commands/task/task-reference-list.js +4 -1
- package/dist/m365/planner/commands/task/task-reference-remove.js +4 -1
- package/dist/m365/planner/commands/task/task-remove.js +4 -1
- package/dist/m365/planner/commands/task/task-set.js +4 -1
- package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.18.0-rc.1.js → doctor-1.18.0.js} +1 -1
- package/dist/m365/spfx/commands/project/project-doctor.js +1 -1
- package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.18.0-rc.1.js → upgrade-1.18.0.js} +26 -26
- package/dist/m365/spfx/commands/project/project-upgrade.js +13 -15
- package/dist/m365/spfx/commands/spfx-doctor.js +1 -1
- package/dist/m365/spo/commands/file/file-get.js +2 -2
- package/dist/m365/spo/commands/file/file-remove.js +2 -2
- package/dist/m365/spo/commands/file/file-version-clear.js +2 -2
- package/dist/m365/spo/commands/file/file-version-get.js +2 -2
- package/dist/m365/spo/commands/file/file-version-list.js +2 -2
- package/dist/m365/spo/commands/file/file-version-remove.js +2 -2
- package/dist/m365/spo/commands/file/file-version-restore.js +2 -2
- package/dist/m365/spo/commands/group/group-member-add.js +24 -24
- package/dist/m365/spo/commands/page/page-set.js +13 -2
- package/dist/m365/spo/commands/site/site-commsite-enable.js +34 -5
- package/dist/m365/teams/commands/app/app-remove.js +49 -15
- package/dist/m365/teams/commands/channel/channel-member-add.js +8 -8
- package/docs/docs/cmd/aad/app/app-set.mdx +15 -15
- package/docs/docs/cmd/aad/approleassignment/approleassignment-add.mdx +9 -9
- package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.mdx +10 -10
- package/docs/docs/cmd/aad/group/group-remove.mdx +44 -0
- package/docs/docs/cmd/aad/m365group/m365group-add.mdx +13 -3
- package/docs/docs/cmd/graph/subscription/subscription-add.mdx +10 -10
- package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-get.mdx +2 -2
- package/docs/docs/cmd/spo/file/file-remove.mdx +2 -2
- package/docs/docs/cmd/spo/file/file-version-clear.mdx +2 -2
- package/docs/docs/cmd/spo/file/file-version-get.mdx +2 -2
- package/docs/docs/cmd/spo/file/file-version-list.mdx +2 -2
- package/docs/docs/cmd/spo/file/file-version-remove.mdx +2 -2
- package/docs/docs/cmd/spo/file/file-version-restore.mdx +2 -2
- package/docs/docs/cmd/spo/group/group-member-add.mdx +27 -27
- package/docs/docs/cmd/spo/list/list-contenttype-remove.mdx +1 -1
- package/docs/docs/cmd/spo/page/page-set.mdx +23 -0
- package/docs/docs/cmd/spo/site/site-commsite-enable.mdx +11 -2
- package/docs/docs/cmd/teams/app/app-remove.mdx +9 -6
- package/docs/docs/cmd/teams/channel/channel-member-add.mdx +4 -4
- package/package.json +2 -1
|
@@ -79,9 +79,9 @@ _SpoFileVersionClearCommand_instances = new WeakSet(), _SpoFileVersionClearComma
|
|
|
79
79
|
});
|
|
80
80
|
}, _SpoFileVersionClearCommand_initOptions = function _SpoFileVersionClearCommand_initOptions() {
|
|
81
81
|
this.options.unshift({
|
|
82
|
-
option: '-
|
|
82
|
+
option: '-u, --webUrl <webUrl>'
|
|
83
83
|
}, {
|
|
84
|
-
option: '
|
|
84
|
+
option: '--fileUrl [fileUrl]'
|
|
85
85
|
}, {
|
|
86
86
|
option: '-i, --fileId [fileId]'
|
|
87
87
|
}, {
|
|
@@ -67,11 +67,11 @@ _SpoFileVersionGetCommand_instances = new WeakSet(), _SpoFileVersionGetCommand_i
|
|
|
67
67
|
});
|
|
68
68
|
}, _SpoFileVersionGetCommand_initOptions = function _SpoFileVersionGetCommand_initOptions() {
|
|
69
69
|
this.options.unshift({
|
|
70
|
-
option: '-
|
|
70
|
+
option: '-u, --webUrl <webUrl>'
|
|
71
71
|
}, {
|
|
72
72
|
option: '--label <label>'
|
|
73
73
|
}, {
|
|
74
|
-
option: '
|
|
74
|
+
option: '--fileUrl [fileUrl]'
|
|
75
75
|
}, {
|
|
76
76
|
option: '-i, --fileId [fileId]'
|
|
77
77
|
});
|
|
@@ -59,9 +59,9 @@ _SpoFileVersionListCommand_instances = new WeakSet(), _SpoFileVersionListCommand
|
|
|
59
59
|
});
|
|
60
60
|
}, _SpoFileVersionListCommand_initOptions = function _SpoFileVersionListCommand_initOptions() {
|
|
61
61
|
this.options.unshift({
|
|
62
|
-
option: '-
|
|
62
|
+
option: '-u, --webUrl <webUrl>'
|
|
63
63
|
}, {
|
|
64
|
-
option: '
|
|
64
|
+
option: '--fileUrl [fileUrl]'
|
|
65
65
|
}, {
|
|
66
66
|
option: '-i, --fileId [fileId]'
|
|
67
67
|
});
|
|
@@ -80,11 +80,11 @@ _SpoFileVersionRemoveCommand_instances = new WeakSet(), _SpoFileVersionRemoveCom
|
|
|
80
80
|
});
|
|
81
81
|
}, _SpoFileVersionRemoveCommand_initOptions = function _SpoFileVersionRemoveCommand_initOptions() {
|
|
82
82
|
this.options.unshift({
|
|
83
|
-
option: '-
|
|
83
|
+
option: '-u, --webUrl <webUrl>'
|
|
84
84
|
}, {
|
|
85
85
|
option: '--label <label>'
|
|
86
86
|
}, {
|
|
87
|
-
option: '
|
|
87
|
+
option: '--fileUrl [fileUrl]'
|
|
88
88
|
}, {
|
|
89
89
|
option: '-i, --fileId [fileId]'
|
|
90
90
|
}, {
|
|
@@ -80,11 +80,11 @@ _SpoFileVersionRestoreCommand_instances = new WeakSet(), _SpoFileVersionRestoreC
|
|
|
80
80
|
});
|
|
81
81
|
}, _SpoFileVersionRestoreCommand_initOptions = function _SpoFileVersionRestoreCommand_initOptions() {
|
|
82
82
|
this.options.unshift({
|
|
83
|
-
option: '-
|
|
83
|
+
option: '-u, --webUrl <webUrl>'
|
|
84
84
|
}, {
|
|
85
85
|
option: '--label <label>'
|
|
86
86
|
}, {
|
|
87
|
-
option: '
|
|
87
|
+
option: '--fileUrl [fileUrl]'
|
|
88
88
|
}, {
|
|
89
89
|
option: '-i, --fileId [fileId]'
|
|
90
90
|
}, {
|
|
@@ -82,24 +82,24 @@ class SpoGroupMemberAddCommand extends SpoCommand {
|
|
|
82
82
|
await logger.logToStderr('Checking if the specified users and groups exist');
|
|
83
83
|
}
|
|
84
84
|
const validUserNames = [];
|
|
85
|
-
const identifiers = args.options.
|
|
85
|
+
const identifiers = args.options.userNames ?? args.options.emails ?? args.options.aadGroupIds ?? args.options.aadGroupNames ?? args.options.userIds.toString();
|
|
86
86
|
await Promise.all(identifiers.split(',').map(async (identifier) => {
|
|
87
87
|
const trimmedIdentifier = identifier.trim();
|
|
88
88
|
try {
|
|
89
|
-
if (args.options.
|
|
89
|
+
if (args.options.userIds) {
|
|
90
90
|
if (this.verbose) {
|
|
91
91
|
await logger.logToStderr(`Getting AAD ID of user with ID ${trimmedIdentifier}`);
|
|
92
92
|
}
|
|
93
93
|
const spoUserAzureId = await spo.getUserAzureIdBySpoId(args.options.webUrl, trimmedIdentifier);
|
|
94
94
|
validUserNames.push(spoUserAzureId);
|
|
95
95
|
}
|
|
96
|
-
else if (args.options.
|
|
96
|
+
else if (args.options.userNames) {
|
|
97
97
|
validUserNames.push(trimmedIdentifier);
|
|
98
98
|
}
|
|
99
|
-
else if (args.options.
|
|
99
|
+
else if (args.options.aadGroupIds) {
|
|
100
100
|
validUserNames.push(trimmedIdentifier);
|
|
101
101
|
}
|
|
102
|
-
else if (args.options.
|
|
102
|
+
else if (args.options.aadGroupNames) {
|
|
103
103
|
if (this.verbose) {
|
|
104
104
|
await logger.logToStderr(`Getting ID of Azure AD group ${trimmedIdentifier}`);
|
|
105
105
|
}
|
|
@@ -132,11 +132,11 @@ _SpoGroupMemberAddCommand_instances = new WeakSet(), _SpoGroupMemberAddCommand_i
|
|
|
132
132
|
Object.assign(this.telemetryProperties, {
|
|
133
133
|
groupId: typeof args.options.groupId !== 'undefined',
|
|
134
134
|
groupName: typeof args.options.groupName !== 'undefined',
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
135
|
+
userNames: typeof args.options.userNames !== 'undefined',
|
|
136
|
+
emails: typeof args.options.emails !== 'undefined',
|
|
137
|
+
userIds: typeof args.options.userIds !== 'undefined',
|
|
138
|
+
aadGroupIds: typeof args.options.aadGroupIds !== 'undefined',
|
|
139
|
+
aadGroupNames: typeof args.options.aadGroupNames !== 'undefined'
|
|
140
140
|
});
|
|
141
141
|
});
|
|
142
142
|
}, _SpoGroupMemberAddCommand_initOptions = function _SpoGroupMemberAddCommand_initOptions() {
|
|
@@ -147,15 +147,15 @@ _SpoGroupMemberAddCommand_instances = new WeakSet(), _SpoGroupMemberAddCommand_i
|
|
|
147
147
|
}, {
|
|
148
148
|
option: '--groupName [groupName]'
|
|
149
149
|
}, {
|
|
150
|
-
option: '--
|
|
150
|
+
option: '--userNames [userNames]'
|
|
151
151
|
}, {
|
|
152
|
-
option: '--
|
|
152
|
+
option: '--emails [emails]'
|
|
153
153
|
}, {
|
|
154
|
-
option: '--
|
|
154
|
+
option: '--userIds [userIds]'
|
|
155
155
|
}, {
|
|
156
|
-
option: '--
|
|
156
|
+
option: '--aadGroupIds [aadGroupIds]'
|
|
157
157
|
}, {
|
|
158
|
-
option: '--
|
|
158
|
+
option: '--aadGroupNames [aadGroupNames]'
|
|
159
159
|
});
|
|
160
160
|
}, _SpoGroupMemberAddCommand_initValidators = function _SpoGroupMemberAddCommand_initValidators() {
|
|
161
161
|
this.validators.push(async (args) => {
|
|
@@ -167,22 +167,22 @@ _SpoGroupMemberAddCommand_instances = new WeakSet(), _SpoGroupMemberAddCommand_i
|
|
|
167
167
|
return `Specified groupId ${args.options.groupId} is not a number`;
|
|
168
168
|
}
|
|
169
169
|
const userIdReg = new RegExp(/^[0-9,]*$/);
|
|
170
|
-
if (args.options.
|
|
171
|
-
return `${args.options.
|
|
170
|
+
if (args.options.userIds && !userIdReg.test(args.options.userIds)) {
|
|
171
|
+
return `${args.options.userIds} is not a number or a comma separated value`;
|
|
172
172
|
}
|
|
173
|
-
if (args.options.
|
|
174
|
-
return `${args.options.
|
|
173
|
+
if (args.options.userNames && args.options.userNames.split(',').some(e => !validation.isValidUserPrincipalName(e))) {
|
|
174
|
+
return `${args.options.userNames} contains one or more invalid usernames`;
|
|
175
175
|
}
|
|
176
|
-
if (args.options.
|
|
177
|
-
return `${args.options.
|
|
176
|
+
if (args.options.emails && args.options.emails.split(',').some(e => !validation.isValidUserPrincipalName(e))) {
|
|
177
|
+
return `${args.options.emails} contains one or more invalid email addresses`;
|
|
178
178
|
}
|
|
179
|
-
if (args.options.
|
|
180
|
-
return `${args.options.
|
|
179
|
+
if (args.options.aadGroupIds && args.options.aadGroupIds.split(',').some(e => !validation.isValidGuid(e))) {
|
|
180
|
+
return `${args.options.aadGroupIds} contains one or more invalid GUIDs`;
|
|
181
181
|
}
|
|
182
182
|
return true;
|
|
183
183
|
});
|
|
184
184
|
}, _SpoGroupMemberAddCommand_initOptionSets = function _SpoGroupMemberAddCommand_initOptionSets() {
|
|
185
|
-
this.optionSets.push({ options: ['groupId', 'groupName'] }, { options: ['
|
|
185
|
+
this.optionSets.push({ options: ['groupId', 'groupName'] }, { options: ['userNames', 'emails', 'userIds', 'aadGroupIds', 'aadGroupNames'] });
|
|
186
186
|
};
|
|
187
187
|
export default new SpoGroupMemberAddCommand();
|
|
188
188
|
//# sourceMappingURL=group-member-add.js.map
|
|
@@ -58,7 +58,7 @@ class SpoPageSetCommand extends SpoCommand {
|
|
|
58
58
|
pageTitle = pageTitle || page.Title;
|
|
59
59
|
pageId = page.Id;
|
|
60
60
|
bannerImageUrl = page.BannerImageUrl;
|
|
61
|
-
canvasContent1 = page.CanvasContent1;
|
|
61
|
+
canvasContent1 = args.options.content || page.CanvasContent1;
|
|
62
62
|
layoutWebpartsContent = page.LayoutWebpartsContent;
|
|
63
63
|
pageDescription = pageDescription || page.Description;
|
|
64
64
|
topicHeader = page.TopicHeader;
|
|
@@ -277,7 +277,8 @@ _SpoPageSetCommand_instances = new WeakSet(), _SpoPageSetCommand_initTelemetry =
|
|
|
277
277
|
publish: args.options.publish || false,
|
|
278
278
|
publishMessage: typeof args.options.publishMessage !== 'undefined',
|
|
279
279
|
description: typeof args.options.description !== 'undefined',
|
|
280
|
-
title: typeof args.options.title !== 'undefined'
|
|
280
|
+
title: typeof args.options.title !== 'undefined',
|
|
281
|
+
content: typeof args.options.content !== 'undefined'
|
|
281
282
|
});
|
|
282
283
|
});
|
|
283
284
|
}, _SpoPageSetCommand_initOptions = function _SpoPageSetCommand_initOptions() {
|
|
@@ -305,6 +306,8 @@ _SpoPageSetCommand_instances = new WeakSet(), _SpoPageSetCommand_initTelemetry =
|
|
|
305
306
|
option: '--description [description]'
|
|
306
307
|
}, {
|
|
307
308
|
option: '--title [title]'
|
|
309
|
+
}, {
|
|
310
|
+
option: '--content [content]'
|
|
308
311
|
});
|
|
309
312
|
}, _SpoPageSetCommand_initTypes = function _SpoPageSetCommand_initTypes() {
|
|
310
313
|
this.types.boolean.push('commentsEnabled');
|
|
@@ -332,6 +335,14 @@ _SpoPageSetCommand_instances = new WeakSet(), _SpoPageSetCommand_initTelemetry =
|
|
|
332
335
|
if (args.options.promoteAs === 'NewsPage' && args.options.layoutType && args.options.layoutType !== 'Article') {
|
|
333
336
|
return 'You can only promote article pages as news article';
|
|
334
337
|
}
|
|
338
|
+
if (args.options.content) {
|
|
339
|
+
try {
|
|
340
|
+
JSON.parse(args.options.content);
|
|
341
|
+
}
|
|
342
|
+
catch (e) {
|
|
343
|
+
return `Specified content is not a valid JSON string. Input: ${args.options.content}. Error: ${e}`;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
335
346
|
return true;
|
|
336
347
|
});
|
|
337
348
|
};
|
|
@@ -3,7 +3,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
3
3
|
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");
|
|
4
4
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
5
|
};
|
|
6
|
-
var _SpoSiteCommSiteEnableCommand_instances, _SpoSiteCommSiteEnableCommand_initTelemetry, _SpoSiteCommSiteEnableCommand_initOptions, _SpoSiteCommSiteEnableCommand_initValidators;
|
|
6
|
+
var _SpoSiteCommSiteEnableCommand_instances, _SpoSiteCommSiteEnableCommand_initTelemetry, _SpoSiteCommSiteEnableCommand_initOptions, _SpoSiteCommSiteEnableCommand_initOptionSets, _SpoSiteCommSiteEnableCommand_initValidators;
|
|
7
7
|
import request from '../../../../request.js';
|
|
8
8
|
import { validation } from '../../../../utils/validation.js';
|
|
9
9
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
@@ -21,11 +21,12 @@ class SpoSiteCommSiteEnableCommand extends SpoCommand {
|
|
|
21
21
|
__classPrivateFieldGet(this, _SpoSiteCommSiteEnableCommand_instances, "m", _SpoSiteCommSiteEnableCommand_initTelemetry).call(this);
|
|
22
22
|
__classPrivateFieldGet(this, _SpoSiteCommSiteEnableCommand_instances, "m", _SpoSiteCommSiteEnableCommand_initOptions).call(this);
|
|
23
23
|
__classPrivateFieldGet(this, _SpoSiteCommSiteEnableCommand_instances, "m", _SpoSiteCommSiteEnableCommand_initValidators).call(this);
|
|
24
|
+
__classPrivateFieldGet(this, _SpoSiteCommSiteEnableCommand_instances, "m", _SpoSiteCommSiteEnableCommand_initOptionSets).call(this);
|
|
24
25
|
}
|
|
25
26
|
async commandAction(logger, args) {
|
|
26
|
-
const designPackageId = args.options
|
|
27
|
+
const designPackageId = this.getDesignPackageId(args.options);
|
|
27
28
|
if (this.verbose) {
|
|
28
|
-
logger.logToStderr(`Enabling communication site at ${args.options.url}...`);
|
|
29
|
+
logger.logToStderr(`Enabling communication site with design package '${designPackageId}' at '${args.options.url}'...`);
|
|
29
30
|
}
|
|
30
31
|
try {
|
|
31
32
|
const requestOptions = {
|
|
@@ -42,11 +43,26 @@ class SpoSiteCommSiteEnableCommand extends SpoCommand {
|
|
|
42
43
|
this.handleRejectedODataJsonPromise(err);
|
|
43
44
|
}
|
|
44
45
|
}
|
|
46
|
+
getDesignPackageId(options) {
|
|
47
|
+
if (options.designPackageId) {
|
|
48
|
+
return options.designPackageId;
|
|
49
|
+
}
|
|
50
|
+
switch (options.designPackage) {
|
|
51
|
+
case 'Blank':
|
|
52
|
+
return 'f6cc5403-0d63-442e-96c0-285923709ffc';
|
|
53
|
+
case 'Showcase':
|
|
54
|
+
return '6142d2a0-63a5-4ba0-aede-d9fefca2c767';
|
|
55
|
+
case 'Topic':
|
|
56
|
+
default:
|
|
57
|
+
return '96c933ac-3698-44c7-9f4a-5fd17d71af9e';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
45
60
|
}
|
|
46
61
|
_SpoSiteCommSiteEnableCommand_instances = new WeakSet(), _SpoSiteCommSiteEnableCommand_initTelemetry = function _SpoSiteCommSiteEnableCommand_initTelemetry() {
|
|
47
62
|
this.telemetry.push((args) => {
|
|
48
63
|
Object.assign(this.telemetryProperties, {
|
|
49
|
-
designPackageId: typeof args.options.designPackageId !== 'undefined'
|
|
64
|
+
designPackageId: typeof args.options.designPackageId !== 'undefined',
|
|
65
|
+
designPackage: typeof args.options.designPackage !== 'undefined'
|
|
50
66
|
});
|
|
51
67
|
});
|
|
52
68
|
}, _SpoSiteCommSiteEnableCommand_initOptions = function _SpoSiteCommSiteEnableCommand_initOptions() {
|
|
@@ -54,12 +70,25 @@ _SpoSiteCommSiteEnableCommand_instances = new WeakSet(), _SpoSiteCommSiteEnableC
|
|
|
54
70
|
option: '-u, --url <url>'
|
|
55
71
|
}, {
|
|
56
72
|
option: '-i, --designPackageId [designPackageId]'
|
|
73
|
+
}, {
|
|
74
|
+
option: '-p, --designPackage [designPackage]',
|
|
75
|
+
autocomplete: ["Topic", "Showcase", "Blank"]
|
|
76
|
+
});
|
|
77
|
+
}, _SpoSiteCommSiteEnableCommand_initOptionSets = function _SpoSiteCommSiteEnableCommand_initOptionSets() {
|
|
78
|
+
this.optionSets.push({
|
|
79
|
+
options: ['designPackageId', 'designPackage'],
|
|
80
|
+
runsWhen: (args) => args.options.designPackageId || args.options.designPackage
|
|
57
81
|
});
|
|
58
82
|
}, _SpoSiteCommSiteEnableCommand_initValidators = function _SpoSiteCommSiteEnableCommand_initValidators() {
|
|
59
83
|
this.validators.push(async (args) => {
|
|
60
84
|
if (args.options.designPackageId &&
|
|
61
85
|
!validation.isValidGuid(args.options.designPackageId)) {
|
|
62
|
-
return `${args.options.designPackageId} is not a valid GUID
|
|
86
|
+
return `${args.options.designPackageId} is not a valid GUID.`;
|
|
87
|
+
}
|
|
88
|
+
if (args.options.designPackage) {
|
|
89
|
+
if (['Topic', 'Showcase', 'Blank'].indexOf(args.options.designPackage) === -1) {
|
|
90
|
+
return `${args.options.designPackage} is not a valid designPackage. Allowed values are Topic|Showcase|Blank`;
|
|
91
|
+
}
|
|
63
92
|
}
|
|
64
93
|
return validation.isValidSharePointUrl(args.options.url);
|
|
65
94
|
});
|
|
@@ -3,9 +3,10 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
3
3
|
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");
|
|
4
4
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
5
|
};
|
|
6
|
-
var _TeamsAppRemoveCommand_instances, _TeamsAppRemoveCommand_initTelemetry, _TeamsAppRemoveCommand_initOptions, _TeamsAppRemoveCommand_initValidators;
|
|
6
|
+
var _TeamsAppRemoveCommand_instances, _TeamsAppRemoveCommand_initTelemetry, _TeamsAppRemoveCommand_initOptions, _TeamsAppRemoveCommand_initValidators, _TeamsAppRemoveCommand_initOptionSets;
|
|
7
7
|
import { Cli } from '../../../../cli/Cli.js';
|
|
8
8
|
import request from '../../../../request.js';
|
|
9
|
+
import { formatting } from '../../../../utils/formatting.js';
|
|
9
10
|
import { validation } from '../../../../utils/validation.js';
|
|
10
11
|
import GraphCommand from '../../../base/GraphCommand.js';
|
|
11
12
|
import commands from '../../commands.js';
|
|
@@ -22,20 +23,21 @@ class TeamsAppRemoveCommand extends GraphCommand {
|
|
|
22
23
|
__classPrivateFieldGet(this, _TeamsAppRemoveCommand_instances, "m", _TeamsAppRemoveCommand_initTelemetry).call(this);
|
|
23
24
|
__classPrivateFieldGet(this, _TeamsAppRemoveCommand_instances, "m", _TeamsAppRemoveCommand_initOptions).call(this);
|
|
24
25
|
__classPrivateFieldGet(this, _TeamsAppRemoveCommand_instances, "m", _TeamsAppRemoveCommand_initValidators).call(this);
|
|
26
|
+
__classPrivateFieldGet(this, _TeamsAppRemoveCommand_instances, "m", _TeamsAppRemoveCommand_initOptionSets).call(this);
|
|
25
27
|
}
|
|
26
28
|
async commandAction(logger, args) {
|
|
27
|
-
const { id: appId } = args.options;
|
|
28
29
|
const removeApp = async () => {
|
|
29
|
-
if (this.verbose) {
|
|
30
|
-
await logger.logToStderr(`Removing app with ID ${args.options.id}`);
|
|
31
|
-
}
|
|
32
|
-
const requestOptions = {
|
|
33
|
-
url: `${this.resource}/v1.0/appCatalogs/teamsApps/${appId}`,
|
|
34
|
-
headers: {
|
|
35
|
-
accept: 'application/json;odata.metadata=none'
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
30
|
try {
|
|
31
|
+
const appId = await this.getAppId(args.options, logger);
|
|
32
|
+
if (this.verbose) {
|
|
33
|
+
await logger.logToStderr(`Removing app with ID ${appId}`);
|
|
34
|
+
}
|
|
35
|
+
const requestOptions = {
|
|
36
|
+
url: `${this.resource}/v1.0/appCatalogs/teamsApps/${appId}`,
|
|
37
|
+
headers: {
|
|
38
|
+
accept: 'application/json;odata.metadata=none'
|
|
39
|
+
}
|
|
40
|
+
};
|
|
39
41
|
await request.delete(requestOptions);
|
|
40
42
|
}
|
|
41
43
|
catch (err) {
|
|
@@ -50,33 +52,65 @@ class TeamsAppRemoveCommand extends GraphCommand {
|
|
|
50
52
|
type: 'confirm',
|
|
51
53
|
name: 'continue',
|
|
52
54
|
default: false,
|
|
53
|
-
message: `Are you sure you want to remove the Teams app ${
|
|
55
|
+
message: `Are you sure you want to remove the Teams app ${args.options.id || args.options.name} from the app catalog?`
|
|
54
56
|
});
|
|
55
57
|
if (result.continue) {
|
|
56
58
|
await removeApp();
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
}
|
|
62
|
+
async getAppId(options, logger) {
|
|
63
|
+
if (options.id) {
|
|
64
|
+
return options.id;
|
|
65
|
+
}
|
|
66
|
+
if (this.verbose) {
|
|
67
|
+
await logger.logToStderr(`Retrieving app Id...`);
|
|
68
|
+
}
|
|
69
|
+
const requestOptions = {
|
|
70
|
+
url: `${this.resource}/v1.0/appCatalogs/teamsApps?$filter=displayName eq '${formatting.encodeQueryParameter(options.name)}'&$select=id`,
|
|
71
|
+
headers: {
|
|
72
|
+
accept: 'application/json;odata.metadata=none'
|
|
73
|
+
},
|
|
74
|
+
responseType: 'json'
|
|
75
|
+
};
|
|
76
|
+
const response = await request.get(requestOptions);
|
|
77
|
+
const app = response.value[0];
|
|
78
|
+
if (!app) {
|
|
79
|
+
throw `The specified Teams app does not exist`;
|
|
80
|
+
}
|
|
81
|
+
if (response.value.length > 1) {
|
|
82
|
+
const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', response.value);
|
|
83
|
+
const result = await Cli.handleMultipleResultsFound(`Multiple Teams apps with name '${options.name}' found.`, resultAsKeyValuePair);
|
|
84
|
+
return result.id;
|
|
85
|
+
}
|
|
86
|
+
return app.id;
|
|
87
|
+
}
|
|
60
88
|
}
|
|
61
89
|
_TeamsAppRemoveCommand_instances = new WeakSet(), _TeamsAppRemoveCommand_initTelemetry = function _TeamsAppRemoveCommand_initTelemetry() {
|
|
62
90
|
this.telemetry.push((args) => {
|
|
63
91
|
Object.assign(this.telemetryProperties, {
|
|
64
|
-
force: (!(!args.options.force)).toString()
|
|
92
|
+
force: (!(!args.options.force)).toString(),
|
|
93
|
+
id: typeof args.options.id !== 'undefined',
|
|
94
|
+
name: typeof args.options.name !== 'undefined'
|
|
65
95
|
});
|
|
66
96
|
});
|
|
67
97
|
}, _TeamsAppRemoveCommand_initOptions = function _TeamsAppRemoveCommand_initOptions() {
|
|
68
98
|
this.options.unshift({
|
|
69
|
-
option: '-i, --id
|
|
99
|
+
option: '-i, --id [id]'
|
|
100
|
+
}, {
|
|
101
|
+
option: '-n, --name [name]'
|
|
70
102
|
}, {
|
|
71
103
|
option: '-f, --force'
|
|
72
104
|
});
|
|
73
105
|
}, _TeamsAppRemoveCommand_initValidators = function _TeamsAppRemoveCommand_initValidators() {
|
|
74
106
|
this.validators.push(async (args) => {
|
|
75
|
-
if (!validation.isValidGuid(args.options.id)) {
|
|
107
|
+
if (args.options.id && !validation.isValidGuid(args.options.id)) {
|
|
76
108
|
return `${args.options.id} is not a valid GUID`;
|
|
77
109
|
}
|
|
78
110
|
return true;
|
|
79
111
|
});
|
|
112
|
+
}, _TeamsAppRemoveCommand_initOptionSets = function _TeamsAppRemoveCommand_initOptionSets() {
|
|
113
|
+
this.optionSets.push({ options: ['id', 'name'] });
|
|
80
114
|
};
|
|
81
115
|
export default new TeamsAppRemoveCommand();
|
|
82
116
|
//# sourceMappingURL=app-remove.js.map
|
|
@@ -91,11 +91,11 @@ class TeamsChannelMemberAddCommand extends GraphCommand {
|
|
|
91
91
|
return channelItem.id;
|
|
92
92
|
}
|
|
93
93
|
async getUserId(args) {
|
|
94
|
-
if (args.options.
|
|
95
|
-
return args.options.
|
|
94
|
+
if (args.options.userIds) {
|
|
95
|
+
return args.options.userIds.split(',').map(u => u.trim());
|
|
96
96
|
}
|
|
97
97
|
const tasks = [];
|
|
98
|
-
const userDisplayNames = args.options.
|
|
98
|
+
const userDisplayNames = args.options.userDisplayNames && args.options.userDisplayNames.split(',').map(u => u.trim());
|
|
99
99
|
for (const userName of userDisplayNames) {
|
|
100
100
|
tasks.push(this.getSingleUser(userName));
|
|
101
101
|
}
|
|
@@ -129,8 +129,8 @@ _TeamsChannelMemberAddCommand_instances = new WeakSet(), _TeamsChannelMemberAddC
|
|
|
129
129
|
teamName: typeof args.options.teamName !== 'undefined',
|
|
130
130
|
channelId: typeof args.options.channelId !== 'undefined',
|
|
131
131
|
channelName: typeof args.options.channelName !== 'undefined',
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
userIds: typeof args.options.userIds !== 'undefined',
|
|
133
|
+
userDisplayNames: typeof args.options.userDisplayNames !== 'undefined',
|
|
134
134
|
owner: args.options.owner
|
|
135
135
|
});
|
|
136
136
|
});
|
|
@@ -144,9 +144,9 @@ _TeamsChannelMemberAddCommand_instances = new WeakSet(), _TeamsChannelMemberAddC
|
|
|
144
144
|
}, {
|
|
145
145
|
option: '--channelName [channelName]'
|
|
146
146
|
}, {
|
|
147
|
-
option: '--
|
|
147
|
+
option: '--userIds [userIds]'
|
|
148
148
|
}, {
|
|
149
|
-
option: '--
|
|
149
|
+
option: '--userDisplayNames [userDisplayNames]'
|
|
150
150
|
}, {
|
|
151
151
|
option: '--owner'
|
|
152
152
|
});
|
|
@@ -161,7 +161,7 @@ _TeamsChannelMemberAddCommand_instances = new WeakSet(), _TeamsChannelMemberAddC
|
|
|
161
161
|
return true;
|
|
162
162
|
});
|
|
163
163
|
}, _TeamsChannelMemberAddCommand_initOptionSets = function _TeamsChannelMemberAddCommand_initOptionSets() {
|
|
164
|
-
this.optionSets.push({ options: ['teamId', 'teamName'] }, { options: ['channelId', 'channelName'] }, { options: ['
|
|
164
|
+
this.optionSets.push({ options: ['teamId', 'teamName'] }, { options: ['channelId', 'channelName'] }, { options: ['userIds', 'userDisplayNames'] });
|
|
165
165
|
};
|
|
166
166
|
export default new TeamsChannelMemberAddCommand();
|
|
167
167
|
//# sourceMappingURL=channel-member-add.js.map
|
|
@@ -14,34 +14,34 @@ m365 aad app set [options]
|
|
|
14
14
|
|
|
15
15
|
```md definition-list
|
|
16
16
|
`--appId [appId]`
|
|
17
|
-
: Application (client) ID of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name
|
|
17
|
+
: Application (client) ID of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`.
|
|
18
18
|
|
|
19
19
|
`--objectId [objectId]`
|
|
20
|
-
: Object ID of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name
|
|
20
|
+
: Object ID of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`.
|
|
21
21
|
|
|
22
22
|
`--name [name]`
|
|
23
|
-
: Name of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name
|
|
23
|
+
: Name of the Azure AD application registration to update. Specify either `appId`, `objectId` or `name`.
|
|
24
24
|
|
|
25
|
-
`-u, --
|
|
26
|
-
: Comma-separated list of Application ID URIs to update
|
|
25
|
+
`-u, --uris [uris]`
|
|
26
|
+
: Comma-separated list of Application ID URIs to update.
|
|
27
27
|
|
|
28
28
|
`-r, --redirectUris [redirectUris]`
|
|
29
|
-
: Comma-separated list of redirect URIs to add to the app registration. Requires `platform` to be specified
|
|
29
|
+
: Comma-separated list of redirect URIs to add to the app registration. Requires `platform` to be specified.
|
|
30
30
|
|
|
31
31
|
`-p, --platform [platform]`
|
|
32
|
-
: Platform for which the `redirectUri` should be configured. Allowed values `spa`, `web`, `publicClient
|
|
32
|
+
: Platform for which the `redirectUri` should be configured. Allowed values `spa`, `web`, `publicClient`.
|
|
33
33
|
|
|
34
34
|
`--redirectUrisToRemove [redirectUrisToRemove]`
|
|
35
|
-
: Comma-separated list of existing redirect URIs to remove. Specify, when you want to replace existing redirect URIs with another
|
|
35
|
+
: Comma-separated list of existing redirect URIs to remove. Specify, when you want to replace existing redirect URIs with another.
|
|
36
36
|
|
|
37
37
|
`--certificateFile [certificateFile]`
|
|
38
|
-
: Path to the file with certificate public key. Specify either `certificateFile` or `certificateBase64Encoded
|
|
38
|
+
: Path to the file with certificate public key. Specify either `certificateFile` or `certificateBase64Encoded`.
|
|
39
39
|
|
|
40
40
|
`--certificateBase64Encoded [certificateBase64Encoded]`
|
|
41
|
-
: Base64-encoded string with certificate public key. Specify either `certificateFile` or `certificateBase64Encoded
|
|
41
|
+
: Base64-encoded string with certificate public key. Specify either `certificateFile` or `certificateBase64Encoded`.
|
|
42
42
|
|
|
43
43
|
`--certificateDisplayName [certificateDisplayName]`
|
|
44
|
-
: Display name for the certificate. If not given, the displayName will be set to the certificate subject. When specified, also specify either `certificateFile` or `certificateBase64Encoded
|
|
44
|
+
: Display name for the certificate. If not given, the displayName will be set to the certificate subject. When specified, also specify either `certificateFile` or `certificateBase64Encoded`.
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
<Global />
|
|
@@ -59,19 +59,19 @@ When a certificate is specified it will be added to the list of certificates of
|
|
|
59
59
|
Update the app URI of the Azure AD application registration specified by its object ID
|
|
60
60
|
|
|
61
61
|
```sh
|
|
62
|
-
m365 aad app set --objectId d75be2e1-0204-4f95-857d-51a37cf40be8 --
|
|
62
|
+
m365 aad app set --objectId d75be2e1-0204-4f95-857d-51a37cf40be8 --uris https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
Update the app URI of the Azure AD application registration specified by its app (client) ID
|
|
66
66
|
|
|
67
67
|
```sh
|
|
68
|
-
m365 aad app set --appId e75be2e1-0204-4f95-857d-51a37cf40be8 --
|
|
68
|
+
m365 aad app set --appId e75be2e1-0204-4f95-857d-51a37cf40be8 --uris https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
Update the app URI of the Azure AD application registration specified by its name
|
|
72
72
|
|
|
73
73
|
```sh
|
|
74
|
-
m365 aad app set --name "My app" --
|
|
74
|
+
m365 aad app set --name "My app" --uris https://contoso.com/e75be2e1-0204-4f95-857d-51a37cf40be8
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
Add a new redirect URI for SPA authentication
|
|
@@ -94,4 +94,4 @@ m365 aad app set --appId e75be2e1-0204-4f95-857d-51a37cf40be8 --certificateDispl
|
|
|
94
94
|
|
|
95
95
|
## Response
|
|
96
96
|
|
|
97
|
-
The command won't return a response on success.
|
|
97
|
+
The command won't return a response on success.
|
|
@@ -16,19 +16,19 @@ m365 aad approleassignment add [options]
|
|
|
16
16
|
|
|
17
17
|
```md definition-list
|
|
18
18
|
`--appId [appId]`
|
|
19
|
-
: Application appId also known as clientId of the App Registration to which the configured scopes (app roles) should be applied
|
|
19
|
+
: Application appId also known as clientId of the App Registration to which the configured scopes (app roles) should be applied.
|
|
20
20
|
|
|
21
21
|
`--appObjectId [appObjectId]`
|
|
22
|
-
: Application objectId of the App Registration to which the configured scopes (app roles) should be applied
|
|
22
|
+
: Application objectId of the App Registration to which the configured scopes (app roles) should be applied.
|
|
23
23
|
|
|
24
24
|
`--appDisplayName [appDisplayName]`
|
|
25
|
-
: Application name of the App Registration to which the configured scopes (app roles) should be applied
|
|
25
|
+
: Application name of the App Registration to which the configured scopes (app roles) should be applied.
|
|
26
26
|
|
|
27
27
|
`-r, --resource <resource>`
|
|
28
28
|
: Service principal name, appId or objectId that has the scopes (roles) e.g. `SharePoint`.
|
|
29
29
|
|
|
30
|
-
`-s, --
|
|
31
|
-
: Permissions known also as scopes and roles to grant the application with. If multiple permissions have to be granted, they have to be comma-separated e.g. `Sites.Read.All`, `Sites.ReadWrite.all
|
|
30
|
+
`-s, --scopes <scopes>`
|
|
31
|
+
: Permissions known also as scopes and roles to grant the application with. If multiple permissions have to be granted, they have to be comma-separated e.g. `Sites.Read.All`, `Sites.ReadWrite.all`.
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
<Global />
|
|
@@ -48,19 +48,19 @@ This command can also be used to assign permissions to system or user-assigned m
|
|
|
48
48
|
Adds SharePoint _Sites.Read.All_ application permissions to Azure AD application with app id _57907bf8-73fa-43a6-89a5-1f603e29e451_
|
|
49
49
|
|
|
50
50
|
```sh
|
|
51
|
-
m365 aad approleassignment add --appId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "SharePoint" --
|
|
51
|
+
m365 aad approleassignment add --appId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "SharePoint" --scopes "Sites.Read.All"
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
Adds multiple Microsoft Graph application permissions to an Azure AD application with the name _MyAppName__
|
|
55
55
|
|
|
56
56
|
```sh
|
|
57
|
-
m365 aad approleassignment add --appDisplayName "MyAppName" --resource "Microsoft Graph" --
|
|
57
|
+
m365 aad approleassignment add --appDisplayName "MyAppName" --resource "Microsoft Graph" --scopes "Mail.Read,Mail.Send"
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
Adds Microsoft Graph _Mail.Read_ application permissions to a system-managed identity app with objectId _57907bf8-73fa-43a6-89a5-1f603e29e451_
|
|
61
61
|
|
|
62
62
|
```sh
|
|
63
|
-
m365 aad approleassignment add --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --
|
|
63
|
+
m365 aad approleassignment add --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --scopes "Mail.Read"
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
## Response
|
|
@@ -106,7 +106,7 @@ m365 aad approleassignment add --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e4
|
|
|
106
106
|
<TabItem value="Markdown">
|
|
107
107
|
|
|
108
108
|
```md
|
|
109
|
-
# aad approleassignment add --appId "e89804ac-a571-48cf-b2ba-fd57b5d49993" --resource "Microsoft Graph" --
|
|
109
|
+
# aad approleassignment add --appId "e89804ac-a571-48cf-b2ba-fd57b5d49993" --resource "Microsoft Graph" --scopes "Mail.Read"
|
|
110
110
|
|
|
111
111
|
Date: 2023-06-01
|
|
112
112
|
|
|
@@ -14,22 +14,22 @@ m365 aad approleassignment remove [options]
|
|
|
14
14
|
|
|
15
15
|
```md definition-list
|
|
16
16
|
`--appId [appId]`
|
|
17
|
-
: Application appId also known as clientId of the App Registration for which the configured scopes (app roles) should be deleted
|
|
17
|
+
: Application appId also known as clientId of the App Registration for which the configured scopes (app roles) should be deleted.
|
|
18
18
|
|
|
19
19
|
`--appObjectId [appObjectId]`
|
|
20
|
-
: Application objectId of the App Registration for which the configured scopes (app roles) should be deleted
|
|
20
|
+
: Application objectId of the App Registration for which the configured scopes (app roles) should be deleted.
|
|
21
21
|
|
|
22
22
|
`--appDisplayName [appDisplayName]`
|
|
23
|
-
: Application name of the App Registration for which the configured scopes (app roles) should be deleted
|
|
23
|
+
: Application name of the App Registration for which the configured scopes (app roles) should be deleted.
|
|
24
24
|
|
|
25
25
|
`-r, --resource <resource>`
|
|
26
|
-
: Service principal name, appId or objectId that has the scopes (roles) e.g. `SharePoint
|
|
26
|
+
: Service principal name, appId or objectId that has the scopes (roles) e.g. `SharePoint`.
|
|
27
27
|
|
|
28
|
-
`-s, --
|
|
29
|
-
: Permissions known also as scopes and roles to be deleted from the application. If multiple permissions have to be deleted, they have to be comma-separated e.g. `Sites.Read.All`,`Sites.ReadWrite.All
|
|
28
|
+
`-s, --scopes <scopes>`
|
|
29
|
+
: Permissions known also as scopes and roles to be deleted from the application. If multiple permissions have to be deleted, they have to be comma-separated e.g. `Sites.Read.All`,`Sites.ReadWrite.All`.
|
|
30
30
|
|
|
31
31
|
`-f, --force`
|
|
32
|
-
: Don't prompt for confirming removing the all role assignment
|
|
32
|
+
: Don't prompt for confirming removing the all role assignment.
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
<Global />
|
|
@@ -49,19 +49,19 @@ This command can also be used to assign permissions to system- or user-assigned
|
|
|
49
49
|
Deletes SharePoint _Sites.Read.All_ application permissions from Azure AD application with app id _57907bf8-73fa-43a6-89a5-1f603e29e451_
|
|
50
50
|
|
|
51
51
|
```sh
|
|
52
|
-
m365 aad approleassignment remove --appId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "SharePoint" --
|
|
52
|
+
m365 aad approleassignment remove --appId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "SharePoint" --scopes "Sites.Read.All"
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
Deletes multiple Microsoft Graph application permissions from an Azure AD application with name _MyAppName_
|
|
56
56
|
|
|
57
57
|
```sh
|
|
58
|
-
m365 aad approleassignment remove --appDisplayName "MyAppName" --resource "Microsoft Graph" --
|
|
58
|
+
m365 aad approleassignment remove --appDisplayName "MyAppName" --resource "Microsoft Graph" --scopes "Mail.Read,Mail.Send"
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
Deletes Microsoft Graph _Mail.Read_ application permissions from a system-managed identity app with objectId _57907bf8-73fa-43a6-89a5-1f603e29e451_
|
|
62
62
|
|
|
63
63
|
```sh
|
|
64
|
-
m365 aad approleassignment remove --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --
|
|
64
|
+
m365 aad approleassignment remove --appObjectId "57907bf8-73fa-43a6-89a5-1f603e29e451" --resource "Microsoft Graph" --scopes "Mail.Read"
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
## Response
|