Skip to content

Commit fb96b2e

Browse files
Merge pull request KelvinTegelaar#1390 from kris6673/issue3964
Improve password copy behavior at user creation
2 parents 310c30e + 0cc7127 commit fb96b2e

File tree

2 files changed

+46
-43
lines changed

2 files changed

+46
-43
lines changed
Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,64 @@
11
function New-CIPPUserTask {
22
[CmdletBinding()]
33
param (
4-
$userobj,
4+
$UserObj,
55
$APIName = 'New User Task',
66
$TenantFilter,
77
$Headers
88
)
99
$Results = [System.Collections.Generic.List[string]]::new()
1010

1111
try {
12-
$CreationResults = New-CIPPUser -userobj $UserObj -APIName $APINAME -Headers $Headers
13-
$results.add('Created New User.')
14-
$results.add("Username: $($CreationResults.username)")
15-
$results.add("Password: $($CreationResults.password)")
12+
$CreationResults = New-CIPPUser -UserObj $UserObj -APIName $APIName -Headers $Headers
13+
$Results.Add('Created New User.')
14+
$Results.Add("Username: $($CreationResults.Username)")
15+
$Results.Add("Password: $($CreationResults.Password)")
16+
$Results.Add("$($CreationResults.Password)")
1617
} catch {
17-
$results.add("Failed to create user. $($_.Exception.Message)" )
18-
return @{'Results' = $results }
18+
$Results.Add("Failed to create user. $($_.Exception.Message)" )
19+
return @{'Results' = $Results }
1920
}
2021

2122
try {
22-
if ($userobj.licenses.value) {
23-
$LicenseResults = Set-CIPPUserLicense -UserId $CreationResults.username -TenantFilter $UserObj.tenantFilter -AddLicenses $UserObj.licenses.value -Headers $Headers
23+
if ($UserObj.licenses.value) {
24+
$LicenseResults = Set-CIPPUserLicense -UserId $CreationResults.Username -TenantFilter $UserObj.tenantFilter -AddLicenses $UserObj.licenses.value -Headers $Headers
2425
$Results.Add($LicenseResults)
2526
}
2627
} catch {
27-
Write-LogMessage -headers $Headers -API $APINAME -tenant $($userobj.tenantFilter) -message "Failed to assign the license. Error:$($_.Exception.Message)" -Sev 'Error'
28-
$body = $results.add("Failed to assign the license. $($_.Exception.Message)")
28+
Write-LogMessage -headers $Headers -API $APIName -tenant $($UserObj.tenantFilter) -message "Failed to assign the license. Error:$($_.Exception.Message)" -Sev 'Error'
29+
$Results.Add("Failed to assign the license. $($_.Exception.Message)")
2930
}
3031

3132
try {
32-
if ($Userobj.AddedAliases) {
33-
$AliasResults = Add-CIPPAlias -user $CreationResults.username -Aliases ($UserObj.AddedAliases -split '\s') -UserprincipalName $CreationResults.Username -TenantFilter $UserObj.tenantFilter -APIName $APINAME -Headers $Headers
34-
$results.add($AliasResults)
33+
if ($UserObj.AddedAliases) {
34+
$AliasResults = Add-CIPPAlias -user $CreationResults.Username -Aliases ($UserObj.AddedAliases -split '\s') -UserprincipalName $CreationResults.Username -TenantFilter $UserObj.tenantFilter -APIName $APIName -Headers $Headers
35+
$Results.Add($AliasResults)
3536
}
3637
} catch {
37-
Write-LogMessage -headers $Headers -API $APINAME -tenant $($userobj.tenantFilter) -message "Failed to create the Aliases. Error:$($_.Exception.Message)" -Sev 'Error'
38-
$body = $results.add("Failed to create the Aliases: $($_.Exception.Message)")
38+
Write-LogMessage -headers $Headers -API $APIName -tenant $($UserObj.tenantFilter) -message "Failed to create the Aliases. Error:$($_.Exception.Message)" -Sev 'Error'
39+
$Results.Add("Failed to create the Aliases: $($_.Exception.Message)")
3940
}
40-
if ($userobj.copyFrom.value) {
41-
Write-Host "Copying from $($userObj.copyFrom.value)"
42-
$CopyFrom = Set-CIPPCopyGroupMembers -Headers $Headers -CopyFromId $userObj.copyFrom.value -UserID $CreationResults.Username -TenantFilter $UserObj.tenantFilter
43-
$CopyFrom.Success | ForEach-Object { $results.Add($_) }
44-
$CopyFrom.Error | ForEach-Object { $results.Add($_) }
41+
if ($UserObj.copyFrom.value) {
42+
Write-Host "Copying from $($UserObj.copyFrom.value)"
43+
$CopyFrom = Set-CIPPCopyGroupMembers -Headers $Headers -CopyFromId $UserObj.copyFrom.value -UserID $CreationResults.Username -TenantFilter $UserObj.tenantFilter
44+
$CopyFrom.Success | ForEach-Object { $Results.Add($_) }
45+
$CopyFrom.Error | ForEach-Object { $Results.Add($_) }
4546
}
4647

47-
if ($userobj.setManager) {
48-
$ManagerResult = Set-CIPPManager -user $CreationResults.username -Manager $userObj.setManager.value -TenantFilter $UserObj.tenantFilter -APIName 'Set Manager' -Headers $Headers
49-
$results.add($ManagerResult)
48+
if ($UserObj.setManager) {
49+
$ManagerResult = Set-CIPPManager -user $CreationResults.Username -Manager $UserObj.setManager.value -TenantFilter $UserObj.tenantFilter -APIName 'Set Manager' -Headers $Headers
50+
$Results.Add($ManagerResult)
5051
}
5152

52-
if ($userobj.setSponsor) {
53-
$SponsorResult = Set-CIPPManager -user $CreationResults.username -Manager $userObj.setSponsor.value -TenantFilter $UserObj.tenantFilter -APIName 'Set Sponsor' -Headers $Headers
54-
$results.add($SponsorResult)
53+
if ($UserObj.setSponsor) {
54+
$SponsorResult = Set-CIPPManager -user $CreationResults.Username -Manager $UserObj.setSponsor.value -TenantFilter $UserObj.tenantFilter -APIName 'Set Sponsor' -Headers $Headers
55+
$Results.Add($SponsorResult)
5556
}
5657

5758
return @{
58-
Results = $results
59-
username = $CreationResults.username
60-
password = $CreationResults.password
59+
Results = $Results
60+
Username = $CreationResults.Username
61+
Password = $CreationResults.Password
6162
CopyFrom = $CopyFrom
6263
}
6364
}

Modules/CIPPCore/Public/New-CippUser.ps1

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
function New-CIPPUser {
22
[CmdletBinding()]
33
param (
4-
$userobj,
4+
$UserObj,
55
$Aliases = 'Scheduled',
66
$RestoreValues,
77
$APIName = 'New User',
88
$Headers
99
)
1010

1111
try {
12-
$userobj = $userobj | ConvertTo-Json -Depth 10 | ConvertFrom-Json -Depth 10
12+
$UserObj = $UserObj | ConvertTo-Json -Depth 10 | ConvertFrom-Json -Depth 10
1313
Write-Host $UserObj.PrimDomain.value
1414
$Aliases = ($UserObj.AddedAliases) -split '\s'
1515
$password = if ($UserObj.password) { $UserObj.password } else { New-passwordString }
16-
$UserprincipalName = "$($userobj.username)@$($UserObj.Domain ? $UserObj.Domain : $UserObj.PrimDomain.value)"
17-
Write-Host "Creating user $UserprincipalName"
16+
$UserPrincipalName = "$($UserObj.username)@$($UserObj.Domain ? $UserObj.Domain : $UserObj.PrimDomain.value)"
17+
Write-Host "Creating user $UserPrincipalName"
1818
Write-Host "tenant filter is $($UserObj.tenantFilter)"
1919
$BodyToship = [pscustomobject] @{
20-
'givenName' = $UserObj.givenname
20+
'givenName' = $UserObj.givenName
2121
'surname' = $UserObj.surname
2222
'accountEnabled' = $true
2323
'displayName' = $UserObj.displayName
2424
'department' = $UserObj.Department
25-
'mailNickname' = $UserObj.Username ? $userobj.username : $userobj.mailNickname
26-
'userPrincipalName' = $UserprincipalName
25+
'mailNickname' = $UserObj.Username ? $UserObj.username : $UserObj.mailNickname
26+
'userPrincipalName' = $UserPrincipalName
2727
'usageLocation' = $UserObj.usageLocation.value ? $UserObj.usageLocation.value : $UserObj.usageLocation
2828
'city' = $UserObj.City
2929
'country' = $UserObj.Country
@@ -37,7 +37,7 @@ function New-CIPPUser {
3737
'password' = $password
3838
}
3939
}
40-
if ($userobj.businessPhones) { $bodytoShip | Add-Member -NotePropertyName businessPhones -NotePropertyValue @($UserObj.businessPhones) }
40+
if ($UserObj.businessPhones) { $bodytoShip | Add-Member -NotePropertyName businessPhones -NotePropertyValue @($UserObj.businessPhones) }
4141
if ($UserObj.defaultAttributes) {
4242
$UserObj.defaultAttributes | Get-Member -MemberType NoteProperty | ForEach-Object {
4343
Write-Host "Editing user and adding $($_.Name) with value $($UserObj.defaultAttributes.$($_.Name).value)"
@@ -50,7 +50,7 @@ function New-CIPPUser {
5050
$bodyToShip = ConvertTo-Json -Depth 10 -InputObject $BodyToship -Compress
5151
Write-Host "Shipping: $bodyToShip"
5252
$GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/users' -tenantId $UserObj.tenantFilter -type POST -body $BodyToship -verbose
53-
Write-LogMessage -headers $Headers -API $APINAME -tenant $($UserObj.tenantFilter) -message "Created user $($UserObj.displayname) with id $($GraphRequest.id) " -Sev 'Info'
53+
Write-LogMessage -headers $Headers -API $APIName -tenant $($UserObj.tenantFilter) -message "Created user $($UserObj.displayName) with id $($GraphRequest.id)" -Sev 'Info'
5454

5555
try {
5656
$PasswordLink = New-PwPushLink -Payload $password
@@ -62,13 +62,15 @@ function New-CIPPUser {
6262
}
6363
$Results = @{
6464
Results = ('Created New User.')
65-
Username = $UserprincipalName
65+
Username = $UserPrincipalName
6666
Password = $password
6767
}
6868
} catch {
69-
Write-LogMessage -headers $Headers -API $APINAME -tenant $($UserObj.tenantFilter) -message "Failed to create user. Error:$($_.Exception.Message)" -Sev 'Error'
70-
$results = @{ Results = ("Failed to create user. $($_.Exception.Message)" ) }
71-
throw "Failed to create user $($_.Exception.Message)"
69+
$ErrorMessage = Get-CippException -Exception $_
70+
$Result = "Failed to create user. Error:$($ErrorMessage.NormalizedError)"
71+
Write-LogMessage -headers $Headers -API $APIName -tenant $($UserObj.tenantFilter) -message "Failed to create user. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage
72+
$Results = @{ Results = $Result }
73+
throw $Result
7274
}
7375
return $Results
7476
}

0 commit comments

Comments
 (0)