Hi @Will ,
I tested below 4 scenaios:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomActionGroup
Description = "fffffffff"
Id = "PS.SiteOwnerReports"
Location = "Microsoft.SharePoint.SiteSettings"
Sequence = "10000"
Title = "Test permissions">
</CustomActionGroup>
<CustomAction
GroupId ="PS.SiteOwnerReports"
Id="ViewAllPermissions.SiteSettings"
Location="Microsoft.SharePoint.SiteSettings"
Sequence="10001"
Title = "FullMask-False"
RequireSiteAdministrator="False"
Rights="FullMask"
>
<!--
Update the Url below to the page you want the custom action to use.
Start the URL with the token ~remoteAppUrl if the page is in the
associated web project, use ~appWebUrl if page is in the add-in project.
-->
<UrlAction Url="~site/_layouts/SharePointProject1/ApplicationPage1.aspx" />
</CustomAction>
<CustomAction
GroupId ="PS.SiteOwnerReports"
Id="ViewAllPermissions.SiteSettings"
Location="Microsoft.SharePoint.SiteSettings"
Sequence="10001"
Title = "FullMask-True"
RequireSiteAdministrator="True"
Rights="FullMask"
>
<!--
Update the Url below to the page you want the custom action to use.
Start the URL with the token ~remoteAppUrl if the page is in the
associated web project, use ~appWebUrl if page is in the add-in project.
-->
<UrlAction Url="~site/_layouts/SharePointProject1/ApplicationPage1.aspx" />
</CustomAction>
<CustomAction
GroupId ="PS.SiteOwnerReports"
Id="ViewAllPermissions.SiteSettings"
Location="Microsoft.SharePoint.SiteSettings"
Sequence="10001"
Title = "ManageWeb-False"
RequireSiteAdministrator="False"
Rights="ManageWeb"
>
<!--
Update the Url below to the page you want the custom action to use.
Start the URL with the token ~remoteAppUrl if the page is in the
associated web project, use ~appWebUrl if page is in the add-in project.
-->
<UrlAction Url="~site/_layouts/SharePointProject1/ApplicationPage1.aspx" />
</CustomAction>
<CustomAction
GroupId ="PS.SiteOwnerReports"
Id="ViewAllPermissions.SiteSettings"
Location="Microsoft.SharePoint.SiteSettings"
Sequence="10001"
Title = "ManageWeb-True"
RequireSiteAdministrator="True"
Rights="ManageWeb"
>
<!--
Update the Url below to the page you want the custom action to use.
Start the URL with the token ~remoteAppUrl if the page is in the
associated web project, use ~appWebUrl if page is in the add-in project.
-->
<UrlAction Url="~site/_layouts/SharePointProject1/ApplicationPage1.aspx" />
</CustomAction>
</Elements>
The result is:
- If the user is site collection administrator, then he is able to see all links
- If the user is only site owner, then he can only see the links that have 'false'
RequireSiteAdministrator
So I think you may need to set RequireSiteAdministrator
to false. Below is my test demo.
Best Regards,
Baker Kong
If an Answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.