当前位置: 首页>>建站开发>>正文


Sharepoint 2013 – 仅向管理员显示功能区

webfans 建站开发 , 去评论

问题描述

我是否可以使用教程或特定的代码来隐藏除管理员或用户组以外的所有用户的功能区?

这需要针对sharepoint 2013(而不是2010)

有人可以帮忙吗?

最佳解决方法

CSS + JS解决方案

在您的母版页中添加以下CSS

#RibbonContainer{
  display: none;
}

现在获取当前用户的详细信息

/_api/web/currentuser?$expand=Groups

向上述end-point发出GET请求,它将使用他/她的Groups返回当前用户的详细信息

现在检查当前用户是否为IsSiteAdmin,然后再次显示功能区。

if (response.d.IsSiteAdmin){
   document.querySelector("#RibbonContainer").style.display = 'block';
}

如果您需要检查特定组中是否存在当前用户,那么

var groupName = "Your Group Name";

var isUserExistsInGroup = response.d.Groups.results.some(function(g) {
    return g.Title == groupName;
});

if (isUserExistsInGroup) {
    document.querySelector("#RibbonContainer").style.display = 'block';
}

完整的JS代码将它放在您的母版页中

(function() {
    var xmlhttp = new XMLHttpRequest();

    xmlhttp.open("GET", _spPageContextInfo.webAbsoluteUrl + '/_api/web/currentuser?$expand=Groups');

    xmlhttp.setRequestHeader("Accept", "application/json;odata=verbose");

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == XMLHttpRequest.DONE) {
            if (xmlhttp.status == 200) {
                var response = xmlhttp.responseText;

                if (response.d.IsSiteAdmin) {
                    document.querySelector("#RibbonContainer").style.display = 'block';
                }

                var groupName = "Your Group Name"; //Give here your Group Name

                var isUserExistsInGroup = response.d.Groups.results.some(function(g) {
                    return g.Title == groupName;
                });

                if (isUserExistsInGroup) {
                    document.querySelector("#RibbonContainer").style.display = 'block';
                }

            } else {
                alert('Error: ' + xmlhttp.statusText)
            }
        }
    }

    xmlhttp.send();

})();

次佳解决方法

安全修剪主页中的功能区怎么样?

<!--CS: Start Security Trim Snippet-->
    <!--SPM:<%@Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>-->
    <!--MS:<SharePoint:SPSecurityTrimmedControl runat="server" AuthenticationRestrictions="AuthenticatedUsersOnly" Permissions="AddAndCustomizePages" PermissionContext="RootSite">-->
        <!--PS: Start of READ-ONLY PREVIEW (do not modify)--><span><!--PE: End of READ-ONLY PREVIEW-->
            <div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle">
            ...
            </div>
        <!--PS: Start of READ-ONLY PREVIEW (do not modify)--></span><!--PE: End of READ-ONLY PREVIEW-->
    <!--ME:</SharePoint:SPSecurityTrimmedControl>-->
    <!--CE: End Security Trim Snippet-->

MSDN参考:

https://msdn.microsoft.com/en-us/library/office/jj822366.aspx

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2457.html,转载请务必附带本地址声明。