Ne yazık ki, sunucu tarafı kod bunun için kullanacağı SPGroup.ContainsCurrentUser
özellik JavaScript istemci nesne modeli (en azından 2013 SP2010 ve) üzerinden erişilebilir değil ( CSOM kullanılması veya JSOM).
Seçenek 1: geçici bir çözüm olarak kullanın grup üyeliği görünürlük
potansiyel bir çalışma etrafında iki özellik bir arada yararlanmaya olduğunu sen can JavaScript istemci nesne modeli aracılığıyla gruplar üzerinde erişim: OnlyAllowMembersViewMemberhip
ve CanCurrentUserViewMembership
. Geçerli kullanıcı yalnızca grup üyelerine izin verecek şekilde ayarlanmış bir grup için grup üyeliğini görüntüleyebilirse, kullanıcının grup üyesi olduğunu varsayabiliriz.
var clientContext = new SP.ClientContext();
var groupId = 5; // the group membership ID for the group you want to check
var group = clientContext.get_web().get_siteGroups().getById(groupId);
clientContext.load(group,"CanCurrentUserViewMembership");
clientContext.load(group,"OnlyAllowMembersViewMembership");
clientContext.executeQueryAsync(
function(sender,args){
var isMemberOfGroup = group.get_canCurrentUserViewMembership() && group.get_onlyAllowMembersViewMembership();
if(isMemberOfGroup){
doSomething();
}
},
function(sender,args){"Whoops! "+alert(args.get_message());}
);
sadece üyelere görünür olmasını grupları kurdum, bu yaklaşım sadece çalışacak ve her zaman böyle bir site koleksiyonu iseniz gibi, yanlış pozitif Eğer yükseltilmiş varsa erişimi dönersiniz yönetici veya grup sahibi.
Düzenleme: Nasıl sitedeki tüm gruplarda geçerli kullanıcının üyeliğini kontrol etmesi yukarıdaki gibi aynı mantık uygulamak istiyorsanız Tüm Site Grupları
yineleme (yerine kendi kimliğine göre bir grup belirtmeye), aşağıdaki değiştirilmiş JavaScript kodunu kullanabilirsiniz.
var clientContext = new SP.ClientContext();
var groups = clientContext.get_web().get_siteGroups()
clientContext.load(groups,"Include(CanCurrentUserViewMembership,OnlyAllowMembersViewMembership,Title)");
clientContext.executeQueryAsync(
function(sender,args){
var groupIterator = groups.getEnumerator();
var myGroups = [];
while(groupIterator.moveNext()){
var current = groupIterator.get_current();
var isMemberOfGroup = current.get_canCurrentUserViewMembership() && current.get_onlyAllowMembersViewMembership();
if(isMemberOfGroup){
myGroups.push(current.get_title()); // this example adds group titles to an array
}
}
alert(myGroups); // show the array
},function(sender,args){"Whoops! "+alert(args.get_message());});
Seçenek 2: Bir açıklamada belirtildiği gibi hatta grup üyeliğine programlı erişim gerekmeyebilir ihtiyaçlarınız için kullanın İzleyici, geçici bir çözüm Tabii
olarak Hedefleme. Yalnızca belirli gruplara görünür olmak istediğiniz web parçaları üzerinde kitle hedeflemeyi ayarlayabilirdiniz; Hedef kitle hedeflemesi, AD grup üyeliğine saygı göstermelidir.
Daha fazla bilgi verir misiniz? (Örnek) "Site Ziyaretçileri" SharePoint izin düzeyi grubuna bir aktif dizin grubu eklediniz. Şimdi ne, nerede ve ne zaman için izinleri kontrol etmek istersiniz? Ve nasıl? programlı veya SharePoint yönetici kurulumu veya nedir? – Eric
1) SharePoint'te Reklam grubu (örnek) yöneticileri ekledim. 2) Şimdi sadece gruba (yöneticiler) bazı URL bağlantıları göstermek istiyorum. 3) Kullanıcı giriş yaptığında, kullanıcının yönetici olup olmadığını nasıl kontrol edebilirim? (CSOM veya JSOM kullanarak) –
Bu senaryo için grup üyeliğini kendiniz kontrol etmeniz gerekmez; Bir sayfada bireysel web bölümlerini görebilecek kişileri sınırlamak için kitle hedefleme adı verilen yerleşik SharePoint işlevini kullanabilirsiniz. – Thriggle