2015-10-16 35 views
7

ile nasıl ilişkilendirileceği bir AD Grubunun bir parçasıdır. SharePoint kullanıcı grubuna bir AD grubu ekledik. Artık kullanıcıyla giriş yaptığımızda, giriş yapmış olan AD kullanıcısı için izin almak istiyoruz.Kullanıcı, SharePoint grubunda, SharePoint grubu

  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?
+0

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

+0

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) –

+0

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

cevap

7

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.

+2

Teşekkürler Thriggle, REST API ile ilgili sorunları çözdüm. –

+0

Serin! Çözümünüzü cevap olarak gönderebilecek misiniz? Başkalarına yardımcı olabilir. – Thriggle

+0

Çözüm için teşekkürler. Sadece bir grup yerine tüm grupları yüklemenin bir yolu var mı? Tüm gruplara bir kullanıcı girmem gerekiyor. Mevcut çözümüm tüm site gruplarında yinelemeli ve "CanCurrentUserViewMembership" özelliğini almak için bir sorgu gerçekleştirir ancak performansı etkiler. – Trike