SharePoint:如何根據用戶身份來自動控制Portal的Logo顯示
作為資深的SharePoint管理員,我們知道Web Part可以通過配置Audience來控制哪些Group member可以顯示Web Part哪些Group Member是隱藏Web Part的,但如何根據用戶身份來控制Logo顯示呢?
解決方案:通過SharePoint Designer在Master Page中<head/>前做下修改。
前期準備:
? 新建Picture Library用來做Logo的存儲
? 根據實際需求新建SharePoint Group
? 將AD User添加到特定的SharePoint Group中,需要註意不支持Ad Group
以Pingpang Group為例,操作如下:
1.新建Picture Library,並上傳Logos,如下圖所示:
2.新建SharePoint Group,並命名為Pingpang Group,添加User:jzliu,如下圖所示:
3.使用SharePoint Designer來打開Site Collection,並點擊Site Objects中的Master Pages,如下圖所示:
4.在Master Page Library中,用高級模式打開seattle.master, 並在<head/>添加如下代碼:
<script src="https://code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
var groupName="Pingpang Group";
var logoImgUrl="http://www.demo.com/sites/Changchun/Picture/Pingppang.jpg";
$(".ms-siteicon-img").attr("src",logoImgUrl);
}
})
function isMember(groupName){
var isGroupMember=false;
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/sitegroups/getByName(‘"+groupName+"‘)/Users?$filter=Id eq " + _spPageContextInfo.userId,
method: "GET",
async:false,
headers: { "Accept": "application/json; odata=verbose" },
success: function(data){
if(data.d.results.length>0){
isGroupMember=true;
}
}
});
return isGroupMember;
}
</script>
5.修改“GroupName”和“Logoimgurl”,說明:Groupname必須是SharePoint Group,不支持AD Group;Group member必須是AD Users
6.當jzliu登錄後,可以看到log切換為Pingpang的logo,如下圖所示:
如果Byron來自Basketball group,你需要再次按照步驟4和5操作代碼,這樣才能保證Byron登錄時,顯示是Basketball的Logo,如下圖所示:
希望經驗分享對大家日後工作有所幫助~~ 感謝閱讀
SharePoint:如何根據用戶身份來自動控制Portal的Logo顯示