Skip to content

Commit

Permalink
Add additional settings RecycleBinRetentionPeriod,OneDriveBlockGuests…
Browse files Browse the repository at this point in the history
…AsSiteAdmin,OneDriveDefaultShareLinkRole,OneDriveDefaultShareLinkScope,OneDriveDefaultLinkToExistingAccess (#3977)

Co-authored-by: Gautam Sheth <[email protected]>
  • Loading branch information
reshmee011 and gautamdsheth authored May 28, 2024
1 parent 2f7c4ce commit f2ac568
Show file tree
Hide file tree
Showing 3 changed files with 186 additions and 41 deletions.
112 changes: 101 additions & 11 deletions documentation/Set-PnPTenant.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,11 @@ Set-PnPTenant [-SpecialCharactersStateInFileFolderNames <SpecialCharactersState>
[-ESignatureEnabled <Boolean>]
[-BlockUserInfoVisibilityInSharePoint <TenantBrowseUserInfoPolicyValue>]
[-MarkNewFilesSensitiveByDefault <SensitiveByDefaultState>]
[-OneDriveDefaultShareLinkScope <SharingScope>]
[-OneDriveDefaultShareLinkRole <Role>]
[-OneDriveDefaultLinkToExistingAccess <Boolean>]
[-OneDriveBlockGuestsAsSiteAdmin <SharingState>]
[-RecycleBinRetentionPeriod <Int32>]
[-Force] [-Connection <PnPConnection>]
```

Expand Down Expand Up @@ -1802,14 +1807,10 @@ Gets or sets default share link role for fluid on SharePoint sites.
The valid values are:

- Edit
- LimitedEdit
- LimitedView
- ManageList
- None
- Owner
- RestrictedView
- Review
- Submit
- View

```yaml
Type: Role
Expand Down Expand Up @@ -1984,14 +1985,10 @@ Gets or sets default share link role for fluid on OneDrive sites.
The valid values are:

- Edit
- LimitedEdit
- LimitedView
- ManageList
- None
- Owner
- RestrictedView
- Review
- Submit
- View

```yaml
Type: Role
Expand Down Expand Up @@ -2558,7 +2555,7 @@ Accept pipeline input: False
Accept wildcard characters: False
```

### MarkNewFilesSensitiveByDefault
### -MarkNewFilesSensitiveByDefault
Marks new files as sensitive by default before DLP policies are applied.

```yaml
Expand All @@ -2571,6 +2568,99 @@ Accept pipeline input: False
Accept wildcard characters: False
```

### -OneDriveDefaultShareLinkScope

Sets the default sharing link scope for OneDrive.

The valid values are:

- Anyone
- Organization
- SpecificPeople
- Uninitialized

```yaml
Type: SharingScope
Parameter Sets: (All)
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -OneDriveDefaultShareLinkRole

Sets the default sharing link role for OneDrive.

Valid values are :

- Edit
- None
- RestrictedView
- Review
- View

```yaml
Type: Role
Parameter Sets: (All)
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -OneDriveDefaultLinkToExistingAccess

Sets whether OneDrive default links should grant access to existing users.

```yaml
Type: Boolean
Parameter Sets: (All)
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -OneDriveBlockGuestsAsSiteAdmin

Sets the sharing state for blocking guests as site admin in OneDrive.

Valid values are

- On
- Off
- Unspecified

```yaml
Type: SharingState
Parameter Sets: (All)
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -RecycleBinRetentionPeriod

Sets the retention period for the recycle bin.

The value of Recycle Bin Retention Period must be between 14 and 93. By default it is set to 93.

```yaml
Type: Int32
Parameter Sets: (All)
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -Force
If provided, no confirmation will be requested and the action will be performed

Expand Down
62 changes: 51 additions & 11 deletions src/Commands/Admin/SetTenant.cs
Original file line number Diff line number Diff line change
Expand Up @@ -418,40 +418,55 @@ public class SetTenant : PnPAdminCmdlet
public InformationBarriersMode? DefaultOneDriveInformationBarrierMode { get; set; }

[Parameter(Mandatory = false)]
public bool? DelayDenyAddAndCustomizePagesEnforcement;
public bool? DelayDenyAddAndCustomizePagesEnforcement { get; set; }

[Parameter(Mandatory = false)]
public SharingCapabilities? CoreSharingCapability;
public SharingCapabilities? CoreSharingCapability { get; set; }

[Parameter(Mandatory = false)]
public bool? EnableVersionExpirationSetting;
public bool? EnableVersionExpirationSetting { get; set; }

[Parameter(Mandatory = false)]
public TenantBrowseUserInfoPolicyValue? BlockUserInfoVisibilityInOneDrive;

[Parameter(Mandatory = false)]
public bool? AllowOverrideForBlockUserInfoVisibility;
public bool? AllowOverrideForBlockUserInfoVisibility { get; set; }

[Parameter(Mandatory = false)]
public bool? AllowEveryoneExceptExternalUsersClaimInPrivateSite;
public bool? AllowEveryoneExceptExternalUsersClaimInPrivateSite { get; set; }

[Parameter(Mandatory = false)]
public bool? AIBuilderEnabled;
public bool? AIBuilderEnabled { get; set; }

[Parameter(Mandatory = false)]
public bool? AllowSensitivityLabelOnRecords;
public bool? AllowSensitivityLabelOnRecords { get; set; }

[Parameter(Mandatory = false)]
public bool? AnyoneLinkTrackUsers;
public bool? AnyoneLinkTrackUsers { get; set; }

[Parameter(Mandatory = false)]
public bool? EnableSiteArchive;
public bool? EnableSiteArchive { get; set; }

[Parameter(Mandatory = false)]
public bool? ESignatureEnabled;
public bool? ESignatureEnabled { get; set; }

[Parameter(Mandatory = false)]
public TenantBrowseUserInfoPolicyValue? BlockUserInfoVisibilityInSharePoint;
public TenantBrowseUserInfoPolicyValue? BlockUserInfoVisibilityInSharePoint { get; set; }

[Parameter(Mandatory = false)]
public SharingScope? OneDriveDefaultShareLinkScope { get; set; }

[Parameter(Mandatory = false)]
public Role? OneDriveDefaultShareLinkRole { get; set; }

[Parameter(Mandatory = false)]
public bool? OneDriveDefaultLinkToExistingAccess { get; set; }

[Parameter(Mandatory = false)]
public SharingState? OneDriveBlockGuestsAsSiteAdmin { get; set; }

[Parameter(Mandatory = false)]
public int? RecycleBinRetentionPeriod { get; set; }

protected override void ExecuteCmdlet()
{
Expand Down Expand Up @@ -1472,6 +1487,31 @@ protected override void ExecuteCmdlet()
Tenant.AllowOverrideForBlockUserInfoVisibility = AllowOverrideForBlockUserInfoVisibility.Value;
modified = true;
}
if (OneDriveDefaultShareLinkScope.HasValue)
{
Tenant.OneDriveDefaultShareLinkScope = OneDriveDefaultShareLinkScope.Value;
modified = true;
}
if (OneDriveDefaultShareLinkRole.HasValue)
{
Tenant.OneDriveDefaultShareLinkRole = OneDriveDefaultShareLinkRole.Value;
modified = true;
}
if (OneDriveDefaultLinkToExistingAccess.HasValue)
{
Tenant.OneDriveDefaultLinkToExistingAccess = OneDriveDefaultLinkToExistingAccess.Value;
modified = true;
}
if (OneDriveBlockGuestsAsSiteAdmin.HasValue)
{
Tenant.OneDriveBlockGuestsAsSiteAdmin = OneDriveBlockGuestsAsSiteAdmin.Value;
modified = true;
}
if (RecycleBinRetentionPeriod.HasValue)
{
Tenant.RecycleBinRetentionPeriod = RecycleBinRetentionPeriod.Value;
modified = true;
}
if (BlockDownloadFileTypePolicy.HasValue)
{
if (!BlockDownloadFileTypePolicy.Value)
Expand Down
53 changes: 34 additions & 19 deletions src/Commands/Model/SPOTenant.cs
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,15 @@ public class SPOTenant

public SharingState? AllowAnonymousMeetingParticipantsToAccessWhiteboards { private set; get; }

public SharingScope? OneDriveDefaultShareLinkScope { private set; get; }

public Role? OneDriveDefaultShareLinkRole { private set; get; }

public bool? OneDriveDefaultLinkToExistingAccess { private set; get; }

public SharingState? OneDriveBlockGuestsAsSiteAdmin { private set; get; }

public int? RecycleBinRetentionPeriod { private set; get; }
#endregion

public SPOTenant(Tenant tenant, ClientContext clientContext)
Expand Down Expand Up @@ -751,25 +760,31 @@ public SPOTenant(Tenant tenant, ClientContext clientContext)
{
}

CoreSharingCapability = tenant.CoreSharingCapability;
EnableVersionExpirationSetting = tenant.EnableVersionExpirationSetting;
BlockUserInfoVisibilityInOneDrive = tenant.BlockUserInfoVisibilityInOneDrive;
AllowOverrideForBlockUserInfoVisibility = tenant.AllowOverrideForBlockUserInfoVisibility;
AllowEveryoneExceptExternalUsersClaimInPrivateSite = tenant.AllowEveryoneExceptExternalUsersClaimInPrivateSite;
AllowSensitivityLabelOnRecords = tenant.AllowSensitivityLabelOnRecords;
AnyoneLinkTrackUsers = tenant.AnyoneLinkTrackUsers;
AIBuilderEnabled = tenant.AIBuilderEnabled;
EnableSiteArchive = tenant.EnableSiteArchive;
ESignatureEnabled = tenant.ESignatureEnabled;
BlockUserInfoVisibilityInSharePoint = tenant.BlockUserInfoVisibilityInSharePoint;
OneDriveLoopDefaultSharingLinkScope = tenant.OneDriveLoopDefaultSharingLinkScope;
CoreLoopDefaultSharingLinkScope = tenant.CoreLoopDefaultSharingLinkScope;
OneDriveLoopSharingCapability = tenant.OneDriveLoopSharingCapability;
CoreLoopSharingCapability = tenant.CoreLoopSharingCapability;
OneDriveLoopDefaultSharingLinkRole = tenant.OneDriveLoopDefaultSharingLinkRole;
CoreLoopDefaultSharingLinkRole = tenant.CoreLoopDefaultSharingLinkRole;
IsCollabMeetingNotesFluidEnabled = tenant.IsCollabMeetingNotesFluidEnabled;
AllowAnonymousMeetingParticipantsToAccessWhiteboards = tenant.AllowAnonymousMeetingParticipantsToAccessWhiteboards;

try{CoreSharingCapability = tenant.CoreSharingCapability;}catch{}
try{EnableVersionExpirationSetting = tenant.EnableVersionExpirationSetting;}catch{}
try{BlockUserInfoVisibilityInOneDrive = tenant.BlockUserInfoVisibilityInOneDrive;}catch{}
try{AllowOverrideForBlockUserInfoVisibility = tenant.AllowOverrideForBlockUserInfoVisibility;}catch{}
try{AllowEveryoneExceptExternalUsersClaimInPrivateSite = tenant.AllowEveryoneExceptExternalUsersClaimInPrivateSite;}catch{}
try{AllowSensitivityLabelOnRecords = tenant.AllowSensitivityLabelOnRecords;}catch{}
try{AnyoneLinkTrackUsers = tenant.AnyoneLinkTrackUsers;}catch{}
try{AIBuilderEnabled = tenant.AIBuilderEnabled;}catch{}
try{EnableSiteArchive = tenant.EnableSiteArchive;}catch{}
try{ESignatureEnabled = tenant.ESignatureEnabled;}catch{}
try{BlockUserInfoVisibilityInSharePoint = tenant.BlockUserInfoVisibilityInSharePoint;}catch{}
try{OneDriveLoopDefaultSharingLinkScope = tenant.OneDriveLoopDefaultSharingLinkScope;}catch{}
try{CoreLoopDefaultSharingLinkScope = tenant.CoreLoopDefaultSharingLinkScope;}catch{}
try{OneDriveLoopSharingCapability = tenant.OneDriveLoopSharingCapability;}catch{}
try{CoreLoopSharingCapability = tenant.CoreLoopSharingCapability;}catch{}
try{OneDriveLoopDefaultSharingLinkRole = tenant.OneDriveLoopDefaultSharingLinkRole;}catch{}
try{CoreLoopDefaultSharingLinkRole = tenant.CoreLoopDefaultSharingLinkRole;}catch{}
try{IsCollabMeetingNotesFluidEnabled = tenant.IsCollabMeetingNotesFluidEnabled;}catch{}
try{AllowAnonymousMeetingParticipantsToAccessWhiteboards = tenant.AllowAnonymousMeetingParticipantsToAccessWhiteboards;}catch{}
try{OneDriveDefaultShareLinkScope = tenant.OneDriveDefaultShareLinkScope;}catch{}
try{OneDriveDefaultShareLinkRole = tenant.OneDriveDefaultShareLinkRole;}catch{}
try{OneDriveDefaultLinkToExistingAccess = tenant.OneDriveDefaultLinkToExistingAccess;}catch{}
try{OneDriveBlockGuestsAsSiteAdmin = tenant.OneDriveBlockGuestsAsSiteAdmin;}catch{}
try{RecycleBinRetentionPeriod = tenant.RecycleBinRetentionPeriod;}catch{}
}
}
}

0 comments on commit f2ac568

Please sign in to comment.