-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathASoC_MainMenu.ps1
238 lines (197 loc) · 6.85 KB
/
ASoC_MainMenu.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
. ".\ASoC_EU_ManageUsersAndApplications.ps1"
function Show-Menu
{
Clear-Host
if($bearer_token -eq $null)
{
Write-Host "ERROR CHECK API Token" -ForegroundColor Red
Write-Host "Q: Press 'Q' to quit."
}
else
{
Write-Host "ASOC Auth successful" -ForegroundColor Green
Write-Host "================ ASOC Autmoation ================"
Write-Host "1: Press '1' to Check Current Token."
Write-Host "2: Press '2' to List Current Users"
Write-Host "3: Press '3' to List Current Apps"
Write-Host "4: Press '4' to List Assset Groups"
Write-Host "5: Press '5' to Invite Users" -ForegroundColor Green
Write-Host "6: Press '6' to Delete a selected set of Users by Role" -ForegroundColor Red
Write-Host "7: Press '7' to Delete a selected Asset Group" -ForegroundColor Red
Write-Host "8: Press '8' to Get Counts"
Write-Host "Q: Press 'Q' to quit."
write-host""
write-host""
write-host""
}
}
function List-VMs
{
Write-Host "Script Block to Display all the VMs"
}
function Delete-VMs
{
Write-Host "Script Block to Delete VM"
}
do
{
Show-Menu –Title 'My Menu'
$input = Read-Host "what do you want to do?"
write-host""
switch ($input)
{
'1' {
Get-Token
}
'2' {
Get-Users
}
'3' {
Get-Apps
}
'4' {
Get-assetgroup
}
'5' {
#Prompt user to pick an asset group
$userSelectedAssetGroupName = ""
$userSelectedAssetGroupId = ""
$assetGroups = Get-AssetGroups
Print-AssetGroups
$validInput = $false
while($validInput -eq $false){
Write-Host "Select the asset Group you want to invite the user (Enter a number): " -NoNewline -ForegroundColor Yellow
$choice = Read-Host
if ($choice -match '^\d+$' -and [int]$choice -ge 0 -and [int]$choice -le $assetGroups.Count-1){
$ValidInput = $true
$userSelectedAssetGroupName = $assetGroups[$choice].Name
$userSelectedAssetGroupId = $assetGroups[$choice].Id
Write-Host "You selected:"
Write-Host "Asset Group Mame: $userSelectedAssetGroupName"
Write-Host "Asset Group ID: $userSelectedAssetGroupId"
} else{
Write-Host "Invalid input, try again"
}
}
#Prompt user to pick a role
$userSelectedRoleName = ""
$userSelectedRoleId = ""
$availableRoles = Get-AllRoles
Print-AllRoles
$validInput = $false
while($validInput -eq $false){
Write-Host "Select the role you want to invite the user (Enter a number): " -NoNewline -ForegroundColor Yellow
$choice = Read-Host
if ($choice -match '^\d+$' -and [int]$choice -ge 0 -and [int]$choice -le $availableRoles.Count-1){
$ValidInput = $true
$userSelectedRoleName = $availableRoles[$choice].Name
$userSelectedRoleId = $availableRoles[$choice].Id
Write-Host "You selected:"
Write-Host "role Mame: $userSelectedRoleName"
Write-Host "role ID: $userSelectedRoleId"
} else{
Write-Host "Invalid input, try again"
}
}
#Confirm if all settings are good (asset group and role) before sending the invitation request
Write-Host
Write-Host "You are about to Invite all users in ASoC_UserInviteList.txt into:" -ForeGroundColor Yellow
Write-Host "Asset Group Name: $userSelectedAssetGroupName - Asset Group ID: $userSelectedAssetGroupId" -ForeGroundColor Yellow
Write-Host "Role Name: $userSelectedRoleName - Role ID: $userSelectedRoleId" -ForeGroundColor Yellow
$title = 'Confirm'
$question = 'Are you sure you want to continue?'
$choices = '&Yes', '&No'
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
Write-Host 'Your choice is Yes.'
Invite-Users -assetGroupId $userSelectedAssetGroupId -roleId $userSelectedRoleId -userFileName "ASoC_UserInviteList.txt"
} else {
Write-Host 'Your choice is No.'
return
}
}
'6' {
#DELETE USER BY ROLE
#Prompt user to pick a role
$userSelectedRoleName = ""
$userSelectedRoleId = ""
$availableRoles = Get-AllRoles
Print-AllRoles
$validInput = $false
while($validInput -eq $false){
Write-Host "Select the role you want to delete the user (Enter a number): " -NoNewline -ForegroundColor Yellow
$choice = Read-Host
if ($choice -match '^\d+$' -and [int]$choice -ge 0 -and [int]$choice -le $availableRoles.Count-1){
$ValidInput = $true
$userSelectedRoleName = $availableRoles[$choice].Name
$userSelectedRoleId = $availableRoles[$choice].Id
Write-Host "You selected:"
Write-Host "role Name: $userSelectedRoleName"
Write-Host "role ID: $userSelectedRoleId"
} else{
Write-Host "Invalid input, try again"
}
}
$title = 'Confirm'
$question = 'Are you sure to DELETE all users in this role?'
$choices = '&Yes', '&No'
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
Write-Host 'Your choice is Yes.'
#Edit Role Name
Delete-Users -roleName $userSelectedRoleName
#Edit Group Assest Name
#Delete-Apps -assetGroupNameWhereAppsWillBeDeleted "AS_Innov_DAST_ASoC_NA_Oct13"
} else {
Write-Host 'Your choice is No.'
return
}
}
'7' {
#DELETE ASSET GROUP
#Prompt user to pick an asset group
$userSelectedAssetGroupName = ""
$userSelectedAssetGroupId = ""
$assetGroups = Get-AssetGroups
Print-AssetGroups
$validInput = $false
while($validInput -eq $false){
Write-Host "Select the asset Group you want to DELETE (Enter a number): " -NoNewline -ForegroundColor Yellow
$choice = Read-Host
if ($choice -match '^\d+$' -and [int]$choice -ge 0 -and [int]$choice -le $assetGroups.Count-1){
$ValidInput = $true
$userSelectedAssetGroupName = $assetGroups[$choice].Name
$userSelectedAssetGroupId = $assetGroups[$choice].Id
Write-Host "You selected:"
Write-Host "Asset Group Mame: $userSelectedAssetGroupName"
Write-Host "Asset Group ID: $userSelectedAssetGroupId"
} else{
Write-Host "Invalid input, try again"
}
}
$title = 'Confirm'
$question = 'Are you sure to DELETE this Asset Group?'
$choices = '&Yes', '&No'
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
Write-Host 'Your choice is Yes.'
#Edit Role Name
#Delete-Users -roleName $userSelectedRoleName
#Edit Group Assest Name
Delete-Apps -assetGroupNameWhereAppsWillBeDeleted $userSelectedAssetGroupName
} else {
Write-Host 'Your choice is No.'
return
}
}
'8' {
Get-Counts
}
'q' {
return
}
}
write-host""
pause
}
until ($input -eq 'q')