@pnp/cli-microsoft365 6.4.0-beta.aacf728 → 6.4.0-beta.dbf1225
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/.devcontainer/Dockerfile +5 -2
- package/.eslintrc.js +3 -0
- package/Dockerfile +6 -3
- package/README.md +12 -1
- package/dist/Auth.js +1 -3
- package/dist/Command.js +1 -0
- package/dist/m365/aad/commands/user/user-get.js +3 -0
- package/dist/m365/aad/commands/user/user-set.js +3 -0
- package/dist/m365/aad/commands/user/user-signin-list.js +3 -0
- package/dist/m365/file/commands/file-list.js +5 -1
- package/dist/m365/flow/commands/owner/owner-ensure.js +147 -0
- package/dist/m365/flow/commands/owner/owner-remove.js +147 -0
- package/dist/m365/flow/commands/run/run-list.js +5 -2
- package/dist/m365/flow/commands.js +2 -0
- package/dist/m365/planner/commands/roster/roster-member-add.js +3 -0
- package/dist/m365/planner/commands/roster/roster-member-get.js +98 -0
- package/dist/m365/planner/commands.js +1 -0
- package/dist/m365/purview/commands/retentionevent/retentionevent-add.js +138 -0
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-add.js +48 -14
- package/dist/m365/purview/commands.js +1 -0
- package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.17.0-beta.1.js +59 -0
- package/dist/m365/spfx/commands/project/project-upgrade.js +16 -13
- package/dist/m365/spfx/commands/spfx-doctor.js +43 -29
- package/dist/m365/spo/commands/commandset/commandset-add.js +138 -0
- package/dist/m365/spo/commands/commandset/commandset-get.js +128 -0
- package/dist/m365/spo/commands/commandset/commandset-list.js +77 -0
- package/dist/m365/spo/commands/commandset/commandset-remove.js +146 -0
- package/dist/m365/spo/commands/commandset/commandset-set.js +182 -0
- package/dist/m365/spo/commands/customaction/customaction-get.js +27 -7
- package/dist/m365/spo/commands/file/file-move.js +1 -1
- package/dist/m365/spo/commands/group/group-member-add.js +54 -95
- package/dist/m365/spo/commands/list/list-add.js +11 -8
- package/dist/m365/spo/commands/list/list-set.js +3 -3
- package/dist/m365/spo/commands/navigation/navigation-node-add.js +5 -4
- package/dist/m365/spo/commands/navigation/navigation-node-set.js +5 -1
- package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-get.js +118 -0
- package/dist/m365/spo/commands/term/term-get.js +68 -48
- package/dist/m365/spo/commands/user/user-ensure.js +105 -0
- package/dist/m365/spo/commands.js +7 -0
- package/dist/m365/todo/commands/task/task-add.js +35 -3
- package/dist/utils/aadGroup.js +18 -0
- package/dist/utils/aadUser.js +37 -0
- package/dist/utils/md.js +7 -0
- package/dist/utils/spo.js +32 -0
- package/docs/docs/cmd/aad/app/app-add.md +3 -3
- package/docs/docs/cmd/aad/approleassignment/approleassignment-add.md +5 -5
- package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.md +3 -3
- package/docs/docs/cmd/cli/completion/completion-clink-update.md +4 -4
- package/docs/docs/cmd/flow/owner/owner-ensure.md +61 -0
- package/docs/docs/cmd/flow/owner/owner-remove.md +67 -0
- package/docs/docs/cmd/flow/run/run-list.md +28 -0
- package/docs/docs/cmd/onenote/page/page-list.md +1 -1
- package/docs/docs/cmd/outlook/mail/mail-send.md +7 -3
- package/docs/docs/cmd/outlook/message/message-get.md +143 -0
- package/docs/docs/cmd/outlook/message/message-list.md +119 -0
- package/docs/docs/cmd/outlook/message/message-move.md +4 -0
- package/docs/docs/cmd/outlook/report/report-mailactivitycounts.md +40 -0
- package/docs/docs/cmd/outlook/report/report-mailactivityusercounts.md +40 -0
- package/docs/docs/cmd/outlook/report/report-mailactivityuserdetail.md +45 -0
- package/docs/docs/cmd/outlook/report/report-mailappusageappsusercounts.md +43 -0
- package/docs/docs/cmd/outlook/report/report-mailappusageusercounts.md +44 -0
- package/docs/docs/cmd/outlook/report/report-mailappusageuserdetail.md +48 -0
- package/docs/docs/cmd/outlook/report/report-mailappusageversionsusercounts.md +41 -0
- package/docs/docs/cmd/outlook/report/report-mailboxusagedetail.md +49 -0
- package/docs/docs/cmd/outlook/report/report-mailboxusagemailboxcount.md +37 -0
- package/docs/docs/cmd/outlook/report/report-mailboxusagequotastatusmailboxcounts.md +40 -0
- package/docs/docs/cmd/outlook/report/report-mailboxusagestorage.md +36 -0
- package/docs/docs/cmd/outlook/room/room-list.md +81 -0
- package/docs/docs/cmd/outlook/roomlist/roomlist-list.md +58 -0
- package/docs/docs/cmd/planner/plan/plan-add.md +3 -3
- package/docs/docs/cmd/planner/plan/plan-set.md +73 -7
- package/docs/docs/cmd/planner/roster/roster-add.md +16 -1
- package/docs/docs/cmd/planner/roster/roster-member-get.md +87 -0
- package/docs/docs/cmd/planner/task/task-add.md +230 -0
- package/docs/docs/cmd/planner/task/task-checklistitem-add.md +55 -0
- package/docs/docs/cmd/planner/task/task-checklistitem-list.md +55 -0
- package/docs/docs/cmd/planner/task/task-checklistitem-remove.md +4 -0
- package/docs/docs/cmd/planner/task/task-get.md +131 -0
- package/docs/docs/cmd/planner/task/task-list.md +92 -0
- package/docs/docs/cmd/planner/task/task-reference-add.md +46 -0
- package/docs/docs/cmd/planner/task/task-reference-list.md +46 -0
- package/docs/docs/cmd/planner/task/task-reference-remove.md +4 -0
- package/docs/docs/cmd/planner/task/task-remove.md +4 -0
- package/docs/docs/cmd/planner/task/task-set.md +230 -0
- package/docs/docs/cmd/planner/tenant/tenant-settings-list.md +55 -0
- package/docs/docs/cmd/planner/tenant/tenant-settings-set.md +55 -0
- package/docs/docs/cmd/pp/card/card-get.md +2 -2
- package/docs/docs/cmd/pp/card/card-list.md +2 -2
- package/docs/docs/cmd/purview/retentionevent/retentionevent-add.md +149 -0
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.md +7 -7
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.md +12 -0
- package/docs/docs/cmd/skype/report/report-activitycounts.md +38 -0
- package/docs/docs/cmd/skype/report/report-activityusercounts.md +38 -0
- package/docs/docs/cmd/skype/report/report-activityuserdetail.md +67 -0
- package/docs/docs/cmd/spfx/project/project-doctor.md +3 -3
- package/docs/docs/cmd/spfx/project/project-externalize.md +3 -3
- package/docs/docs/cmd/spfx/project/project-permissions-grant.md +21 -0
- package/docs/docs/cmd/spfx/project/project-upgrade.md +3 -3
- package/docs/docs/cmd/spfx/spfx-doctor.md +3 -3
- package/docs/docs/cmd/spo/cdn/cdn-get.md +6 -6
- package/docs/docs/cmd/spo/cdn/cdn-origin-add.md +3 -3
- package/docs/docs/cmd/spo/cdn/cdn-origin-list.md +3 -3
- package/docs/docs/cmd/spo/cdn/cdn-origin-remove.md +3 -3
- package/docs/docs/cmd/spo/cdn/cdn-policy-list.md +3 -3
- package/docs/docs/cmd/spo/cdn/cdn-policy-set.md +3 -3
- package/docs/docs/cmd/spo/cdn/cdn-set.md +3 -3
- package/docs/docs/cmd/spo/commandset/commandset-add.md +159 -0
- package/docs/docs/cmd/spo/commandset/commandset-get.md +149 -0
- package/docs/docs/cmd/spo/commandset/commandset-list.md +109 -0
- package/docs/docs/cmd/spo/commandset/commandset-remove.md +55 -0
- package/docs/docs/cmd/spo/commandset/commandset-set.md +71 -0
- package/docs/docs/cmd/spo/customaction/customaction-get.md +113 -11
- package/docs/docs/cmd/spo/externaluser/externaluser-list.md +2 -0
- package/docs/docs/cmd/spo/group/group-member-add.md +26 -4
- package/docs/docs/cmd/spo/hidedefaultthemes/hidedefaultthemes-get.md +2 -0
- package/docs/docs/cmd/spo/hidedefaultthemes/hidedefaultthemes-set.md +2 -0
- package/docs/docs/cmd/spo/homesite/homesite-remove.md +2 -0
- package/docs/docs/cmd/spo/homesite/homesite-set.md +2 -0
- package/docs/docs/cmd/spo/knowledgehub/knowledgehub-get.md +2 -0
- package/docs/docs/cmd/spo/knowledgehub/knowledgehub-remove.md +2 -0
- package/docs/docs/cmd/spo/knowledgehub/knowledgehub-set.md +3 -3
- package/docs/docs/cmd/spo/list/list-add.md +2 -2
- package/docs/docs/cmd/spo/list/list-set.md +2 -2
- package/docs/docs/cmd/spo/listitem/listitem-add.md +1 -1
- package/docs/docs/cmd/spo/listitem/listitem-batch-add.md +1 -1
- package/docs/docs/cmd/spo/listitem/listitem-set.md +1 -1
- package/docs/docs/cmd/spo/navigation/navigation-node-add.md +3 -3
- package/docs/docs/cmd/spo/navigation/navigation-node-set.md +2 -2
- package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-add.md +2 -0
- package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-list.md +2 -0
- package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-remove.md +2 -0
- package/docs/docs/cmd/spo/orgnewssite/orgnewssite-list.md +2 -0
- package/docs/docs/cmd/spo/orgnewssite/orgnewssite-remove.md +2 -0
- package/docs/docs/cmd/spo/orgnewssite/orgnewssite-set.md +3 -3
- package/docs/docs/cmd/spo/site/site-appcatalog-add.md +2 -0
- package/docs/docs/cmd/spo/site/site-appcatalog-remove.md +3 -3
- package/docs/docs/cmd/spo/site/site-commsite-enable.md +2 -0
- package/docs/docs/cmd/spo/site/site-list.md +3 -3
- package/docs/docs/cmd/spo/site/site-remove.md +3 -3
- package/docs/docs/cmd/spo/site/site-rename.md +3 -3
- package/docs/docs/cmd/spo/site/site-set.md +5 -5
- package/docs/docs/cmd/spo/storageentity/storageentity-remove.md +3 -3
- package/docs/docs/cmd/spo/storageentity/storageentity-set.md +3 -3
- package/docs/docs/cmd/spo/tenant/tenant-appcatalog-add.md +3 -3
- package/docs/docs/cmd/spo/tenant/tenant-appcatalogurl-get.md +2 -0
- package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-add.md +3 -3
- package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-get.md +142 -0
- package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-list.md +2 -0
- package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-remove.md +3 -3
- package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-restore.md +3 -3
- package/docs/docs/cmd/spo/tenant/tenant-settings-list.md +2 -0
- package/docs/docs/cmd/spo/tenant/tenant-settings-set.md +28 -26
- package/docs/docs/cmd/spo/term/term-add.md +3 -3
- package/docs/docs/cmd/spo/term/term-get.md +3 -3
- package/docs/docs/cmd/spo/term/term-group-add.md +2 -0
- package/docs/docs/cmd/spo/term/term-group-get.md +2 -0
- package/docs/docs/cmd/spo/term/term-group-list.md +2 -0
- package/docs/docs/cmd/spo/term/term-list.md +3 -1
- package/docs/docs/cmd/spo/term/term-set-add.md +3 -3
- package/docs/docs/cmd/spo/term/term-set-get.md +2 -0
- package/docs/docs/cmd/spo/term/term-set-list.md +2 -0
- package/docs/docs/cmd/spo/theme/theme-apply.md +3 -3
- package/docs/docs/cmd/spo/theme/theme-get.md +2 -0
- package/docs/docs/cmd/spo/theme/theme-list.md +2 -0
- package/docs/docs/cmd/spo/theme/theme-remove.md +2 -0
- package/docs/docs/cmd/spo/theme/theme-set.md +3 -3
- package/docs/docs/cmd/spo/user/user-ensure.md +109 -0
- package/docs/docs/cmd/teams/channel/channel-get.md +1 -1
- package/docs/docs/cmd/teams/channel/channel-member-add.md +2 -2
- package/docs/docs/cmd/teams/message/message-get.md +39 -4
- package/docs/docs/cmd/teams/message/message-list.md +41 -6
- package/docs/docs/cmd/teams/message/message-reply-list.md +39 -4
- package/docs/docs/cmd/teams/messagingsettings/messagingsettings-list.md +20 -2
- package/docs/docs/cmd/teams/messagingsettings/messagingsettings-set.md +8 -8
- package/docs/docs/cmd/teams/report/report-deviceusagedistributionusercounts.md +12 -5
- package/docs/docs/cmd/teams/report/report-deviceusageusercounts.md +13 -6
- package/docs/docs/cmd/teams/report/report-deviceusageuserdetail.md +14 -7
- package/docs/docs/cmd/teams/report/report-directroutingcalls.md +13 -6
- package/docs/docs/cmd/teams/report/report-pstncalls.md +13 -6
- package/docs/docs/cmd/teams/report/report-useractivitycounts.md +13 -6
- package/docs/docs/cmd/teams/report/report-useractivityusercounts.md +13 -6
- package/docs/docs/cmd/teams/report/report-useractivityuserdetail.md +13 -6
- package/docs/docs/cmd/teams/tab/tab-add.md +16 -0
- package/docs/docs/cmd/teams/tab/tab-get.md +17 -0
- package/docs/docs/cmd/teams/tab/tab-list.md +19 -0
- package/docs/docs/cmd/teams/team/team-add.md +77 -8
- package/docs/docs/cmd/teams/team/team-app-list.md +18 -2
- package/docs/docs/cmd/teams/team/team-archive.md +2 -2
- package/docs/docs/cmd/teams/team/team-clone.md +8 -8
- package/docs/docs/cmd/teams/team/team-get.md +34 -4
- package/docs/docs/cmd/teams/team/team-list.md +34 -3
- package/docs/docs/cmd/teams/team/team-remove.md +3 -3
- package/docs/docs/cmd/teams/team/team-set.md +8 -8
- package/docs/docs/cmd/teams/team/team-unarchive.md +3 -2
- package/docs/docs/cmd/teams/user/user-app-add.md +3 -3
- package/docs/docs/cmd/teams/user/user-app-list.md +18 -2
- package/docs/docs/cmd/teams/user/user-app-remove.md +4 -4
- package/docs/docs/cmd/teams/user/user-list.md +21 -4
- package/docs/docs/cmd/todo/task/task-add.md +47 -2
- package/npm-shrinkwrap.json +277 -192
- package/package.json +14 -13
package/.devcontainer/Dockerfile
CHANGED
|
@@ -4,12 +4,15 @@ LABEL name="CLI for Microsoft 365 Development" \
|
|
|
4
4
|
description="Development container for contributing to CLI for Microsoft 365" \
|
|
5
5
|
homepage="https://pnp.github.io/cli-microsoft365" \
|
|
6
6
|
maintainers="Waldek Mastykarz <waldek@mastykarz.nl>, \
|
|
7
|
-
Velin Georgiev <velin.georgiev@gmail.com>, \
|
|
8
7
|
Garry Trinder <garry.trinder@live.com>, \
|
|
9
8
|
Albert-Jan Schot <appie@digiwijs.nl>, \
|
|
10
9
|
Rabia Williams <rabiawilliams@gmail.com>, \
|
|
11
10
|
Patrick Lamber <patrick@nubo.eu>, \
|
|
12
|
-
Arjun Menon <arjun.umenon@gmail.com
|
|
11
|
+
Arjun Menon <arjun.umenon@gmail.com>, \
|
|
12
|
+
Adam Wojcik <adam.wojcik.it@gmail.com>, \
|
|
13
|
+
Martin Lingstuyl <mlingstuyl@live.com>, \
|
|
14
|
+
Jasey Waegebaert <jaseyw@gmigroup.be>, \
|
|
15
|
+
Milan Holemans <Milan.Holemans@vanroey.be>"
|
|
13
16
|
|
|
14
17
|
ENV NPM_CONFIG_PREFIX=/home/cli-microsoft365-dev/.npm-global \
|
|
15
18
|
PATH=$PATH:/home/cli-microsoft365-dev/.npm-global/bin
|
package/.eslintrc.js
CHANGED
|
@@ -18,6 +18,7 @@ const dictionary = [
|
|
|
18
18
|
'checklist',
|
|
19
19
|
'client',
|
|
20
20
|
'comm',
|
|
21
|
+
'command',
|
|
21
22
|
'content',
|
|
22
23
|
'conversation',
|
|
23
24
|
'custom',
|
|
@@ -72,8 +73,10 @@ const dictionary = [
|
|
|
72
73
|
'room',
|
|
73
74
|
'schema',
|
|
74
75
|
'service',
|
|
76
|
+
'set',
|
|
75
77
|
'setting',
|
|
76
78
|
'settings',
|
|
79
|
+
'setup',
|
|
77
80
|
'sharing',
|
|
78
81
|
'side',
|
|
79
82
|
'site',
|
package/Dockerfile
CHANGED
|
@@ -6,12 +6,15 @@ LABEL name="m365pnp/cli-microsoft365:${CLI_VERSION}" \
|
|
|
6
6
|
description="Manage Microsoft 365 and SharePoint Framework projects on any platform" \
|
|
7
7
|
homepage="https://pnp.github.io/cli-microsoft365" \
|
|
8
8
|
maintainers="Waldek Mastykarz <waldek@mastykarz.nl>, \
|
|
9
|
-
Velin Georgiev <velin.georgiev@gmail.com>, \
|
|
10
9
|
Garry Trinder <garry.trinder@live.com>, \
|
|
11
10
|
Albert-Jan Schot <appie@digiwijs.nl>, \
|
|
12
11
|
Rabia Williams <rabiawilliams@gmail.com>, \
|
|
13
|
-
Patrick Lamber <patrick@nubo.eu
|
|
14
|
-
Arjun Menon <arjun.umenon@gmail.com
|
|
12
|
+
Patrick Lamber <patrick@nubo.eu>, \
|
|
13
|
+
Arjun Menon <arjun.umenon@gmail.com>, \
|
|
14
|
+
Adam Wojcik <adam.wojcik.it@gmail.com>, \
|
|
15
|
+
Martin Lingstuyl <mlingstuyl@live.com>, \
|
|
16
|
+
Jasey Waegebaert <jaseyw@gmigroup.be>, \
|
|
17
|
+
Milan Holemans <Milan.Holemans@vanroey.be>" \
|
|
15
18
|
com.azure.dev.pipelines.agent.handler.node.path="/usr/bin/node"
|
|
16
19
|
|
|
17
20
|
RUN apk add --no-cache \
|
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
alt="GitHub" />
|
|
16
16
|
</a>
|
|
17
17
|
|
|
18
|
-
<a href="https://discord.
|
|
18
|
+
<a href="https://discord.gg/35HTFJ544b">
|
|
19
19
|
<img src="https://img.shields.io/badge/Discord-Join-7289da?style=flat-square"
|
|
20
20
|
alt="Discord" />
|
|
21
21
|
</a>
|
|
@@ -213,6 +213,17 @@ If you want to get involved with helping us grow the CLI, whether that is sugges
|
|
|
213
213
|
|
|
214
214
|
Checkout our [Wiki](https://github.com/pnp/cli-microsoft365/wiki) for guides on how to contribute to this project.
|
|
215
215
|
|
|
216
|
+
## Need Help?
|
|
217
|
+
|
|
218
|
+
<h4 align="center">
|
|
219
|
+
Join our community
|
|
220
|
+
</h4>
|
|
221
|
+
<p align="center">
|
|
222
|
+
<a href="https://discord.gg/35HTFJ544b">
|
|
223
|
+
<img alt="Discord" src="./docs/docs/images/discord-logo.png" width="100"/>
|
|
224
|
+
</a>
|
|
225
|
+
</p>
|
|
226
|
+
|
|
216
227
|
## Microsoft 365 Platform Community
|
|
217
228
|
|
|
218
229
|
CLI for Microsoft 365 is a [Microsoft 365 Platform Community](https://pnp.github.io) (PnP) project. Microsoft 365 Platform Community is a virtual team consisting of Microsoft employees and community members focused on helping the community make the best use of Microsoft products. CLI for Microsoft 365 is an open-source project not affiliated with Microsoft and not covered by Microsoft support. If you experience any issues using the CLI, please submit an issue in the [issues list](https://github.com/pnp/cli-microsoft365/issues).
|
package/dist/Auth.js
CHANGED
|
@@ -535,9 +535,7 @@ class Auth {
|
|
|
535
535
|
resource = resource.substr(0, pos);
|
|
536
536
|
}
|
|
537
537
|
if (resource === 'https://api.bap.microsoft.com' || resource === 'https://api.powerapps.com') {
|
|
538
|
-
|
|
539
|
-
// we need to use https://management.azure.com/ instead
|
|
540
|
-
resource = 'https://management.azure.com/';
|
|
538
|
+
resource = 'https://service.powerapps.com/';
|
|
541
539
|
}
|
|
542
540
|
if (resource === 'https://api.powerbi.com') {
|
|
543
541
|
// api.powerbi.com is not a valid resource
|
package/dist/Command.js
CHANGED
|
@@ -101,6 +101,9 @@ _AadUserGetCommand_instances = new WeakSet(), _AadUserGetCommand_initTelemetry =
|
|
|
101
101
|
!validation_1.validation.isValidGuid(args.options.id)) {
|
|
102
102
|
return `${args.options.id} is not a valid GUID`;
|
|
103
103
|
}
|
|
104
|
+
if (args.options.userName && !validation_1.validation.isValidUserPrincipalName(args.options.userName)) {
|
|
105
|
+
return `${args.options.userName} is not a valid userName`;
|
|
106
|
+
}
|
|
104
107
|
return true;
|
|
105
108
|
}));
|
|
106
109
|
}, _AadUserGetCommand_initOptionSets = function _AadUserGetCommand_initOptionSets() {
|
|
@@ -170,6 +170,9 @@ _AadUserSetCommand_instances = new WeakSet(), _AadUserSetCommand_initTelemetry =
|
|
|
170
170
|
!validation_1.validation.isValidGuid(args.options.objectId)) {
|
|
171
171
|
return `${args.options.objectId} is not a valid GUID`;
|
|
172
172
|
}
|
|
173
|
+
if (args.options.userPrincipalName && !validation_1.validation.isValidUserPrincipalName(args.options.userPrincipalName)) {
|
|
174
|
+
return `${args.options.userPrincipalName} is not a valid userPrincipalName`;
|
|
175
|
+
}
|
|
173
176
|
if (!args.options.resetPassword && ((args.options.currentPassword && !args.options.newPassword) || (args.options.newPassword && !args.options.currentPassword))) {
|
|
174
177
|
return `Specify both currentPassword and newPassword when you want to change your password`;
|
|
175
178
|
}
|
|
@@ -90,6 +90,9 @@ _AadUserSigninListCommand_instances = new WeakSet(), _AadUserSigninListCommand_i
|
|
|
90
90
|
if (args.options.appId && args.options.appDisplayName) {
|
|
91
91
|
return 'Specify either appId or appDisplayName, but not both';
|
|
92
92
|
}
|
|
93
|
+
if (args.options.userName && !validation_1.validation.isValidUserPrincipalName(args.options.userName)) {
|
|
94
|
+
return `${args.options.userName} is not a valid userName`;
|
|
95
|
+
}
|
|
93
96
|
if (args.options.userId && !validation_1.validation.isValidGuid(args.options.userId)) {
|
|
94
97
|
return `${args.options.userId} is not a valid GUID`;
|
|
95
98
|
}
|
|
@@ -45,7 +45,11 @@ class FileListCommand extends GraphCommand_1.default {
|
|
|
45
45
|
if (!webUrl.endsWith('/')) {
|
|
46
46
|
webUrl += '/';
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
let folderUrlValue = args.options.folderUrl;
|
|
49
|
+
if (folderUrlValue.endsWith('/')) {
|
|
50
|
+
folderUrlValue = folderUrlValue.slice(0, -1);
|
|
51
|
+
}
|
|
52
|
+
const folderUrl = new URL(folderUrlValue, webUrl);
|
|
49
53
|
let driveId = '';
|
|
50
54
|
try {
|
|
51
55
|
const siteId = yield this.getSiteId(args.options.webUrl, logger);
|
|
@@ -0,0 +1,147 @@
|
|
|
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 _FlowOwnerEnsureCommand_instances, _FlowOwnerEnsureCommand_initTelemetry, _FlowOwnerEnsureCommand_initOptions, _FlowOwnerEnsureCommand_initOptionSets, _FlowOwnerEnsureCommand_initValidators;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const request_1 = require("../../../../request");
|
|
19
|
+
const aadGroup_1 = require("../../../../utils/aadGroup");
|
|
20
|
+
const aadUser_1 = require("../../../../utils/aadUser");
|
|
21
|
+
const formatting_1 = require("../../../../utils/formatting");
|
|
22
|
+
const validation_1 = require("../../../../utils/validation");
|
|
23
|
+
const AzmgmtCommand_1 = require("../../../base/AzmgmtCommand");
|
|
24
|
+
const commands_1 = require("../../commands");
|
|
25
|
+
class FlowOwnerEnsureCommand extends AzmgmtCommand_1.default {
|
|
26
|
+
get name() {
|
|
27
|
+
return commands_1.default.OWNER_ENSURE;
|
|
28
|
+
}
|
|
29
|
+
get description() {
|
|
30
|
+
return 'Assigns/updates permissions to a Power Automate flow';
|
|
31
|
+
}
|
|
32
|
+
constructor() {
|
|
33
|
+
super();
|
|
34
|
+
_FlowOwnerEnsureCommand_instances.add(this);
|
|
35
|
+
__classPrivateFieldGet(this, _FlowOwnerEnsureCommand_instances, "m", _FlowOwnerEnsureCommand_initTelemetry).call(this);
|
|
36
|
+
__classPrivateFieldGet(this, _FlowOwnerEnsureCommand_instances, "m", _FlowOwnerEnsureCommand_initOptions).call(this);
|
|
37
|
+
__classPrivateFieldGet(this, _FlowOwnerEnsureCommand_instances, "m", _FlowOwnerEnsureCommand_initValidators).call(this);
|
|
38
|
+
__classPrivateFieldGet(this, _FlowOwnerEnsureCommand_instances, "m", _FlowOwnerEnsureCommand_initOptionSets).call(this);
|
|
39
|
+
}
|
|
40
|
+
commandAction(logger, args) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
try {
|
|
43
|
+
if (this.verbose) {
|
|
44
|
+
logger.logToStderr(`Assigning permissions for ${args.options.userId || args.options.userName || args.options.groupId || args.options.groupName} with permissions ${args.options.roleName} to Power Automate flow ${args.options.flowName}`);
|
|
45
|
+
}
|
|
46
|
+
let id = '';
|
|
47
|
+
if (args.options.userId) {
|
|
48
|
+
id = args.options.userId;
|
|
49
|
+
}
|
|
50
|
+
else if (args.options.userName) {
|
|
51
|
+
id = yield aadUser_1.aadUser.getUserIdByUpn(args.options.userName);
|
|
52
|
+
}
|
|
53
|
+
else if (args.options.groupId) {
|
|
54
|
+
id = args.options.groupId;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
id = yield aadGroup_1.aadGroup.getGroupIdByDisplayName(args.options.groupName);
|
|
58
|
+
}
|
|
59
|
+
let type;
|
|
60
|
+
if (args.options.userId || args.options.userName) {
|
|
61
|
+
type = 'User';
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
type = 'Group';
|
|
65
|
+
}
|
|
66
|
+
const requestOptions = {
|
|
67
|
+
url: `${this.resource}providers/Microsoft.ProcessSimple/${args.options.asAdmin ? 'scopes/admin/' : ''}environments/${formatting_1.formatting.encodeQueryParameter(args.options.environmentName)}/flows/${formatting_1.formatting.encodeQueryParameter(args.options.flowName)}/modifyPermissions?api-version=2016-11-01`,
|
|
68
|
+
headers: {
|
|
69
|
+
accept: 'application/json'
|
|
70
|
+
},
|
|
71
|
+
data: {
|
|
72
|
+
put: [
|
|
73
|
+
{
|
|
74
|
+
properties: {
|
|
75
|
+
principal: {
|
|
76
|
+
id: id,
|
|
77
|
+
type: type
|
|
78
|
+
},
|
|
79
|
+
roleName: args.options.roleName
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
responseType: 'json'
|
|
85
|
+
};
|
|
86
|
+
yield request_1.default.post(requestOptions);
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
this.handleRejectedODataJsonPromise(err);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
_FlowOwnerEnsureCommand_instances = new WeakSet(), _FlowOwnerEnsureCommand_initTelemetry = function _FlowOwnerEnsureCommand_initTelemetry() {
|
|
95
|
+
this.telemetry.push((args) => {
|
|
96
|
+
Object.assign(this.telemetryProperties, {
|
|
97
|
+
asAdmin: !!args.options.asAdmin,
|
|
98
|
+
userId: typeof args.options.userId !== 'undefined',
|
|
99
|
+
userName: typeof args.options.userName !== 'undefined',
|
|
100
|
+
groupId: typeof args.options.groupId !== 'undefined',
|
|
101
|
+
groupName: typeof args.options.groupName !== 'undefined'
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
}, _FlowOwnerEnsureCommand_initOptions = function _FlowOwnerEnsureCommand_initOptions() {
|
|
105
|
+
this.options.unshift({
|
|
106
|
+
option: '-e, --environmentName <environmentName>'
|
|
107
|
+
}, {
|
|
108
|
+
option: '-f, --flowName <flowName>'
|
|
109
|
+
}, {
|
|
110
|
+
option: '--userId [userId]'
|
|
111
|
+
}, {
|
|
112
|
+
option: '--userName [userName]'
|
|
113
|
+
}, {
|
|
114
|
+
option: '--groupId [groupId]'
|
|
115
|
+
}, {
|
|
116
|
+
option: '--groupName [groupName]'
|
|
117
|
+
}, {
|
|
118
|
+
option: '--roleName <roleName>',
|
|
119
|
+
autocomplete: FlowOwnerEnsureCommand.allowedRoleNames
|
|
120
|
+
}, {
|
|
121
|
+
option: '--asAdmin'
|
|
122
|
+
});
|
|
123
|
+
}, _FlowOwnerEnsureCommand_initOptionSets = function _FlowOwnerEnsureCommand_initOptionSets() {
|
|
124
|
+
this.optionSets.push({ options: ['userId', 'userName', 'groupId', 'groupName'] });
|
|
125
|
+
}, _FlowOwnerEnsureCommand_initValidators = function _FlowOwnerEnsureCommand_initValidators() {
|
|
126
|
+
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
if (!validation_1.validation.isValidGuid(args.options.flowName)) {
|
|
128
|
+
return `${args.options.flowName} is not a valid GUID.`;
|
|
129
|
+
}
|
|
130
|
+
if (args.options.userId && !validation_1.validation.isValidGuid(args.options.userId)) {
|
|
131
|
+
return `${args.options.userId} is not a valid GUID.`;
|
|
132
|
+
}
|
|
133
|
+
if (args.options.userName && !validation_1.validation.isValidUserPrincipalName(args.options.userName)) {
|
|
134
|
+
return `${args.options.userName} is not a valid userName.`;
|
|
135
|
+
}
|
|
136
|
+
if (args.options.groupId && !validation_1.validation.isValidGuid(args.options.groupId)) {
|
|
137
|
+
return `${args.options.groupId} is not a valid GUID.`;
|
|
138
|
+
}
|
|
139
|
+
if (FlowOwnerEnsureCommand.allowedRoleNames.indexOf(args.options.roleName) === -1) {
|
|
140
|
+
return `${args.options.roleName} is not a valid roleName. Valid values are: ${FlowOwnerEnsureCommand.allowedRoleNames.join(', ')}`;
|
|
141
|
+
}
|
|
142
|
+
return true;
|
|
143
|
+
}));
|
|
144
|
+
};
|
|
145
|
+
FlowOwnerEnsureCommand.allowedRoleNames = ['CanView', 'CanEdit'];
|
|
146
|
+
module.exports = new FlowOwnerEnsureCommand();
|
|
147
|
+
//# sourceMappingURL=owner-ensure.js.map
|
|
@@ -0,0 +1,147 @@
|
|
|
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 _FlowOwnerRemoveCommand_instances, _FlowOwnerRemoveCommand_initTelemetry, _FlowOwnerRemoveCommand_initOptions, _FlowOwnerRemoveCommand_initValidators, _FlowOwnerRemoveCommand_initOptionSets;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const Cli_1 = require("../../../../cli/Cli");
|
|
19
|
+
const request_1 = require("../../../../request");
|
|
20
|
+
const aadGroup_1 = require("../../../../utils/aadGroup");
|
|
21
|
+
const aadUser_1 = require("../../../../utils/aadUser");
|
|
22
|
+
const formatting_1 = require("../../../../utils/formatting");
|
|
23
|
+
const validation_1 = require("../../../../utils/validation");
|
|
24
|
+
const AzmgmtCommand_1 = require("../../../base/AzmgmtCommand");
|
|
25
|
+
const commands_1 = require("../../commands");
|
|
26
|
+
class FlowOwnerRemoveCommand extends AzmgmtCommand_1.default {
|
|
27
|
+
get name() {
|
|
28
|
+
return commands_1.default.OWNER_REMOVE;
|
|
29
|
+
}
|
|
30
|
+
get description() {
|
|
31
|
+
return 'Removes owner permissions to a Power Automate flow';
|
|
32
|
+
}
|
|
33
|
+
constructor() {
|
|
34
|
+
super();
|
|
35
|
+
_FlowOwnerRemoveCommand_instances.add(this);
|
|
36
|
+
__classPrivateFieldGet(this, _FlowOwnerRemoveCommand_instances, "m", _FlowOwnerRemoveCommand_initTelemetry).call(this);
|
|
37
|
+
__classPrivateFieldGet(this, _FlowOwnerRemoveCommand_instances, "m", _FlowOwnerRemoveCommand_initOptions).call(this);
|
|
38
|
+
__classPrivateFieldGet(this, _FlowOwnerRemoveCommand_instances, "m", _FlowOwnerRemoveCommand_initValidators).call(this);
|
|
39
|
+
__classPrivateFieldGet(this, _FlowOwnerRemoveCommand_instances, "m", _FlowOwnerRemoveCommand_initOptionSets).call(this);
|
|
40
|
+
}
|
|
41
|
+
commandAction(logger, args) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
try {
|
|
44
|
+
if (this.verbose) {
|
|
45
|
+
logger.logToStderr(`Removing owner ${args.options.userId || args.options.userName || args.options.groupId || args.options.groupName} from flow ${args.options.flowName} in environment ${args.options.environmentName}`);
|
|
46
|
+
}
|
|
47
|
+
const removeFlowOwner = () => __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
let idToRemove = '';
|
|
49
|
+
if (args.options.userId) {
|
|
50
|
+
idToRemove = args.options.userId;
|
|
51
|
+
}
|
|
52
|
+
else if (args.options.userName) {
|
|
53
|
+
idToRemove = yield aadUser_1.aadUser.getUserIdByUpn(args.options.userName);
|
|
54
|
+
}
|
|
55
|
+
else if (args.options.groupId) {
|
|
56
|
+
idToRemove = args.options.groupId;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
idToRemove = yield aadGroup_1.aadGroup.getGroupIdByDisplayName(args.options.groupName);
|
|
60
|
+
}
|
|
61
|
+
const requestOptions = {
|
|
62
|
+
url: `${this.resource}providers/Microsoft.ProcessSimple/${args.options.asAdmin ? 'scopes/admin/' : ''}environments/${formatting_1.formatting.encodeQueryParameter(args.options.environmentName)}/flows/${formatting_1.formatting.encodeQueryParameter(args.options.flowName)}/modifyPermissions?api-version=2016-11-01`,
|
|
63
|
+
headers: {
|
|
64
|
+
accept: 'application/json'
|
|
65
|
+
},
|
|
66
|
+
data: {
|
|
67
|
+
delete: [
|
|
68
|
+
{
|
|
69
|
+
id: idToRemove
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
responseType: 'json'
|
|
74
|
+
};
|
|
75
|
+
yield request_1.default.post(requestOptions);
|
|
76
|
+
});
|
|
77
|
+
if (args.options.confirm) {
|
|
78
|
+
yield removeFlowOwner();
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const result = yield Cli_1.Cli.prompt({
|
|
82
|
+
type: 'confirm',
|
|
83
|
+
name: 'continue',
|
|
84
|
+
default: false,
|
|
85
|
+
message: `Are you sure you want to remove owner '${args.options.groupId || args.options.groupName || args.options.userId || args.options.userName}' from the specified flow?`
|
|
86
|
+
});
|
|
87
|
+
if (result.continue) {
|
|
88
|
+
yield removeFlowOwner();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
this.handleRejectedODataJsonPromise(err);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
_FlowOwnerRemoveCommand_instances = new WeakSet(), _FlowOwnerRemoveCommand_initTelemetry = function _FlowOwnerRemoveCommand_initTelemetry() {
|
|
99
|
+
this.telemetry.push((args) => {
|
|
100
|
+
Object.assign(this.telemetryProperties, {
|
|
101
|
+
userId: typeof args.options.userId !== 'undefined',
|
|
102
|
+
userName: typeof args.options.userName !== 'undefined',
|
|
103
|
+
groupId: typeof args.options.groupId !== 'undefined',
|
|
104
|
+
groupName: typeof args.options.groupName !== 'undefined',
|
|
105
|
+
asAdmin: !!args.options.asAdmin,
|
|
106
|
+
confirm: !!args.options.confirm
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}, _FlowOwnerRemoveCommand_initOptions = function _FlowOwnerRemoveCommand_initOptions() {
|
|
110
|
+
this.options.unshift({
|
|
111
|
+
option: '-e, --environmentName <environmentName>'
|
|
112
|
+
}, {
|
|
113
|
+
option: '-f, --flowName <flowName>'
|
|
114
|
+
}, {
|
|
115
|
+
option: '--userId [userId]'
|
|
116
|
+
}, {
|
|
117
|
+
option: '--userName [userName]'
|
|
118
|
+
}, {
|
|
119
|
+
option: '--groupId [groupId]'
|
|
120
|
+
}, {
|
|
121
|
+
option: '--groupName [groupName]'
|
|
122
|
+
}, {
|
|
123
|
+
option: '--asAdmin'
|
|
124
|
+
}, {
|
|
125
|
+
option: '--confirm'
|
|
126
|
+
});
|
|
127
|
+
}, _FlowOwnerRemoveCommand_initValidators = function _FlowOwnerRemoveCommand_initValidators() {
|
|
128
|
+
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
if (!validation_1.validation.isValidGuid(args.options.flowName)) {
|
|
130
|
+
return `${args.options.flowName} is not a valid GUID.`;
|
|
131
|
+
}
|
|
132
|
+
if (args.options.userId && !validation_1.validation.isValidGuid(args.options.userId)) {
|
|
133
|
+
return `${args.options.userId} is not a valid GUID.`;
|
|
134
|
+
}
|
|
135
|
+
if (args.options.userName && !validation_1.validation.isValidUserPrincipalName(args.options.userName)) {
|
|
136
|
+
return `${args.options.userName} is not a valid userName.`;
|
|
137
|
+
}
|
|
138
|
+
if (args.options.groupId && !validation_1.validation.isValidGuid(args.options.groupId)) {
|
|
139
|
+
return `${args.options.groupId} is not a valid GUID.`;
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
}));
|
|
143
|
+
}, _FlowOwnerRemoveCommand_initOptionSets = function _FlowOwnerRemoveCommand_initOptionSets() {
|
|
144
|
+
this.optionSets.push({ options: ['userId', 'userName', 'groupId', 'groupName'] });
|
|
145
|
+
};
|
|
146
|
+
module.exports = new FlowOwnerRemoveCommand();
|
|
147
|
+
//# sourceMappingURL=owner-remove.js.map
|
|
@@ -42,7 +42,7 @@ class FlowRunListCommand extends AzmgmtItemsListCommand_1.AzmgmtItemsListCommand
|
|
|
42
42
|
if (this.verbose) {
|
|
43
43
|
logger.logToStderr(`Retrieving list of runs for Microsoft Flow ${args.options.flowName}...`);
|
|
44
44
|
}
|
|
45
|
-
let url = `${this.resource}providers/Microsoft.ProcessSimple/environments/${formatting_1.formatting.encodeQueryParameter(args.options.environmentName)}/flows/${formatting_1.formatting.encodeQueryParameter(args.options.flowName)}/runs?api-version=2016-11-01`;
|
|
45
|
+
let url = `${this.resource}providers/Microsoft.ProcessSimple/${args.options.asAdmin ? 'scopes/admin/' : ''}environments/${formatting_1.formatting.encodeQueryParameter(args.options.environmentName)}/flows/${formatting_1.formatting.encodeQueryParameter(args.options.flowName)}/runs?api-version=2016-11-01`;
|
|
46
46
|
const filters = this.getFilters(args.options);
|
|
47
47
|
if (filters.length > 0) {
|
|
48
48
|
url += `&$filter=${filters.join(' and ')}`;
|
|
@@ -86,7 +86,8 @@ _FlowRunListCommand_instances = new WeakSet(), _FlowRunListCommand_initTelemetry
|
|
|
86
86
|
Object.assign(this.telemetryProperties, {
|
|
87
87
|
status: typeof args.options.status !== 'undefined',
|
|
88
88
|
triggerStartTime: typeof args.options.triggerStartTime !== 'undefined',
|
|
89
|
-
triggerEndTime: typeof args.options.triggerEndTime !== 'undefined'
|
|
89
|
+
triggerEndTime: typeof args.options.triggerEndTime !== 'undefined',
|
|
90
|
+
asAdmin: !!args.options.asAdmin
|
|
90
91
|
});
|
|
91
92
|
});
|
|
92
93
|
}, _FlowRunListCommand_initOptions = function _FlowRunListCommand_initOptions() {
|
|
@@ -101,6 +102,8 @@ _FlowRunListCommand_instances = new WeakSet(), _FlowRunListCommand_initTelemetry
|
|
|
101
102
|
option: '--triggerStartTime [triggerStartTime]'
|
|
102
103
|
}, {
|
|
103
104
|
option: '--triggerEndTime [triggerEndTime]'
|
|
105
|
+
}, {
|
|
106
|
+
option: '--asAdmin'
|
|
104
107
|
});
|
|
105
108
|
}, _FlowRunListCommand_initValidators = function _FlowRunListCommand_initValidators() {
|
|
106
109
|
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -11,7 +11,9 @@ exports.default = {
|
|
|
11
11
|
EXPORT: `${prefix} export`,
|
|
12
12
|
GET: `${prefix} get`,
|
|
13
13
|
LIST: `${prefix} list`,
|
|
14
|
+
OWNER_ENSURE: `${prefix} owner ensure`,
|
|
14
15
|
OWNER_LIST: `${prefix} owner list`,
|
|
16
|
+
OWNER_REMOVE: `${prefix} owner remove`,
|
|
15
17
|
REMOVE: `${prefix} remove`,
|
|
16
18
|
RUN_CANCEL: `${prefix} run cancel`,
|
|
17
19
|
RUN_GET: `${prefix} run get`,
|
|
@@ -106,6 +106,9 @@ _PlannerRosterMemberAddCommand_instances = new WeakSet(), _PlannerRosterMemberAd
|
|
|
106
106
|
if (args.options.userId && !validation_1.validation.isValidGuid(args.options.userId)) {
|
|
107
107
|
return `${args.options.userId} is not a valid GUID`;
|
|
108
108
|
}
|
|
109
|
+
if (args.options.userName && !validation_1.validation.isValidUserPrincipalName(args.options.userName)) {
|
|
110
|
+
return `${args.options.userName} is not a valid user principal name (UPN)`;
|
|
111
|
+
}
|
|
109
112
|
return true;
|
|
110
113
|
}));
|
|
111
114
|
};
|
|
@@ -0,0 +1,98 @@
|
|
|
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 _PlannerRosterMemberGetCommand_instances, _PlannerRosterMemberGetCommand_initTelemetry, _PlannerRosterMemberGetCommand_initOptions, _PlannerRosterMemberGetCommand_initOptionSets, _PlannerRosterMemberGetCommand_initValidators;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const request_1 = require("../../../../request");
|
|
19
|
+
const validation_1 = require("../../../../utils/validation");
|
|
20
|
+
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
21
|
+
const commands_1 = require("../../commands");
|
|
22
|
+
const aadUser_1 = require("../../../../utils/aadUser");
|
|
23
|
+
class PlannerRosterMemberGetCommand extends GraphCommand_1.default {
|
|
24
|
+
get name() {
|
|
25
|
+
return commands_1.default.ROSTER_MEMBER_GET;
|
|
26
|
+
}
|
|
27
|
+
get description() {
|
|
28
|
+
return 'Gets a member of the specified Microsoft Planner Roster';
|
|
29
|
+
}
|
|
30
|
+
constructor() {
|
|
31
|
+
super();
|
|
32
|
+
_PlannerRosterMemberGetCommand_instances.add(this);
|
|
33
|
+
__classPrivateFieldGet(this, _PlannerRosterMemberGetCommand_instances, "m", _PlannerRosterMemberGetCommand_initTelemetry).call(this);
|
|
34
|
+
__classPrivateFieldGet(this, _PlannerRosterMemberGetCommand_instances, "m", _PlannerRosterMemberGetCommand_initOptions).call(this);
|
|
35
|
+
__classPrivateFieldGet(this, _PlannerRosterMemberGetCommand_instances, "m", _PlannerRosterMemberGetCommand_initValidators).call(this);
|
|
36
|
+
__classPrivateFieldGet(this, _PlannerRosterMemberGetCommand_instances, "m", _PlannerRosterMemberGetCommand_initOptionSets).call(this);
|
|
37
|
+
}
|
|
38
|
+
commandAction(logger, args) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
if (this.verbose) {
|
|
41
|
+
logger.logToStderr(`Retrieving member ${args.options.userName || args.options.userId} from the Microsoft Planner Roster`);
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
const userId = yield this.getUserId(args);
|
|
45
|
+
const requestOptions = {
|
|
46
|
+
url: `${this.resource}/beta/planner/rosters/${args.options.rosterId}/members/${userId}`,
|
|
47
|
+
headers: {
|
|
48
|
+
accept: 'application/json;odata.metadata=none'
|
|
49
|
+
},
|
|
50
|
+
responseType: 'json'
|
|
51
|
+
};
|
|
52
|
+
const response = yield request_1.default.get(requestOptions);
|
|
53
|
+
logger.log(response);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
this.handleRejectedODataJsonPromise(err);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
getUserId(args) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
if (args.options.userId) {
|
|
63
|
+
return args.options.userId;
|
|
64
|
+
}
|
|
65
|
+
return aadUser_1.aadUser.getUserIdByUpn(args.options.userName);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
_PlannerRosterMemberGetCommand_instances = new WeakSet(), _PlannerRosterMemberGetCommand_initTelemetry = function _PlannerRosterMemberGetCommand_initTelemetry() {
|
|
70
|
+
this.telemetry.push((args) => {
|
|
71
|
+
Object.assign(this.telemetryProperties, {
|
|
72
|
+
userId: typeof args.options.userId !== 'undefined',
|
|
73
|
+
userName: typeof args.options.userName !== 'undefined'
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}, _PlannerRosterMemberGetCommand_initOptions = function _PlannerRosterMemberGetCommand_initOptions() {
|
|
77
|
+
this.options.unshift({
|
|
78
|
+
option: '--rosterId <rosterId>'
|
|
79
|
+
}, {
|
|
80
|
+
option: '--userId [userId]'
|
|
81
|
+
}, {
|
|
82
|
+
option: '--userName [userName]'
|
|
83
|
+
});
|
|
84
|
+
}, _PlannerRosterMemberGetCommand_initOptionSets = function _PlannerRosterMemberGetCommand_initOptionSets() {
|
|
85
|
+
this.optionSets.push({ options: ['userId', 'userName'] });
|
|
86
|
+
}, _PlannerRosterMemberGetCommand_initValidators = function _PlannerRosterMemberGetCommand_initValidators() {
|
|
87
|
+
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
if (args.options.userId && !validation_1.validation.isValidGuid(args.options.userId)) {
|
|
89
|
+
return `${args.options.userId} is not a valid GUID`;
|
|
90
|
+
}
|
|
91
|
+
if (args.options.userName && !validation_1.validation.isValidUserPrincipalName(args.options.userName)) {
|
|
92
|
+
return `${args.options.userName} is not a valid userName`;
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}));
|
|
96
|
+
};
|
|
97
|
+
module.exports = new PlannerRosterMemberGetCommand();
|
|
98
|
+
//# sourceMappingURL=roster-member-get.js.map
|
|
@@ -15,6 +15,7 @@ exports.default = {
|
|
|
15
15
|
ROSTER_ADD: `${prefix} roster add`,
|
|
16
16
|
ROSTER_GET: `${prefix} roster get`,
|
|
17
17
|
ROSTER_MEMBER_ADD: `${prefix} roster member add`,
|
|
18
|
+
ROSTER_MEMBER_GET: `${prefix} roster member get`,
|
|
18
19
|
ROSTER_MEMBER_LIST: `${prefix} roster member list`,
|
|
19
20
|
ROSTER_MEMBER_REMOVE: `${prefix} roster member remove`,
|
|
20
21
|
ROSTER_REMOVE: `${prefix} roster remove`,
|