Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FileVersion] Get-PnPSite change for VersionPolicy #3470

Merged
merged 6 commits into from
Oct 13, 2023

Conversation

msjennywu
Copy link
Contributor

@msjennywu msjennywu commented Oct 4, 2023

Before creating a pull request, make sure that you have read the contribution file located at

https://github.com/pnp/powerShell/blob/dev/CONTRIBUTING.md

Type

  • Bug Fix
  • New Feature
  • Sample

##Test##

PS C:\Users\jennywu> #AutoExpiration
PS C:\Users\jennywu> Set-PnPSite -EnableAutoExpirationVersionTrim $true -ApplyForNewLibs
PS C:\Users\jennywu> Get-PnPSiteVersionPolicy

Url                    : https://a830edad9050849jfvtest8.sharepoint.com/sites/jsite4
DefaultTrimMode        : AutoExpiration
DefaultExpireAfterDays :
MajorVersionLimit      :
Description            : Site has Automatic Policy Set


PS C:\Users\jennywu> #ExpireAfter
PS C:\Users\jennywu> Set-PnPSite -EnableAutoExpirationVersionTrim $false -MajorVersions 100 -ExpireVersionsAfterDays 200 -ApplyForNewLibs
PS C:\Users\jennywu> Get-PnPSiteVersionPolicy

Url                    : https://a830edad9050849jfvtest8.sharepoint.com/sites/jsite4
DefaultTrimMode        : ExpireAfter
DefaultExpireAfterDays : 200
MajorVersionLimit      : 100
Description            : Site has Manual settings with specific count and time limits


PS C:\Users\jennywu> #NoExpiration
PS C:\Users\jennywu> Set-PnPSite -EnableAutoExpirationVersionTrim $false -MajorVersions 300 -ExpireVersionsAfterDays 0 -ApplyForNewLibs
PS C:\Users\jennywu> Get-PnPSiteVersionPolicy

Url                    : https://a830edad9050849jfvtest8.sharepoint.com/sites/jsite4
DefaultTrimMode        : NoExpiration
DefaultExpireAfterDays :
MajorVersionLimit      : 300
Description            : Site has Manual settings with specific version count limit and no time limits


PS C:\Users\jennywu> #No setting on site
PS C:\Users\jennywu> Set-PnPSite -InheritTenantVPForNewDocLibs
PS C:\Users\jennywu> Get-PnPSiteVersionPolicy

Url                    : https://a830edad9050849jfvtest8.sharepoint.com/sites/jsite4
DefaultTrimMode        :
DefaultExpireAfterDays :
MajorVersionLimit      :
Description            : No Site Level Policy Set

@msjennywu
Copy link
Contributor Author

@KoenZomers Could you please review and check in this change? Thanks as so much as always :)

{
site.EnsureProperties(s => s.Url, s => s.VersionPolicyForNewLibrariesTemplate, s => s.VersionPolicyForNewLibrariesTemplate.VersionPolicies);

var s = new PSObject();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could it be an idea to create a model for this instead of using a freeform PSObject? This is how we do it for the other cmdlets as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@KoenZomers Thanks so much for the suggestion! Added a new class for returning version policy object. Could you please check again? The tests results in the PR description is also updated.

@KoenZomers KoenZomers self-assigned this Oct 5, 2023
@KoenZomers KoenZomers added the in review PR or issue is currently being reviewed label Oct 5, 2023
}
}

public class VersionPolicy
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you put it in its own .cs file under src\Commands\Model\SharePoint instead and add some code comments as to what the class does and each of the properties stand for?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @KoenZomers for the suggestion! Should I create a new command for my VersionPolicy? Because I saw "[Cmdlet(VerbsCommon.Get, "PnPSiteSensitivityLabel")]" command also get properties from site, it uses a separate command, but not the Get-PnPSite.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes please. Ideally one cmdlet always return the same type so we can add this at the top:

[OutputType(typeof(Microsoft.SharePoint.Client.Site))]

If it returns anything else, it should have its own cmdlet. Please remember to also write the documentation .md files if you create a new cmdlet.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @KoenZomers for the confirmation! Created a new cmdlet, added md file, reverted the changes in Get-PnPSite command and md files. Also updated the test results in the PR description. Could you please review again? Thanks so much!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @KoenZomers , Could you please check the PR again? Thanks a lot!

@msjennywu msjennywu requested a review from KoenZomers October 12, 2023 16:56
@KoenZomers
Copy link
Collaborator

Excellent @msjennywu, thanks for the changes!

@KoenZomers KoenZomers merged commit be48805 into pnp:dev Oct 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in review PR or issue is currently being reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants