<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是不适用的。