forked from dsccommunity/SqlServerDsc
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathConvertFrom-SqlDscDatabasePermission.ps1
More file actions
61 lines (50 loc) · 1.96 KB
/
ConvertFrom-SqlDscDatabasePermission.ps1
File metadata and controls
61 lines (50 loc) · 1.96 KB
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
<#
.SYNOPSIS
Converts one or more DatabasePermission objects into an object of the type
Microsoft.SqlServer.Management.Smo.DatabasePermissionSet.
.DESCRIPTION
Converts one or more DatabasePermission objects into a single object of the type
Microsoft.SqlServer.Management.Smo.DatabasePermissionSet.
.PARAMETER Permission
Specifies a DatabasePermission object.
.EXAMPLE
[DatabasePermission] @{
State = 'Grant'
Permission = 'Connect'
} | ConvertFrom-SqlDscDatabasePermission
Returns an object of `[Microsoft.SqlServer.Management.Smo.DatabasePermissionSet]`
with all the permissions set to $true that was part of the `[DatabasePermission]`.
.INPUTS
`DatabasePermission`
Accepts a DatabasePermission object via the pipeline.
.OUTPUTS
`Microsoft.SqlServer.Management.Smo.DatabasePermissionSet`
Returns a database permission set object.
#>
function ConvertFrom-SqlDscDatabasePermission
{
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('UseSyntacticallyCorrectExamples', '', Justification = 'Because the rule does not yet support parsing the code when the output type is not available. The ScriptAnalyzer rule UseSyntacticallyCorrectExamples will always error in the editor due to https://github.com/indented-automation/Indented.ScriptAnalyzerRules/issues/8.')]
[CmdletBinding()]
[OutputType([Microsoft.SqlServer.Management.Smo.DatabasePermissionSet])]
param
(
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
[DatabasePermission]
$Permission
)
begin
{
$permissionSet = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.DatabasePermissionSet'
}
process
{
foreach ($permissionName in $Permission.Permission)
{
$permissionSet.$permissionName = $true
}
}
end
{
return $permissionSet
}
}