Nov 02 2020 05:50 AM - edited Nov 02 2020 06:23 AM
Nov 05 2020 09:12 AM
In the hopes that this may help someone else...
I've been having luck using an spfx extension to view if the user has certain permissions. I still haven't been able to successfully hide the gear Icon though.
The js I use works well on the first page load but then doesn't after that. Not sure what's off.
Nov 05 2020 09:54 PM
SPFx extension will work only on modern pages in SharePoint.
If it is not working on modern page then it might be the issue of browser cache. If you are testing in debugging mode then try uploading SPFX extension package in App catalog and then on your site.
Also try testing by clearing browser cache.
Please click Mark as Best Response if my post helped you to solve your issue. This will help others to find the correct solution easily. It also closes the item. If the post was useful in other ways, please consider giving it Like.
Nov 09 2020 03:55 AM
I was starting to wonder if anyone would reply, thank you.
I have deployed and ran the extension on a test site but again, it works on first load and not after. Do you know how I would handle the cache issue?
Right now my js uses a function with set interval to check if the element is loaded. This doesnt always work though:
Nov 09 2020 04:43 AM
Hi @phil333 , The Gear Icon shows only the things, your User will get to see according to their permission levels. I think, it is a good one to NOT hide icons in a SharePoint. SharePoint is not a HidePoint. Make sure, your users get a basic training or online course to learn, what the icons can do to for them.
For instance, you always can restrict certain pages or the whole pages library of a site with a content approval, so that they cannot manipulate on whats in your pages without your approval. The pages library is in the site content of a site, you can go to "Library Settings" as a site Owner, than go to "advanced settings" - activate the first check box in this page here to set on a content approval. So each time someone changes the content, you'll get an alert by Mail and also can easily approve or reject a change. This is by far better than bother with coding in SharePoint Framework, I suggest. Have a good day today! And if I can help, pls. give a LIKe. Greets from Eva.
Nov 09 2020 08:13 AM
@Eva Vogel Thank you for your response.
"SharePoint is not a HidePoint" was a good one. Unfortunately in this situation, SP is what ever the project manager wants it to be. Of which they don't want site contents and site usage visible to just every one.
I do like your solution though for what is is worth. In a different scenario (probably most) I think it would really do the trick.
Nov 09 2020 08:14 AM - edited Nov 10 2020 11:38 AM
SolutionA spfx extension solved my problem!
In my application customizer I imported SPPermission and then used some js to do what I needed.
My Code below:
const canEdit = this.context.pageContext.web.permissions.hasAnyPermissions(SPPermission.manageWeb);
if(!canEdit){
let checkExist = setInterval(function() {
const element = document.querySelector("#O365_MainLink_Settings_container").firstChild.firstChild.firstChild.firstChild;
if(typeof(element) != "undefined" && element != null){
element.parentElement.parentElement.parentElement.remove();
console.log("GFC user only has view rights.");
clearInterval(checkExist);
}
}, 100);
}
References:
Setup Environment: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-development-environment
Build an extension: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/extensions/get-started/build-a-hello-world-exte...
Mar 12 2021 01:45 AM
Jan 26 2023 09:50 AM