SharePoint 2013 list froms(new/update/view) 某个字段只对某个SharePoint组的成员可见

来源:互联网 发布:冰川网络远征ol2论坛 编辑:程序博客网 时间:2024/05/05 10:40
<script src="http://code.jquery.com/jquery-2.0.3.min.js" ></script><script> $(document).ready(function () {    DocumentReadyForItemForm();});var currentUser;var groups ;var filterGroup = "managers"; // 某个特定SharePoint组名var filedLabel = "fieldLabelText"; // 字段label名_spBodyOnLoadFunctionNames.push('DocumentReadyForItemForm');ExecuteOrDelayUntilScriptLoaded(GetCurrentUser, 'sp.js');function DocumentReadyForItemForm(){   $('nobr:contains("'+filedLabel+'")').closest('tr').hide();   } function GetCurrentUser() {    var clientContext = new SP.ClientContext.get_current();    var oWeb = clientContext.get_web();    currentUser = oWeb.get_currentUser();    clientContext.load(currentUser);    clientContext.executeQueryAsync(function () {               var userInfoList = oWeb.get_siteUserInfoList();               var userItem = userInfoList.getItemById(currentUser.get_id());        clientContext.load(userItem);        clientContext.executeQueryAsync(function () {                                   groups = currentUser.get_groups();                                  clientContext.load(groups);                                    clientContext.executeQueryAsync(function () {                                                  var groupEnumerator = groups.getEnumerator();                                                while(groupEnumerator.moveNext())                                                   {                                                      var currentGroup =  groupEnumerator.get_current();                                                      if(currentGroup.get_title() ==filterGroup)                                                                 {                                                                            $('nobr:contains("'+filedLabel+'")').closest('tr').show();                                                                             break;                                                                 }                                                   }                                               } ,    function (request, message) { alert("error:" + message); } );                       },        function (request, message) { alert("error:" + message); });    }, function () { });   }</script>


将以上代码(修改某个特定SharePoint组名和字段label名)加到对应的list from里面:

1. 打开列表的all item视图

2. 点击"List"选项卡 =〉"Form web parts" = >"Default New Form"


3. 在该页面插入一个content edit web part 


4. 编辑该web part ,将其title修改成空格,点击"Click here to add new content"


5. 点击Ribbon中的Edit source


6. 将代码贴入HTML Source 框中,点击OK保存脚本

7. 保存页面("stop Editing")



注意: 以上方案只对将用户帐号直接加入到SharePoint Group的情况有效,也就是如果加的AD组,用户属于该用户组,然后将AD组加到SharePoint Group是不适用的。