none
how to hide ribbon for visitors using Rest api RRS feed

  • Question

  • Hello,

    We want to show the SharePoint ribbon only to users who have "SCA" or "full control" access to the site, and hide it from the rest. 

    We are not allowed to do any custom development. We can do only front end development on our site. Is it possible to do it using jQuery/REST API's ?

    Would you be kind enough to help with the code, if possible ? I'm very novice to SP as a developer.

    Thank you.

    prajK

    Monday, February 27, 2017 9:39 AM

Answers

  • You can use Sharepoint Client Object Model for this. Here is how to do it on the current web:

    function CheckPermissionOnWeb() 
    {
        context = new SP.ClientContext.get_current();
    
        web = context.get_web();
    
        this._currentUser = web.get_currentUser();
    
        context.load(this._currentUser);
    
        context.load(web,'EffectiveBasePermissions');
    
        context.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod), Function.createDelegate(this, this.onFailureMethod));        
    
        function onSuccessMethod(sender, args) 
        {
            if (web.get_effectiveBasePermissions().has(SP.PermissionKind.editListItems)) 
            {
                //User Has Edit Permissions
                alert('YEAH, edit list permissions!');
            }
        }
    }

    from http://spdailytips.blogspot.se/2011/09/check-current-user-permission.html

    Here you can find all the possible values for the Enum SP.PermissionKind.

    This pattern will work on a List or a ListItem as well (like a page). Just make sure to load the object with context.load(theItem, 'EffectiveBasePermissions');

    So in your case manageWeb should do great!

    I have found the answer here.

    Please let me know if you need any assistance with the final script.


    Avijit Sur

    Monday, February 27, 2017 6:19 PM

All replies

  • Follow the below steps to hide the SharePoint ribbon control from non admin users:

    1. Open the master page in SharePoint Designer

    2. Go to the line :

    s4-ribbonrow” class=”s4-pr s4-ribbonrowhidetitle”>

    and replace with

    <div id=”s4-ribbonrow” class=”s4-pr s4-ribbonrowhidetitle” style=”display:none”>

    3. Now go to end of the “s4-ribbonrow” tag and add following code:

    <Sharepoint:SPSecurityTrimmedControl ID=”SPSecurityTrimmedControl” runat=”server” PermissionsString="FullMask">
    <script type=”text/javascript”>
    document.getElementById(“s4-ribbonrow”).style.display = “block”;
    </script>
    Sharepoint:SPSecurityTrimmedControl>

    4. Save and publish the master page.

    Different base permissions
    
    EmptyMask : Has no permissions on the Web site. Not available through the user interface.
    ViewListItems : View items in lists, documents in document libraries, and view Web discussion comments.
    AddListItems : Add items to lists, add documents to document libraries, and add Web discussion comments.
    EditListItems : Edit items in lists, edit documents in document libraries, edit Web discussion comments in documents, and customize Web Part Pages in document libraries.
    DeleteListItems : Delete items from a list, documents from a document library, and Web discussion comments in documents.
    ApproveItems : Approve a minor version of a list item or document.
    OpenItems : View the source of documents with server-side file handlers.
    ViewVersions : View past versions of a list item or document.
    DeleteVersions : Delete past versions of a list item or document.
    CancelCheckout : Discard or check in a document which is checked out to another user.
    ManagePersonalViews : Create, change, and delete personal views of lists.
    ManageLists : Create and delete lists, add or remove columns in a list, and add or remove public views of a list.
    ViewFormPages : View forms, views, and application pages, and enumerate lists.
    Open : Allow users to open a Web site, list, or folder to access items inside that container.
    ViewPages : View pages in a Web site.
    AddAndCustomizePages : Add, change, or delete HTML pages or Web Part Pages, and edit the Web site using a SharePoint Foundation–compatible editor.
    ApplyThemeAndBorder : Apply a theme or borders to the entire Web site.
    ApplyStyleSheets : Apply a style sheet (.css file) to the Web site.
    ViewUsageData : View reports on Web site usage.
    CreateSSCSite : Create a Web site using Self-Service Site Creation.
    ManageSubwebs : Create subsites such as team sites, Meeting Workspace sites, and Document Workspace sites.
    CreateGroups : Create a group of users that can be used anywhere within the site collection.
    ManagePermissions : Create and change permission levels on the Web site and assign permissions to users and groups.
    BrowseDirectories : Enumerate files and folders in a Web site using Microsoft Office SharePoint Designer 2007 and WebDAV interfaces.
    BrowseUserInfo : View information about users of the Web site.
    AddDelPrivateWebParts : Add or remove personal Web Parts on a Web Part Page.
    UpdatePersonalWebParts : Update Web Parts to display personalized information.
    ManageWeb : Grant the ability to perform all administration tasks for the Web site as well as manage content. Activate, deactivate, or edit properties of Web site scoped Features through the object model or through the user interface (UI). When granted on the root Web site of a site collection, activate, deactivate, or edit properties of site collection scoped Features through the object model. To browse to the Site Collection Features page and activate or deactivate site collection scoped Features through the UI, you must be a site collection administrator.
    UseClientIntegration : Use features that launch client applications; otherwise, users must work on documents locally and upload changes.
    UseRemoteAPIs : Use SOAP, WebDAV, or Microsoft Office SharePoint Designer 2007 interfaces to access the Web site.
    ManageAlerts : Manage alerts for all users of the Web site.
    CreateAlerts : Create e-mail alerts.
    EditMyUserInfo : Allows a user to change his or her user information, such as adding a picture.
    EnumeratePermissions : Enumerate permissions on the Web site, list, folder, document, or list item.
    FullMask : Has all permissions on the Web site. Not available through the user interface.
    




    Avijit Sur

    Monday, February 27, 2017 10:51 AM
  • Hi Avijit,

    Thank you so much for helping with this solution. I'm sure this will work, & i will this on my personal test site. 

    I just found out that we are unable to edit masterpages on our main intranet site, so is there a way we can have some code embedded on a particular page to achieve the same ?

    Thank you again,

    prajK

    Monday, February 27, 2017 5:16 PM
  • You can use Sharepoint Client Object Model for this. Here is how to do it on the current web:

    function CheckPermissionOnWeb() 
    {
        context = new SP.ClientContext.get_current();
    
        web = context.get_web();
    
        this._currentUser = web.get_currentUser();
    
        context.load(this._currentUser);
    
        context.load(web,'EffectiveBasePermissions');
    
        context.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod), Function.createDelegate(this, this.onFailureMethod));        
    
        function onSuccessMethod(sender, args) 
        {
            if (web.get_effectiveBasePermissions().has(SP.PermissionKind.editListItems)) 
            {
                //User Has Edit Permissions
                alert('YEAH, edit list permissions!');
            }
        }
    }

    from http://spdailytips.blogspot.se/2011/09/check-current-user-permission.html

    Here you can find all the possible values for the Enum SP.PermissionKind.

    This pattern will work on a List or a ListItem as well (like a page). Just make sure to load the object with context.load(theItem, 'EffectiveBasePermissions');

    So in your case manageWeb should do great!

    I have found the answer here.

    Please let me know if you need any assistance with the final script.


    Avijit Sur

    Monday, February 27, 2017 6:19 PM
  • Thank you Avijit, i took my time to study all of this, and was able to come up with a solution. 

    I really appreciate your help. Thank you so much !


    Wednesday, March 8, 2017 7:32 AM