Skip to content

Commit fa642f5

Browse files
committed
documentation changes for the upcoming November release
1 parent 65f0cf2 commit fa642f5

File tree

4 files changed

+174
-4
lines changed

4 files changed

+174
-4
lines changed

docs/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1394,6 +1394,8 @@
13941394
href: transform/modernize-userinterface-site-pages-model-publishing.md
13951395
- name: Page transformation Functions and Selectors
13961396
href: transform/modernize-userinterface-site-pages-api.md
1397+
- name: User mapping
1398+
href: transform/modernize-userinterface-site-pages-usermapping.md
13971399
- name: URL mapping
13981400
href: transform/modernize-userinterface-site-pages-urlmapping.md
13991401
- name: Page layout mapping

docs/transform/modernize-userinterface-site-pages-configuration.md

Lines changed: 111 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Options to control the page transformation process
33
description: Explains how to configure the page transformation process
4-
ms.date: 10/03/2019
4+
ms.date: 11/04/2019
55
ms.prod: sharepoint
66
localization_priority: Normal
77
---
@@ -156,6 +156,50 @@ PageTransformationInformation pti = new PageTransformationInformation(page)
156156
> [!NOTE]
157157
> This option is not available for publishing page transformation.
158158
159+
## TargetPageName option
160+
161+
Type | Default value if not specified
162+
-----|----
163+
String | empty
164+
165+
You can optionally override the page name of the target page. By default the page transformation engine will generate one, but sometimes it's needed to override (e.g. default.aspx will collide with the default.aspx view page of the SitePages library).
166+
167+
```Csharp
168+
PageTransformationInformation pti = new PageTransformationInformation(page)
169+
{
170+
TargetPageName = "mypage.aspx",
171+
};
172+
```
173+
174+
```Csharp
175+
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
176+
{
177+
TargetPageName = "mypage.aspx",
178+
};
179+
```
180+
181+
## TargetPageFolder option (as of November 2019 release)
182+
183+
Type | Default value if not specified
184+
-----|----
185+
String | empty
186+
187+
You can optionally specify the folder in which the target page will be created. Note that if a folder was created automatically (e.g. because you were transforming from an extra wiki page library) then the folder specified by this parameter will be combined with the auto-generated folder. You can specify a folder like this: `MyFolder` or `MyFolder/SubFolder` when you want to create a nested folder structure.
188+
189+
```Csharp
190+
PageTransformationInformation pti = new PageTransformationInformation(page)
191+
{
192+
TargetPageFolder = "MyFolder",
193+
};
194+
```
195+
196+
```Csharp
197+
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
198+
{
199+
TargetPageFolder = "MyFolder",
200+
};
201+
```
202+
159203
## ReplaceHomePageWithDefaultHomePage option
160204

161205
Type | Default value if not specified
@@ -450,6 +494,72 @@ PublishingPageTransformationInformation pti = new PublishingPageTransformationIn
450494
};
451495
```
452496

497+
## UserMappingFile option (as of November 2019 release)
498+
499+
Type | Default value if not specified
500+
-----|----
501+
String | empty
502+
503+
You can optionally specify a file with custom user mappings. See the [User mapping](modernize-userinterface-site-pages-usermapping.md) article to learn more.
504+
505+
```Csharp
506+
PageTransformationInformation pti = new PageTransformationInformation(page)
507+
{
508+
UserMappingFile = @"c:\temp\usermappingfile.csv",
509+
};
510+
```
511+
512+
```Csharp
513+
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
514+
{
515+
UserMappingFile = @"c:\temp\usermappingfile.csv",
516+
};
517+
```
518+
519+
## LDAPConnectionString option (as of November 2019 release)
520+
521+
Type | Default value if not specified
522+
-----|----
523+
String | empty
524+
525+
You can optionally specify a custom LDAP connection string towards your Active Directory environment. See the [User mapping](modernize-userinterface-site-pages-usermapping.md) article to learn more.
526+
527+
```Csharp
528+
PageTransformationInformation pti = new PageTransformationInformation(page)
529+
{
530+
LDAPConnectionString = "LDAP://OU=Test,DC=CONTOSO,DC=COM",
531+
};
532+
```
533+
534+
```Csharp
535+
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
536+
{
537+
LDAPConnectionString = "LDAP://OU=Test,DC=CONTOSO,DC=COM",
538+
};
539+
```
540+
541+
## SkipUserMapping option (as of November 2019 release)
542+
543+
Type | Default value if not specified
544+
-----|----
545+
Bool | false
546+
547+
The default behavior is to always perform user mapping when you are transforming pages coming from SharePoint on-premises, use this option to disable that. See the [URL mapping](modernize-userinterface-site-pages-urlmapping.md) article to learn more.
548+
549+
```Csharp
550+
PageTransformationInformation pti = new PageTransformationInformation(page)
551+
{
552+
SkipUserMapping = true,
553+
};
554+
```
555+
556+
```Csharp
557+
PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
558+
{
559+
SkipUserMapping = true,
560+
};
561+
```
562+
453563
## HandleWikiImagesAndVideos option
454564

455565
Type | Default value if not specified

docs/transform/modernize-userinterface-site-pages-powershell.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Transform classic pages to modern client-side pages using PowerShell
33
description: Explains how to transform classic wiki and web part pages into modern client side pages using the SharePoint PowerShell
4-
ms.date: 10/22/2019
4+
ms.date: 11/04/2019
55
ms.prod: sharepoint
66
localization_priority: Priority
77
---
@@ -39,23 +39,28 @@ TargetWebUrl (`**`) (as of March 2019 release, version 3.7.1903.*) | | Cross sit
3939
TargetConnection (`**`) (as of the June 2019 release, version 3.8.1906.) | | Cross site transformation | Allows for a more flexible definition of the target via a connection object. This allows for example to perform cross tenant transformation of transformation from on-premises to online.
4040
UseCommunityScriptEditor (as of March 2019 release, version 3.7.1903.*) | $false | All page types | Use `-UseCommunityScriptEditor` if you've installed the community script editor and want to use it during transformation. Consult the [web part transformation list](modernize-userinterface-site-pages-webparts.md) article to learn more.
4141
SummaryLinksToHtml (as of March 2019 release, version 3.7.1903.*) | $false | All page types | Use `-SummaryLinksToHtml` if you prefer to transform the SummaryLinks web part to HTML hosted in the text web part instead of the default transformation using the QuickLinks web part. Consult the [web part transformation list](modernize-userinterface-site-pages-webparts.md) article to learn more.
42-
LogType (as of April 2019 release, version 3.8.1904.*) | None | All page types | Use `-LogType` to enabled logging: `File` will log to disk, `SharePoint` will create a log page in the SharePoint SitePages library.
42+
LogType (as of April 2019 release, version 3.8.1904.*) | None | All page types | Use `-LogType` to enabled logging: `File` will log to disk, `SharePoint` will create a log page in the SharePoint SitePages library, `Console` will output data to the console.
4343
LogFolder (as of April 2019 release, version 3.8.1904.*) | | All page types | If `LogType` is set to `File` then you can use `-LogFolder` to specify the folder where the log will be created.
4444
LogVerbose (as of April 2019 release, version 3.8.1904.*) | $false | All page types | Use `-LogVerbose` to generate a verbose log.
4545
LogSkipFlush (as of April 2019 release, version 3.8.1904.*) | $false | All page types | By default each cmdlet call generates a unique log file, use the `-LogSkipFlush` parameter to accumulate log entries. Note that you'll have to end with a call without LogSkipFlush to persist the assembled log file entries.
4646
DontPublish (as of April 2019 release, version 3.8.1904.*) | $false | All page types | Use the `-DontPublish` option to not publish the created modern page.
4747
KeepPageCreationModificationInformation (as of October 2019 release, version 3.14.1910.*) | $false | All page types | Use `-KeepPageCreationModificationInformation` parameter if you want to take over the Author/Editor/Created/Modified page properties. This option only works for when the source page is in the same SPO tenant as the target destination of the modern page.
4848
PostAsNews (as of October 2019 release, version 3.14.1910.*) | $false | All page types | Use the `-PostAsNews` parameter if you want to post the created modern page as news on the site. This also implies that the page will be published, even if you've configured to skip publishing.
49+
SetAuthorInPageHeader (as of October 2019 release, version 3.14.1910.*) | $false | Wiki/webpart/blog pages | Use the `-SetAuthorInPageHeader` parameter if you want to populate the author in the header of the created page. The author will be set the (user mapped) source page author.
4950
DisablePageComments (as of April 2019 release, version 3.8.1904.*) | $false | All page types | Use `-DisablePageComments` if you want to disable the commenting option on the created page
5051
PublishingPage (as of April 2019 release, version 3.8.1904.*) | $false | Publishing pages | Set the `-PublishingPage` parameter if you're transforming a publishing page. For wiki,web part and blog pages this parameter must be omitted or set to false.
5152
PageLayoutMapping (as of April 2019 release, version 3.8.1904.*) | | Publishing pages |Via `-PageLayoutMapping` you can specify the path the [page layout mapping file](modernize-userinterface-site-pages-model-publishing.md) that you'll use for your publishing page transformations when the publishing page is using a non out of the box page layout
5253
TargetPageName (as of Oct 2019 release, version 3.14.1910.*) | | Wiki/webpart/blog pages | Use the `-TargetPageName` parameter to override the default name for the modern page. This is for example needed to prevent overwriting the existing home.aspx page if you a cross site transformation of a classic team site home page to a modern communication site.
5354
PublishingTargetPageName (as of May 2019 release, version 3.9.1905.*) | | Publishing pages | Use the `-PublishingTargetPageName` parameter to override the name for the modern page
54-
SkipUrlRewriting (as of May 2019 release, version 3.9.1905.*) | $false | Cross site transformation | During publishing page transformation URL's are rewritten to be valid in the target site collection, but using the `-SkipUrlRewriting` you can disable the URL rewriting. See the [URL mapping](modernize-userinterface-site-pages-urlmapping.md) article to learn more.
55+
TargetPageFolder (as of November 2019 release, version 3.15.1911.*) | | All page types | Use the `-TargetPageFolder` parameter to specify a target folder for the modern page. Note that if a folder was created automatically (e.g. because you were transforming from an extra wiki page library) then the folder specified by this parameter will be combined with the auto-generated folder. You can specify a folder like this: `MyFolder` or `MyFolder/SubFolder` when you want to create a nested folder structure.
5556
UrlMappingFile (as of July 2019 release, version 3.11.1907.*) | | Cross site transformation | File with custom URL mapping definitions allow you to do more than just the default URL mapping. See the [URL mapping](modernize-userinterface-site-pages-urlmapping.md) article to learn more.
57+
SkipUrlRewriting (as of May 2019 release, version 3.9.1905.*) | $false | Cross site transformation | During publishing page transformation URL's are rewritten to be valid in the target site collection, but using the `-SkipUrlRewriting` you can disable the URL rewriting. See the [URL mapping](modernize-userinterface-site-pages-urlmapping.md) article to learn more.
5658
SkipDefaultUrlRewriting (as of September 2019 release, version 3.13.1909.*) | | Cross site transformation | When you use a custom URL mapping and you want to disable the default URL rewrite logic then set the `-SkipDefaultUrlRewriting` parameter.
5759
AddTableListImageAsImageWebPart (as of October 2019 release, version 3.14.1910.*) | $true | All page types | Images living inside a table/list are also created as separate image web parts underneath that table/list. Use the `-AddTableListImageAsImageWebPart` parameter to stop the creation of these separate image web parts.
5860
BlogPage (as of the October 2019 release, version 3.14.1910.*) | $false | Blog pages | Set the `-BlogPage` parameter if you're transforming a classic blog page. For wiki,web part and publishing pages this parameter must be omitted or set to false.
61+
UserMappingFile (as of November 2019 release, version 3.15.1911.*) | | All page types | File with user mapping information. See the [User mapping](modernize-userinterface-site-pages-usermapping.md) article to learn more.
62+
LDAPConnectionString (as of November 2019 release, version 3.15.1911.*) | | All page types | LDAP connection string to query active directory. See the [User mapping](modernize-userinterface-site-pages-usermapping.md) article to learn more.
63+
SkipUserMapping (as of November 2019 release, version 3.15.1911.*) | $false | All page types | Skips the user mapping. For SPO transformations user mapping is off unless you specify a mapping file, for on-premises SharePoint user mapping is always on unless you set this flag. See the [User mapping](modernize-userinterface-site-pages-usermapping.md) article to learn more.
5964

6065
(`*`) Mandatory command line parameter / (`**`) Mandatory when the `-PublishingPage` parameter was set (either `-TargetWebUrl` or `-TargetConnection`)
6166

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: User mapping during page transformation
3+
description: Explains how to the user mapping works when transforming pages
4+
ms.date: 11/04/2019
5+
ms.prod: sharepoint
6+
localization_priority: Priority
7+
---
8+
9+
# User mapping during page transformation (as of the November 2019 release)
10+
11+
When you're transforming pages from your on-premises SharePoint you typically are using Active Directory accounts (e.g. CONTOSO\JOE) to grant access to SharePoint while in SharePoint Online you use Azure Active Directory accounts to grant access. User mapping is a component of page transformation that enables you to map your on-premises Active Directory accounts to Azure Active Directory accounts in SharePoint Online and use those mapped accounts to specify user and group related information of the target page.
12+
13+
## Default user mapping for pages transformed from on-premises SharePoint
14+
15+
When you are transforming pages from on-premises SharePoint then user mapping is on by default: many customers that have on-premises and online SharePoint also use Active Directory sync which means that the on-premises users and groups also exist in SharePoint Online as users and groups. The default user mapping system will lookup the on-premises user by querying the local Active Directory environment, if a user is found than we take the user's UPN (user principal name) value and use that to find the same user in Azure Active Directory.
16+
17+
Default user mapping does require a connection the your on-premises Active Directory which is done via LDAP queries. A default LDAP connection string is built based upon you fully qualified Active Directory ___domain name: if your Active Directory ___domain was contoso.com then the used LDAP connection string is LDAP://DC=contoso,DC=com. If this however is wrong then you specify a custom LDAP connection string via the `-LDAPConnectionString` parameter to the `ConvertTo-PnPClientSidePage` cmdlet if you're using PnP PowerShell. If you're using .Net then you can define the custom LDAP connection string via the `LDAPConnectionString` attribute of the .Net page transformation configuration objects (`PageTransformationInformation` and `PublishingPageTransformationInformation`).
18+
19+
> [!IMPORTANT]
20+
> Given the mapping depends on ___domain lookups it will only work if the machine/account running the page transformation are joined to the same Active Directory ___domain as the one holding the accounts/groups that are used to authorize access to the on-premises SharePoint environment.
21+
22+
If you want to completely disable user mapping for your SharePoint on-premises to SharePoint transformations then you can use the `-SkipUserMapping` parameter to the `ConvertTo-PnPClientSidePage` cmdlet if you're using PnP PowerShell. If you're using .Net then you can skip user mapping via the `SkipUserMapping` attribute of the .Net page transformation configuration objects (`PageTransformationInformation` and `PublishingPageTransformationInformation`).
23+
24+
## Mapping based upon a mapping file
25+
26+
If you don't like or cannot use the automatic user mapping based upon Active Directory lookups then there's also the option to specify a user mapping file. A user mapping file is a simple CSV file listing source account and target account as shown in below snippet
27+
28+
```Text
29+
sharepoint\system,[email protected]
30+
contoso\paul,[email protected]
31+
contoso\bert,[email protected]
32+
s-1-5-21-3138640143-967965215-2549001177-3604,SalesGroup
33+
```
34+
35+
Some things to note:
36+
37+
- You can map the **system account** via sharepoint\system
38+
- Groups have to be specified via the group sid
39+
40+
Creating the mapping file is the first step, to actually use it you need to specify the file via the `UserMappingFile` parameter to the `ConvertTo-PnPClientSidePage` cmdlet if you're using PnP PowerShell. If you're using .Net then you can specify the file via the `UserMappingFile` attribute of the .Net page transformation configuration objects (`PageTransformationInformation` and `PublishingPageTransformationInformation`).
41+
42+
> [!IMPORTANT]
43+
> User mapping can also be used when doing cross site page transformation in SharePoint Online. It allows you to "replace" certain old accounts with newer ones.
44+
45+
## Where does user mapping apply
46+
47+
User mapping is integrated in page transformation in the following places:
48+
49+
- If you have metadata user fields that you are copying over
50+
- If you have item level permissions on a source page and you're taking over these permissions (note that you can use the `SkipItemLevelPermissionCopyToClientSidePage` option to prevent this)
51+
- If you're populating the page header (via the `SetAuthorInPageHeader` option for wiki/webpart and blog pages or via appropriate configuration in your page layout mapping file for publishing pages)
52+
- If you're keeping the page author/editor/created/modified information via the `KeepPageCreationModificationInformation` option
53+
- If you're transforming a ContactFieldControl web part

0 commit comments

Comments
 (0)