@pnp/cli-microsoft365 7.0.0-beta.4ebf3ad → 7.0.0-beta.669444a
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/.eslintrc.cjs +1 -1
- package/dist/Auth.js +2 -1
- package/dist/Command.js +1 -1
- package/dist/cli/Cli.js +19 -2
- package/dist/m365/aad/commands/{o365group/o365group-add.js → m365group/m365group-add.js} +17 -17
- package/dist/m365/aad/commands/{o365group/o365group-conversation-list.js → m365group/m365group-conversation-list.js} +10 -10
- package/dist/m365/aad/commands/{o365group/o365group-conversation-post-list.js → m365group/m365group-conversation-post-list.js} +14 -14
- package/dist/m365/aad/commands/{o365group/o365group-get.js → m365group/m365group-get.js} +13 -10
- package/dist/m365/aad/commands/{o365group/o365group-list.js → m365group/m365group-list.js} +13 -28
- package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-clear.js → m365group/m365group-recyclebinitem-clear.js} +15 -15
- package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-list.js → m365group/m365group-recyclebinitem-list.js} +10 -10
- package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-remove.js → m365group/m365group-recyclebinitem-remove.js} +14 -14
- package/dist/m365/aad/commands/{o365group/o365group-recyclebinitem-restore.js → m365group/m365group-recyclebinitem-restore.js} +14 -14
- package/dist/m365/aad/commands/{o365group/o365group-remove.js → m365group/m365group-remove.js} +12 -12
- package/dist/m365/aad/commands/{o365group/o365group-renew.js → m365group/m365group-renew.js} +10 -10
- package/dist/m365/aad/commands/{o365group/o365group-report-activitycounts.js → m365group/m365group-report-activitycounts.js} +4 -4
- package/dist/m365/aad/commands/{o365group/o365group-report-activitydetail.js → m365group/m365group-report-activitydetail.js} +4 -4
- package/dist/m365/aad/commands/{o365group/o365group-report-activityfilecounts.js → m365group/m365group-report-activityfilecounts.js} +4 -4
- package/dist/m365/aad/commands/{o365group/o365group-report-activitygroupcounts.js → m365group/m365group-report-activitygroupcounts.js} +4 -4
- package/dist/m365/aad/commands/{o365group/o365group-report-activitystorage.js → m365group/m365group-report-activitystorage.js} +4 -4
- package/dist/m365/aad/commands/{o365group/o365group-set.js → m365group/m365group-set.js} +17 -17
- package/dist/m365/aad/commands/{o365group/o365group-teamify.js → m365group/m365group-teamify.js} +14 -14
- package/dist/m365/aad/commands/{o365group/o365group-user-add.js → m365group/m365group-user-add.js} +14 -14
- package/dist/m365/aad/commands/{o365group/o365group-user-list.js → m365group/m365group-user-list.js} +12 -12
- package/dist/m365/aad/commands/{o365group/o365group-user-remove.js → m365group/m365group-user-remove.js} +14 -14
- package/dist/m365/aad/commands/{o365group/o365group-user-set.js → m365group/m365group-user-set.js} +15 -15
- package/dist/m365/aad/commands.js +22 -22
- package/dist/m365/cli/commands/config/config-list.js +16 -0
- package/dist/m365/cli/commands.js +1 -0
- package/dist/m365/pa/commands/app/app-permission-ensure.js +162 -0
- package/dist/m365/pa/commands/app/app-permission-list.js +2 -2
- package/dist/m365/pa/commands/app/app-permission-remove.js +153 -0
- package/dist/m365/pa/commands.js +2 -0
- package/dist/m365/planner/commands/bucket/bucket-add.js +2 -2
- package/dist/m365/planner/commands/bucket/bucket-get.js +2 -2
- package/dist/m365/planner/commands/bucket/bucket-list.js +2 -2
- package/dist/m365/planner/commands/bucket/bucket-remove.js +2 -2
- package/dist/m365/planner/commands/bucket/bucket-set.js +2 -2
- package/dist/m365/planner/commands/plan/plan-get.js +1 -2
- package/dist/m365/planner/commands/plan/plan-list.js +4 -5
- package/dist/m365/planner/commands/plan/plan-set.js +2 -2
- package/dist/m365/spfx/commands/project/project-externalize/rules/PnPJsRule.js +2 -2
- package/dist/m365/spfx/commands/spfx-doctor.js +73 -103
- package/dist/m365/spo/commands/file/file-add.js +13 -13
- package/dist/m365/spo/commands/file/file-checkin.js +1 -1
- package/dist/m365/spo/commands/file/file-checkout.js +1 -1
- package/dist/m365/spo/commands/file/file-copy.js +36 -4
- package/dist/m365/spo/commands/file/file-list.js +4 -4
- package/dist/m365/spo/commands/file/file-move.js +74 -98
- package/dist/m365/spo/commands/file/file-remove.js +6 -6
- package/dist/m365/spo/commands/file/file-rename.js +2 -2
- package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +1 -1
- package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +1 -1
- package/dist/m365/spo/commands/file/file-roleassignment-add.js +1 -1
- package/dist/m365/spo/commands/file/file-roleassignment-remove.js +1 -1
- package/dist/m365/spo/commands/file/file-roleinheritance-break.js +1 -1
- package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +1 -1
- package/dist/m365/spo/commands/file/file-version-clear.js +1 -1
- package/dist/m365/spo/commands/file/file-version-get.js +1 -1
- package/dist/m365/spo/commands/file/file-version-list.js +1 -1
- package/dist/m365/spo/commands/file/file-version-remove.js +1 -1
- package/dist/m365/spo/commands/file/file-version-restore.js +1 -1
- package/dist/m365/spo/commands/folder/folder-add.js +2 -4
- package/dist/m365/spo/commands/folder/folder-copy.js +89 -45
- package/dist/m365/spo/commands/folder/folder-get.js +1 -1
- package/dist/m365/spo/commands/folder/folder-list.js +2 -2
- package/dist/m365/spo/commands/folder/folder-move.js +89 -47
- package/dist/m365/spo/commands/folder/folder-remove.js +7 -4
- package/dist/m365/spo/commands/folder/folder-rename.js +13 -17
- package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +1 -1
- package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +1 -1
- package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +1 -1
- package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +1 -1
- package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +1 -1
- package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +1 -1
- package/dist/m365/spo/commands/group/group-list.js +0 -1
- package/dist/m365/spo/commands/navigation/navigation-node-set.js +2 -2
- package/dist/m365/spo/commands/site/site-set.js +2 -2
- package/dist/m365/spo/commands/theme/theme-list.js +1 -9
- package/dist/utils/planner.js +4 -3
- package/dist/utils/spo.js +13 -54
- package/docs/docs/cmd/aad/{o365group/o365group-add.mdx → m365group/m365group-add.mdx} +13 -13
- package/docs/docs/cmd/aad/{o365group/o365group-conversation-list.mdx → m365group/m365group-conversation-list.mdx} +4 -4
- package/docs/docs/cmd/aad/{o365group/o365group-conversation-post-list.mdx → m365group/m365group-conversation-post-list.mdx} +8 -8
- package/docs/docs/cmd/aad/{o365group/o365group-get.mdx → m365group/m365group-get.mdx} +6 -6
- package/docs/docs/cmd/aad/{o365group/o365group-list.mdx → m365group/m365group-list.mdx} +12 -29
- package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-clear.mdx → m365group/m365group-recyclebinitem-clear.mdx} +5 -5
- package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-list.mdx → m365group/m365group-recyclebinitem-list.mdx} +8 -8
- package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-remove.mdx → m365group/m365group-recyclebinitem-remove.mdx} +6 -6
- package/docs/docs/cmd/aad/{o365group/o365group-recyclebinitem-restore.mdx → m365group/m365group-recyclebinitem-restore.mdx} +6 -6
- package/docs/docs/cmd/aad/{o365group/o365group-remove.mdx → m365group/m365group-remove.mdx} +6 -6
- package/docs/docs/cmd/aad/{o365group/o365group-renew.mdx → m365group/m365group-renew.mdx} +4 -4
- package/docs/docs/cmd/aad/{o365group/o365group-report-activitycounts.mdx → m365group/m365group-report-activitycounts.mdx} +6 -6
- package/docs/docs/cmd/aad/{o365group/o365group-report-activitydetail.mdx → m365group/m365group-report-activitydetail.mdx} +7 -7
- package/docs/docs/cmd/aad/{o365group/o365group-report-activityfilecounts.mdx → m365group/m365group-report-activityfilecounts.mdx} +6 -6
- package/docs/docs/cmd/aad/{o365group/o365group-report-activitygroupcounts.mdx → m365group/m365group-report-activitygroupcounts.mdx} +6 -6
- package/docs/docs/cmd/aad/{o365group/o365group-report-activitystorage.mdx → m365group/m365group-report-activitystorage.mdx} +6 -6
- package/docs/docs/cmd/aad/{o365group/o365group-set.mdx → m365group/m365group-set.mdx} +8 -8
- package/docs/docs/cmd/aad/{o365group/o365group-teamify.mdx → m365group/m365group-teamify.mdx} +5 -5
- package/docs/docs/cmd/aad/{o365group/o365group-user-add.mdx → m365group/m365group-user-add.mdx} +5 -5
- package/docs/docs/cmd/aad/{o365group/o365group-user-list.mdx → m365group/m365group-user-list.mdx} +7 -7
- package/docs/docs/cmd/aad/{o365group/o365group-user-remove.mdx → m365group/m365group-user-remove.mdx} +5 -5
- package/docs/docs/cmd/aad/{o365group/o365group-user-set.mdx → m365group/m365group-user-set.mdx} +5 -5
- package/docs/docs/cmd/aad/user/user-set.mdx +1 -1
- package/docs/docs/cmd/cli/config/config-list.mdx +78 -0
- package/docs/docs/cmd/flow/flow-enable.mdx +2 -2
- package/docs/docs/cmd/login.mdx +6 -0
- package/docs/docs/cmd/pa/app/app-permission-ensure.mdx +85 -0
- package/docs/docs/cmd/pa/app/app-permission-remove.mdx +74 -0
- package/docs/docs/cmd/planner/plan/plan-add.mdx +1 -1
- package/docs/docs/cmd/pp/dataverse/dataverse-table-get.mdx +2 -2
- package/docs/docs/cmd/pp/dataverse/dataverse-table-list.mdx +2 -2
- package/docs/docs/cmd/pp/dataverse/dataverse-table-remove.mdx +3 -3
- package/docs/docs/cmd/spo/file/file-add.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-checkin.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +1 -9
- package/docs/docs/cmd/spo/file/file-checkout.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-copy.mdx +20 -16
- package/docs/docs/cmd/spo/file/file-get.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-list.mdx +2 -2
- package/docs/docs/cmd/spo/file/file-move.mdx +36 -18
- package/docs/docs/cmd/spo/file/file-remove.mdx +8 -8
- package/docs/docs/cmd/spo/file/file-rename.mdx +3 -3
- package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +2 -2
- package/docs/docs/cmd/spo/file/file-retentionlabel-remove.mdx +3 -3
- package/docs/docs/cmd/spo/file/file-roleassignment-add.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-roleassignment-remove.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-roleinheritance-break.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-roleinheritance-reset.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-sharinginfo-get.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-sharinglink-add.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-sharinglink-clear.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-sharinglink-get.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-sharinglink-list.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-sharinglink-remove.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-sharinglink-set.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-version-clear.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-version-get.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-version-list.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-version-remove.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-version-restore.mdx +1 -1
- package/docs/docs/cmd/spo/folder/folder-add.mdx +76 -1
- package/docs/docs/cmd/spo/folder/folder-copy.mdx +39 -12
- package/docs/docs/cmd/spo/folder/folder-get.mdx +1 -1
- package/docs/docs/cmd/spo/folder/folder-list.mdx +1 -1
- package/docs/docs/cmd/spo/folder/folder-move.mdx +40 -13
- package/docs/docs/cmd/spo/folder/folder-remove.mdx +1 -1
- package/docs/docs/cmd/spo/folder/folder-rename.mdx +5 -1
- package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.mdx +1 -1
- package/docs/docs/cmd/spo/folder/folder-retentionlabel-remove.mdx +1 -1
- package/docs/docs/cmd/spo/folder/folder-roleassignment-add.mdx +2 -2
- package/docs/docs/cmd/spo/folder/folder-roleassignment-remove.mdx +1 -1
- package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.mdx +1 -1
- package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.mdx +1 -1
- package/docs/docs/cmd/spo/listitem/listitem-attachment-list.mdx +1 -1
- package/docs/docs/cmd/spo/site/site-add.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-add.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-list.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-remove.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-commandset-add.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-commandset-remove.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +1 -1
- package/docs/docs/cmd/teams/team/team-add.mdx +1 -1
- package/docs/docs/cmd/yammer/network/network-list.mdx +1 -1
- package/npm-shrinkwrap.json +142 -88
- package/package.json +13 -13
- /package/dist/m365/aad/commands/{o365group → m365group}/GroupExtended.js +0 -0
|
@@ -52,7 +52,7 @@ class SpoFolderListCommand extends SpoCommand {
|
|
|
52
52
|
}
|
|
53
53
|
const allFolders = [];
|
|
54
54
|
const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, parentFolderUrl);
|
|
55
|
-
const requestUrl = `${args.options.webUrl}/_api/web/
|
|
55
|
+
const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/Folders`;
|
|
56
56
|
const queryParams = [`$skip=${skip}`, `$top=${SpoFolderListCommand.pageSize}`];
|
|
57
57
|
if (fieldProperties.expandProperties.length > 0) {
|
|
58
58
|
queryParams.push(`$expand=${fieldProperties.expandProperties.join(',')}`);
|
|
@@ -64,7 +64,7 @@ class SpoFolderListCommand extends SpoCommand {
|
|
|
64
64
|
queryParams.push(`$filter=${args.options.filter}`);
|
|
65
65
|
}
|
|
66
66
|
const requestOptions = {
|
|
67
|
-
url: `${requestUrl}
|
|
67
|
+
url: `${requestUrl}?${queryParams.join('&')}`,
|
|
68
68
|
method: 'GET',
|
|
69
69
|
headers: {
|
|
70
70
|
'accept': 'application/json;odata=nometadata'
|
|
@@ -3,10 +3,8 @@ 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 _SpoFolderMoveCommand_instances, _SpoFolderMoveCommand_initTelemetry, _SpoFolderMoveCommand_initOptions, _SpoFolderMoveCommand_initValidators;
|
|
7
|
-
import url from 'url';
|
|
6
|
+
var _SpoFolderMoveCommand_instances, _SpoFolderMoveCommand_initTelemetry, _SpoFolderMoveCommand_initOptions, _SpoFolderMoveCommand_initValidators, _SpoFolderMoveCommand_initOptionSets;
|
|
8
7
|
import request from '../../../../request.js';
|
|
9
|
-
import { spo } from '../../../../utils/spo.js';
|
|
10
8
|
import { urlUtil } from '../../../../utils/urlUtil.js';
|
|
11
9
|
import { validation } from '../../../../utils/validation.js';
|
|
12
10
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
@@ -21,79 +19,123 @@ class SpoFolderMoveCommand extends SpoCommand {
|
|
|
21
19
|
constructor() {
|
|
22
20
|
super();
|
|
23
21
|
_SpoFolderMoveCommand_instances.add(this);
|
|
22
|
+
this.nameConflictBehaviorOptions = ['fail', 'rename'];
|
|
24
23
|
__classPrivateFieldGet(this, _SpoFolderMoveCommand_instances, "m", _SpoFolderMoveCommand_initTelemetry).call(this);
|
|
25
24
|
__classPrivateFieldGet(this, _SpoFolderMoveCommand_instances, "m", _SpoFolderMoveCommand_initOptions).call(this);
|
|
26
25
|
__classPrivateFieldGet(this, _SpoFolderMoveCommand_instances, "m", _SpoFolderMoveCommand_initValidators).call(this);
|
|
26
|
+
__classPrivateFieldGet(this, _SpoFolderMoveCommand_instances, "m", _SpoFolderMoveCommand_initOptionSets).call(this);
|
|
27
27
|
}
|
|
28
28
|
getExcludedOptionsWithUrls() {
|
|
29
29
|
return ['targetUrl', 'sourceUrl'];
|
|
30
30
|
}
|
|
31
31
|
async commandAction(logger, args) {
|
|
32
|
-
const webUrl = args.options.webUrl;
|
|
33
|
-
const parsedUrl = url.parse(webUrl);
|
|
34
|
-
const tenantUrl = `${parsedUrl.protocol}//${parsedUrl.hostname}`;
|
|
35
|
-
const sourceRelUrl = urlUtil.getServerRelativePath(webUrl, args.options.sourceUrl);
|
|
36
|
-
const sourceAbsoluteUrl = urlUtil.urlCombine(tenantUrl, sourceRelUrl);
|
|
37
|
-
const allowSchemaMismatch = args.options.allowSchemaMismatch || false;
|
|
38
|
-
const requestUrl = urlUtil.urlCombine(webUrl, '/_api/site/CreateCopyJobs');
|
|
39
|
-
const requestOptions = {
|
|
40
|
-
url: requestUrl,
|
|
41
|
-
headers: {
|
|
42
|
-
'accept': 'application/json;odata=nometadata'
|
|
43
|
-
},
|
|
44
|
-
data: {
|
|
45
|
-
exportObjectUris: [sourceAbsoluteUrl],
|
|
46
|
-
destinationUri: urlUtil.urlCombine(tenantUrl, args.options.targetUrl),
|
|
47
|
-
options: {
|
|
48
|
-
"AllowSchemaMismatch": allowSchemaMismatch,
|
|
49
|
-
"IgnoreVersionHistory": true,
|
|
50
|
-
"IsMoveMode": true
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
responseType: 'json'
|
|
54
|
-
};
|
|
55
32
|
try {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
33
|
+
const sourcePath = await this.getSourcePath(logger, args.options);
|
|
34
|
+
if (this.verbose) {
|
|
35
|
+
await logger.logToStderr(`Moving folder '${sourcePath}' to '${args.options.targetUrl}'...`);
|
|
36
|
+
}
|
|
37
|
+
const absoluteSourcePath = this.getAbsoluteUrl(args.options.webUrl, sourcePath);
|
|
38
|
+
let absoluteTargetPath = this.getAbsoluteUrl(args.options.webUrl, args.options.targetUrl) + '/';
|
|
39
|
+
if (args.options.newName) {
|
|
40
|
+
absoluteTargetPath += args.options.newName;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Keep the original file name
|
|
44
|
+
absoluteTargetPath += sourcePath.substring(sourcePath.lastIndexOf('/') + 1);
|
|
45
|
+
}
|
|
46
|
+
const requestOptions = {
|
|
47
|
+
url: `${args.options.webUrl}/_api/SP.MoveCopyUtil.MoveFolderByPath`,
|
|
48
|
+
headers: {
|
|
49
|
+
accept: 'application/json;odata=nometadata'
|
|
50
|
+
},
|
|
51
|
+
responseType: 'json',
|
|
52
|
+
data: {
|
|
53
|
+
srcPath: {
|
|
54
|
+
DecodedUrl: absoluteSourcePath
|
|
55
|
+
},
|
|
56
|
+
destPath: {
|
|
57
|
+
DecodedUrl: absoluteTargetPath
|
|
58
|
+
},
|
|
59
|
+
options: {
|
|
60
|
+
KeepBoth: args.options.nameConflictBehavior === 'rename',
|
|
61
|
+
ShouldBypassSharedLocks: !!args.options.bypassSharedLock,
|
|
62
|
+
RetainEditorAndModifiedOnMove: !!args.options.retainEditorAndModified
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
await request.post(requestOptions);
|
|
73
67
|
}
|
|
74
68
|
catch (err) {
|
|
75
69
|
this.handleRejectedODataJsonPromise(err);
|
|
76
70
|
}
|
|
77
71
|
}
|
|
72
|
+
async getSourcePath(logger, options) {
|
|
73
|
+
if (options.sourceUrl) {
|
|
74
|
+
return urlUtil.getServerRelativePath(options.webUrl, options.sourceUrl);
|
|
75
|
+
}
|
|
76
|
+
if (this.verbose) {
|
|
77
|
+
await logger.logToStderr(`Retrieving server-relative path for folder with ID '${options.sourceId}'...`);
|
|
78
|
+
}
|
|
79
|
+
const requestOptions = {
|
|
80
|
+
url: `${options.webUrl}/_api/Web/GetFolderById('${options.sourceId}')?$select=ServerRelativePath`,
|
|
81
|
+
headers: {
|
|
82
|
+
accept: 'application/json;odata=nometadata'
|
|
83
|
+
},
|
|
84
|
+
responseType: 'json'
|
|
85
|
+
};
|
|
86
|
+
const file = await request.get(requestOptions);
|
|
87
|
+
return file.ServerRelativePath.DecodedUrl;
|
|
88
|
+
}
|
|
89
|
+
getAbsoluteUrl(webUrl, url) {
|
|
90
|
+
return url.startsWith('https://') ? url : urlUtil.getAbsoluteUrl(webUrl, url);
|
|
91
|
+
}
|
|
78
92
|
}
|
|
79
93
|
_SpoFolderMoveCommand_instances = new WeakSet(), _SpoFolderMoveCommand_initTelemetry = function _SpoFolderMoveCommand_initTelemetry() {
|
|
80
94
|
this.telemetry.push((args) => {
|
|
81
95
|
Object.assign(this.telemetryProperties, {
|
|
82
|
-
|
|
96
|
+
sourceUrl: typeof args.options.sourceUrl !== 'undefined',
|
|
97
|
+
sourceId: typeof args.options.sourceId !== 'undefined',
|
|
98
|
+
newName: typeof args.options.newName !== 'undefined',
|
|
99
|
+
nameConflictBehavior: typeof args.options.nameConflictBehavior !== 'undefined',
|
|
100
|
+
retainEditorAndModified: !!args.options.retainEditorAndModified,
|
|
101
|
+
bypassSharedLock: !!args.options.bypassSharedLock
|
|
83
102
|
});
|
|
84
103
|
});
|
|
85
104
|
}, _SpoFolderMoveCommand_initOptions = function _SpoFolderMoveCommand_initOptions() {
|
|
86
105
|
this.options.unshift({
|
|
87
106
|
option: '-u, --webUrl <webUrl>'
|
|
88
107
|
}, {
|
|
89
|
-
option: '-s, --sourceUrl
|
|
108
|
+
option: '-s, --sourceUrl [sourceUrl]'
|
|
109
|
+
}, {
|
|
110
|
+
option: '-i, --sourceId [sourceId]'
|
|
90
111
|
}, {
|
|
91
112
|
option: '-t, --targetUrl <targetUrl>'
|
|
92
113
|
}, {
|
|
93
|
-
option: '--
|
|
114
|
+
option: '--newName [newName]'
|
|
115
|
+
}, {
|
|
116
|
+
option: '--nameConflictBehavior [nameConflictBehavior]',
|
|
117
|
+
autocomplete: this.nameConflictBehaviorOptions
|
|
118
|
+
}, {
|
|
119
|
+
option: '--retainEditorAndModified'
|
|
120
|
+
}, {
|
|
121
|
+
option: '--bypassSharedLock'
|
|
94
122
|
});
|
|
95
123
|
}, _SpoFolderMoveCommand_initValidators = function _SpoFolderMoveCommand_initValidators() {
|
|
96
|
-
this.validators.push(async (args) =>
|
|
124
|
+
this.validators.push(async (args) => {
|
|
125
|
+
const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
|
|
126
|
+
if (isValidSharePointUrl !== true) {
|
|
127
|
+
return isValidSharePointUrl;
|
|
128
|
+
}
|
|
129
|
+
if (args.options.sourceId && !validation.isValidGuid(args.options.sourceId)) {
|
|
130
|
+
return `'${args.options.sourceId}' is not a valid GUID for sourceId.`;
|
|
131
|
+
}
|
|
132
|
+
if (args.options.nameConflictBehavior && this.nameConflictBehaviorOptions.indexOf(args.options.nameConflictBehavior) === -1) {
|
|
133
|
+
return `'${args.options.nameConflictBehavior}' is not a valid value for nameConflictBehavior. Allowed values are: ${this.nameConflictBehaviorOptions.join(', ')}.`;
|
|
134
|
+
}
|
|
135
|
+
return true;
|
|
136
|
+
});
|
|
137
|
+
}, _SpoFolderMoveCommand_initOptionSets = function _SpoFolderMoveCommand_initOptionSets() {
|
|
138
|
+
this.optionSets.push({ options: ['sourceUrl', 'sourceId'] });
|
|
97
139
|
};
|
|
98
140
|
export default new SpoFolderMoveCommand();
|
|
99
141
|
//# sourceMappingURL=folder-move.js.map
|
|
@@ -25,6 +25,9 @@ class SpoFolderRemoveCommand extends SpoCommand {
|
|
|
25
25
|
__classPrivateFieldGet(this, _SpoFolderRemoveCommand_instances, "m", _SpoFolderRemoveCommand_initOptions).call(this);
|
|
26
26
|
__classPrivateFieldGet(this, _SpoFolderRemoveCommand_instances, "m", _SpoFolderRemoveCommand_initValidators).call(this);
|
|
27
27
|
}
|
|
28
|
+
getExcludedOptionsWithUrls() {
|
|
29
|
+
return ['url'];
|
|
30
|
+
}
|
|
28
31
|
async commandAction(logger, args) {
|
|
29
32
|
if (args.options.force) {
|
|
30
33
|
await this.removeFolder(logger, args.options);
|
|
@@ -45,8 +48,8 @@ class SpoFolderRemoveCommand extends SpoCommand {
|
|
|
45
48
|
if (this.verbose) {
|
|
46
49
|
await logger.logToStderr(`Removing folder in site at ${options.webUrl}...`);
|
|
47
50
|
}
|
|
48
|
-
const
|
|
49
|
-
let requestUrl = `${options.webUrl}/_api/web/
|
|
51
|
+
const serverRelativePath = urlUtil.getServerRelativePath(options.webUrl, options.url);
|
|
52
|
+
let requestUrl = `${options.webUrl}/_api/web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativePath)}')`;
|
|
50
53
|
if (options.recycle) {
|
|
51
54
|
requestUrl += `/recycle()`;
|
|
52
55
|
}
|
|
@@ -71,8 +74,8 @@ class SpoFolderRemoveCommand extends SpoCommand {
|
|
|
71
74
|
_SpoFolderRemoveCommand_instances = new WeakSet(), _SpoFolderRemoveCommand_initTelemetry = function _SpoFolderRemoveCommand_initTelemetry() {
|
|
72
75
|
this.telemetry.push((args) => {
|
|
73
76
|
Object.assign(this.telemetryProperties, {
|
|
74
|
-
recycle:
|
|
75
|
-
force:
|
|
77
|
+
recycle: !!args.options.recycle,
|
|
78
|
+
force: !!args.options.force
|
|
76
79
|
});
|
|
77
80
|
});
|
|
78
81
|
}, _SpoFolderRemoveCommand_initOptions = function _SpoFolderRemoveCommand_initOptions() {
|
|
@@ -4,9 +4,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
4
4
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
5
|
};
|
|
6
6
|
var _SpoFolderRenameCommand_instances, _SpoFolderRenameCommand_initOptions, _SpoFolderRenameCommand_initValidators;
|
|
7
|
-
import config from '../../../../config.js';
|
|
8
7
|
import request from '../../../../request.js';
|
|
9
|
-
import {
|
|
8
|
+
import { formatting } from '../../../../utils/formatting.js';
|
|
10
9
|
import { urlUtil } from '../../../../utils/urlUtil.js';
|
|
11
10
|
import { validation } from '../../../../utils/validation.js';
|
|
12
11
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
@@ -29,32 +28,29 @@ class SpoFolderRenameCommand extends SpoCommand {
|
|
|
29
28
|
}
|
|
30
29
|
async commandAction(logger, args) {
|
|
31
30
|
try {
|
|
32
|
-
const contextResponse = await spo.getRequestDigest(args.options.webUrl);
|
|
33
|
-
const formDigestValue = contextResponse.FormDigestValue;
|
|
34
|
-
const webIdentityResp = await spo.getCurrentWebIdentity(args.options.webUrl, formDigestValue);
|
|
35
|
-
const folderObjectIdentity = await spo.getFolderIdentity(webIdentityResp.objectIdentity, args.options.webUrl, args.options.url, formDigestValue);
|
|
36
31
|
if (this.verbose) {
|
|
37
32
|
await logger.logToStderr(`Renaming folder ${args.options.url} to ${args.options.name}`);
|
|
38
33
|
}
|
|
39
34
|
const serverRelativePath = urlUtil.getServerRelativePath(args.options.webUrl, args.options.url);
|
|
40
|
-
const serverRelativeUrlWithoutOldFolder = serverRelativePath.substring(0, serverRelativePath.lastIndexOf('/'));
|
|
41
|
-
const renamedServerRelativeUrl = `${serverRelativeUrlWithoutOldFolder}/${args.options.name}`;
|
|
42
35
|
const requestOptions = {
|
|
43
|
-
url: `${args.options.webUrl}/
|
|
36
|
+
url: `${args.options.webUrl}/_api/Web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativePath)}')/ListItemAllFields`,
|
|
44
37
|
headers: {
|
|
45
|
-
'
|
|
38
|
+
accept: 'application/json;odata=nometadata',
|
|
39
|
+
'if-match': '*'
|
|
46
40
|
},
|
|
47
|
-
data:
|
|
41
|
+
data: {
|
|
42
|
+
FileLeafRef: args.options.name,
|
|
43
|
+
Title: args.options.name
|
|
44
|
+
},
|
|
45
|
+
responseType: 'json'
|
|
48
46
|
};
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (contents && contents.ErrorInfo) {
|
|
53
|
-
throw contents.ErrorInfo.ErrorMessage || 'ClientSvc unknown error';
|
|
47
|
+
const response = await request.patch(requestOptions);
|
|
48
|
+
if (response && response['odata.null'] === true) {
|
|
49
|
+
throw 'Folder not found.';
|
|
54
50
|
}
|
|
55
51
|
}
|
|
56
52
|
catch (err) {
|
|
57
|
-
this.
|
|
53
|
+
this.handleRejectedODataJsonPromise(err);
|
|
58
54
|
}
|
|
59
55
|
}
|
|
60
56
|
}
|
|
@@ -75,7 +75,7 @@ class SpoFolderRetentionLabelEnsureCommand extends SpoCommand {
|
|
|
75
75
|
}
|
|
76
76
|
else {
|
|
77
77
|
const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
|
|
78
|
-
requestUrl += `
|
|
78
|
+
requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
|
|
79
79
|
}
|
|
80
80
|
const requestOptions = {
|
|
81
81
|
url: `${requestUrl}?$expand=ListItemAllFields,ListItemAllFields/ParentList&$select=ServerRelativeUrl,ListItemAllFields/ParentList/Id,ListItemAllFields/Id`,
|
|
@@ -91,7 +91,7 @@ class SpoFolderRetentionLabelRemoveCommand extends SpoCommand {
|
|
|
91
91
|
}
|
|
92
92
|
else {
|
|
93
93
|
const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
|
|
94
|
-
requestUrl += `
|
|
94
|
+
requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
|
|
95
95
|
}
|
|
96
96
|
const requestOptions = {
|
|
97
97
|
url: `${requestUrl}?$expand=ListItemAllFields,ListItemAllFields/ParentList&$select=ServerRelativeUrl,ListItemAllFields/ParentList/Id,ListItemAllFields/Id`,
|
|
@@ -41,7 +41,7 @@ class SpoFolderRoleAssignmentAddCommand extends SpoCommand {
|
|
|
41
41
|
requestUrl += `GetList('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
|
|
42
42
|
}
|
|
43
43
|
else {
|
|
44
|
-
requestUrl += `
|
|
44
|
+
requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
|
|
45
45
|
}
|
|
46
46
|
const roleDefinitionId = await this.getRoleDefinitionId(args.options);
|
|
47
47
|
if (args.options.upn) {
|
|
@@ -33,7 +33,7 @@ class SpoFolderRoleAssignmentRemoveCommand extends SpoCommand {
|
|
|
33
33
|
await logger.logToStderr(`Removing role assignment from folder in site at ${args.options.webUrl}...`);
|
|
34
34
|
}
|
|
35
35
|
const serverRelativeUrl = urlUtil.getServerRelativePath(args.options.webUrl, args.options.folderUrl);
|
|
36
|
-
const requestUrl = `${args.options.webUrl}/_api/web/
|
|
36
|
+
const requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
|
|
37
37
|
try {
|
|
38
38
|
if (args.options.upn) {
|
|
39
39
|
args.options.principalId = await this.getUserPrincipalId(args.options);
|
|
@@ -36,7 +36,7 @@ class SpoFolderRoleInheritanceBreakCommand extends SpoCommand {
|
|
|
36
36
|
requestUrl += `GetList('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
|
|
37
37
|
}
|
|
38
38
|
else {
|
|
39
|
-
requestUrl += `
|
|
39
|
+
requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
|
|
40
40
|
}
|
|
41
41
|
const requestOptions = {
|
|
42
42
|
url: `${requestUrl}/breakroleinheritance(${keepExistingPermissions})`,
|
|
@@ -35,7 +35,7 @@ class SpoFolderRoleInheritanceResetCommand extends SpoCommand {
|
|
|
35
35
|
requestUrl += `GetList('${formatting.encodeQueryParameter(serverRelativeUrl)}')`;
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
38
|
-
requestUrl += `
|
|
38
|
+
requestUrl += `GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(serverRelativeUrl)}')/ListItemAllFields`;
|
|
39
39
|
}
|
|
40
40
|
const requestOptions = {
|
|
41
41
|
url: `${requestUrl}/resetroleinheritance`,
|
|
@@ -57,7 +57,6 @@ class SpoGroupListCommand extends SpoCommand {
|
|
|
57
57
|
responseType: 'json'
|
|
58
58
|
};
|
|
59
59
|
const groupProperties = await request.get(requestOptions);
|
|
60
|
-
await logger.log(groupProperties);
|
|
61
60
|
if (!options.output || !Cli.shouldTrimOutput(options.output)) {
|
|
62
61
|
await logger.log(groupProperties);
|
|
63
62
|
}
|
|
@@ -119,8 +119,8 @@ _SpoNavigationNodeSetCommand_instances = new WeakSet(), _SpoNavigationNodeSetCom
|
|
|
119
119
|
if (isValidSharePointUrl !== true) {
|
|
120
120
|
return isValidSharePointUrl;
|
|
121
121
|
}
|
|
122
|
-
if (args.options.audienceIds === undefined &&
|
|
123
|
-
return `Please specify
|
|
122
|
+
if (args.options.audienceIds === undefined && args.options.url === undefined && args.options.isExternal === undefined && !args.options.title && args.options.openInNewWindow === undefined) {
|
|
123
|
+
return `Please specify at least one property to update.`;
|
|
124
124
|
}
|
|
125
125
|
if (args.options.audienceIds) {
|
|
126
126
|
const audienceIdsSplitted = args.options.audienceIds.split(',');
|
|
@@ -12,7 +12,7 @@ import { formatting } from '../../../../utils/formatting.js';
|
|
|
12
12
|
import { spo } from '../../../../utils/spo.js';
|
|
13
13
|
import { urlUtil } from '../../../../utils/urlUtil.js';
|
|
14
14
|
import { validation } from '../../../../utils/validation.js';
|
|
15
|
-
import
|
|
15
|
+
import aadM365GroupSetCommand from '../../../aad/commands/m365group/m365group-set.js';
|
|
16
16
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
17
17
|
import commands from '../../commands.js';
|
|
18
18
|
import { SharingCapabilities } from '../site/SharingCapabilities.js';
|
|
@@ -238,7 +238,7 @@ class SpoSiteSetCommand extends SpoCommand {
|
|
|
238
238
|
debug: this.debug,
|
|
239
239
|
verbose: this.verbose
|
|
240
240
|
};
|
|
241
|
-
promises.push(Cli.executeCommand(
|
|
241
|
+
promises.push(Cli.executeCommand(aadM365GroupSetCommand, { options: { ...commandOptions, _: [] } }));
|
|
242
242
|
}
|
|
243
243
|
if (args.options.description) {
|
|
244
244
|
promises.push(this.setGroupifiedSiteDescription(args.options.description));
|
|
@@ -26,15 +26,7 @@ class SpoThemeListCommand extends SpoCommand {
|
|
|
26
26
|
responseType: 'json'
|
|
27
27
|
};
|
|
28
28
|
const rawRes = await request.post(requestOptions);
|
|
29
|
-
|
|
30
|
-
if (themePreviews && themePreviews.length > 0) {
|
|
31
|
-
await logger.log(themePreviews);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
if (this.verbose) {
|
|
35
|
-
await logger.logToStderr('No themes found');
|
|
36
|
-
}
|
|
37
|
-
}
|
|
29
|
+
await logger.log(rawRes.themePreviews);
|
|
38
30
|
}
|
|
39
31
|
catch (err) {
|
|
40
32
|
this.handleRejectedODataJsonPromise(err);
|
package/dist/utils/planner.js
CHANGED
|
@@ -31,11 +31,12 @@ export const planner = {
|
|
|
31
31
|
return odata.getAllItems(`${graphResource}/v1.0/groups/${groupId}/planner/plans`, metadata);
|
|
32
32
|
},
|
|
33
33
|
/**
|
|
34
|
-
* Get
|
|
34
|
+
* Get the Planner plan for a specific Roster.
|
|
35
35
|
* @param rosterId Roster ID.
|
|
36
36
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
async getPlanByRosterId(rosterId, metadata = 'none') {
|
|
38
|
+
const plans = await odata.getAllItems(`${graphResource}/beta/planner/rosters/${rosterId}/plans`, metadata);
|
|
39
|
+
return plans[0];
|
|
39
40
|
},
|
|
40
41
|
/**
|
|
41
42
|
* Get Planner plan by title in a specific group.
|
package/dist/utils/spo.js
CHANGED
|
@@ -93,47 +93,6 @@ export const spo = {
|
|
|
93
93
|
}
|
|
94
94
|
});
|
|
95
95
|
},
|
|
96
|
-
waitUntilCopyJobFinished({ copyJobInfo, siteUrl, pollingInterval, resolve, reject, logger, debug, verbose }) {
|
|
97
|
-
const requestUrl = `${siteUrl}/_api/site/GetCopyJobProgress`;
|
|
98
|
-
const requestOptions = {
|
|
99
|
-
url: requestUrl,
|
|
100
|
-
headers: {
|
|
101
|
-
'accept': 'application/json;odata=nometadata'
|
|
102
|
-
},
|
|
103
|
-
data: { "copyJobInfo": copyJobInfo },
|
|
104
|
-
responseType: 'json'
|
|
105
|
-
};
|
|
106
|
-
request
|
|
107
|
-
.post(requestOptions)
|
|
108
|
-
.then(async (resp) => {
|
|
109
|
-
if (debug) {
|
|
110
|
-
await logger.logToStderr('getCopyJobProgress response...');
|
|
111
|
-
await logger.logToStderr(resp);
|
|
112
|
-
}
|
|
113
|
-
for (const item of resp.Logs) {
|
|
114
|
-
const log = JSON.parse(item);
|
|
115
|
-
// reject if progress error
|
|
116
|
-
if (log.Event === "JobError" || log.Event === "JobFatalError") {
|
|
117
|
-
return reject(log.Message);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
// two possible scenarios
|
|
121
|
-
// job done = success promise returned
|
|
122
|
-
// job in progress = recursive call using setTimeout returned
|
|
123
|
-
if (resp.JobState === 0) {
|
|
124
|
-
// job done
|
|
125
|
-
if (verbose) {
|
|
126
|
-
process.stdout.write('\n');
|
|
127
|
-
}
|
|
128
|
-
resolve();
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
setTimeout(() => {
|
|
132
|
-
spo.waitUntilCopyJobFinished({ copyJobInfo, siteUrl, pollingInterval, resolve, reject, logger, debug, verbose });
|
|
133
|
-
}, pollingInterval);
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
},
|
|
137
96
|
async getSpoUrl(logger, debug) {
|
|
138
97
|
if (auth.service.spoUrl) {
|
|
139
98
|
if (debug) {
|
|
@@ -292,7 +251,7 @@ export const spo = {
|
|
|
292
251
|
nextFolder += `/${folders[folderIndex]}`;
|
|
293
252
|
const folderServerRelativeUrl = urlUtil.getServerRelativePath(webFullUrl, nextFolder);
|
|
294
253
|
const requestOptions = {
|
|
295
|
-
url: `${webFullUrl}/_api/web/
|
|
254
|
+
url: `${webFullUrl}/_api/web/GetFolderByServerRelativePath(DecodedUrl='${formatting.encodeQueryParameter(folderServerRelativeUrl)}')`,
|
|
296
255
|
headers: {
|
|
297
256
|
'accept': 'application/json;odata=nometadata'
|
|
298
257
|
}
|
|
@@ -619,12 +578,12 @@ export const spo = {
|
|
|
619
578
|
return request.post(requestOptions);
|
|
620
579
|
},
|
|
621
580
|
/**
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
581
|
+
* Retrieves the spo group by name.
|
|
582
|
+
* @param webUrl Web url
|
|
583
|
+
* @param name The name of the group
|
|
584
|
+
* @param logger the Logger object
|
|
585
|
+
* @param debug set if debug logging should be logged
|
|
586
|
+
*/
|
|
628
587
|
async getGroupByName(webUrl, name, logger, debug) {
|
|
629
588
|
if (debug) {
|
|
630
589
|
await logger.logToStderr(`Retrieving the group by name ${name}`);
|
|
@@ -641,12 +600,12 @@ export const spo = {
|
|
|
641
600
|
return groupInstance;
|
|
642
601
|
},
|
|
643
602
|
/**
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
603
|
+
* Retrieves the role definition by name.
|
|
604
|
+
* @param webUrl Web url
|
|
605
|
+
* @param name the name of the role definition
|
|
606
|
+
* @param logger the Logger object
|
|
607
|
+
* @param debug set if debug logging should be logged
|
|
608
|
+
*/
|
|
650
609
|
async getRoleDefinitionByName(webUrl, name, logger, debug) {
|
|
651
610
|
if (debug) {
|
|
652
611
|
await logger.logToStderr(`Retrieving the role definitions for ${name}`);
|
|
@@ -2,14 +2,14 @@ import Global from '/docs/cmd/_global.mdx';
|
|
|
2
2
|
import Tabs from '@theme/Tabs';
|
|
3
3
|
import TabItem from '@theme/TabItem';
|
|
4
4
|
|
|
5
|
-
# aad
|
|
5
|
+
# aad m365group add
|
|
6
6
|
|
|
7
7
|
Creates a Microsoft 365 Group
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
m365 aad
|
|
12
|
+
m365 aad m365group add [options]
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Options
|
|
@@ -61,55 +61,55 @@ If an invalid user is provided in the comma-separated list of Owners or Members,
|
|
|
61
61
|
Create a public Microsoft 365 Group
|
|
62
62
|
|
|
63
63
|
```sh
|
|
64
|
-
m365 aad
|
|
64
|
+
m365 aad m365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
Create a private Microsoft 365 Group
|
|
68
68
|
|
|
69
69
|
```sh
|
|
70
|
-
m365 aad
|
|
70
|
+
m365 aad m365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --isPrivate
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
Create a public Microsoft 365 Group and set specified users as its owners
|
|
74
74
|
|
|
75
75
|
```sh
|
|
76
|
-
m365 aad
|
|
76
|
+
m365 aad m365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --owners "DebraB@contoso.onmicrosoft.com,DiegoS@contoso.onmicrosoft.com"
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
Create a public Microsoft 365 Group and set specified users as its members
|
|
80
80
|
|
|
81
81
|
```sh
|
|
82
|
-
m365 aad
|
|
82
|
+
m365 aad m365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --members "DebraB@contoso.onmicrosoft.com,DiegoS@contoso.onmicrosoft.com"
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
Create a public Microsoft 365 Group and allow only group members to be able to post conversations to the group.
|
|
86
86
|
|
|
87
87
|
```sh
|
|
88
|
-
m365 aad
|
|
88
|
+
m365 aad m365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --allowMembersToPost
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
Create a public Microsoft 365 Group and hide it from the Outlook experiences (web and client).
|
|
92
92
|
|
|
93
93
|
```sh
|
|
94
|
-
m365 aad
|
|
94
|
+
m365 aad m365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --hideGroupInOutlook
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
Create a public Microsoft 365 Group and subscribe all new group members to receive group conversation emails when new messages are posted in the group.
|
|
98
98
|
|
|
99
99
|
```sh
|
|
100
|
-
m365 aad
|
|
100
|
+
m365 aad m365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --subscribeNewGroupMembers
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
Create a public Microsoft 365 Group and set to not send welcome emails to new group members.
|
|
104
104
|
|
|
105
105
|
```sh
|
|
106
|
-
m365 aad
|
|
106
|
+
m365 aad m365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --welcomeEmailDisabled
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
Create a public Microsoft 365 Group and set its logo
|
|
110
110
|
|
|
111
111
|
```sh
|
|
112
|
-
m365 aad
|
|
112
|
+
m365 aad m365group add --displayName Finance --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname finance --logoPath images/logo.png
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
## Response
|
|
@@ -208,7 +208,7 @@ m365 aad o365group add --displayName Finance --description "This is the Contoso
|
|
|
208
208
|
<TabItem value="Markdown">
|
|
209
209
|
|
|
210
210
|
```md
|
|
211
|
-
# aad
|
|
211
|
+
# aad m365group add --displayName "Finance" --description "This is the Contoso Finance Group. Please come here and check out the latest news, posts, files, and more." --mailNickname "finance"
|
|
212
212
|
|
|
213
213
|
Date: 2023-06-01
|
|
214
214
|
|
|
@@ -230,4 +230,4 @@ m365 aad o365group add --displayName Finance --description "This is the Contoso
|
|
|
230
230
|
```
|
|
231
231
|
|
|
232
232
|
</TabItem>
|
|
233
|
-
</Tabs>
|
|
233
|
+
</Tabs>
|