Forum

REST API ile bir si...
 
Bildirimler
Hepsini Temizle

REST API ile bir site collection deki beli bir groupi listelemek

6 Yazılar
2 Üyeler
0 Reactions
774 Görüntüleme
(@EnverSabit)
Gönderiler: 84
Estimable Member
Konu başlatıcı
 

 Merhaba,

bir sorun ile karsi karsiyayim, yardiminiza ve mantiginiza ihtiyacim var.

REST Endpoint URI  http://sitename/_api/web/sitegroups ile tum site collection deki tum grouplari gorebiliyorum, ama bana sadice login yapan kollanicinin subsite da izininin olup olmadigini belirleyip listelemek.

  //Retrieve all of the site groups

    function getSiteGroups() {

        var executor;

        // Initialize the RequestExecutor with the app web URL.

        executor = new SP.RequestExecutor(appweburl);

        executor.executeAsync({

            url: appweburl + "/_api/SP.AppContextSite(@target)/web/sitegroups?@target='" + hostweburl + "'",

            method: "GET",

            headers: {

                "Accept": "application/json; odata=verbose"

            },

            success: getSiteGroupsSuccessHandler,

            error: getSiteGroupsErrorHandler

        });

    }

    //Populate the selectSiteGroups control after retrieving all of the site groups.

    function getSiteGroupsSuccessHandler(data) {

        var jsonObject = JSON.parse(data.body);

        var selectSiteGroups = document.getElementById("selectSiteGroups");

        if (selectSiteGroups.hasChildNodes()) {

            while (selectSiteGroups.childNodes.length >= 1) {

                selectSiteGroups.removeChild(selectSiteGroups.firstChild);

            }

        }

        var results = jsonObject.d.results;

        for (var i = 0; i < results.length; i++) {

            var selectOption = document.createElement("option");

            selectOption.value = results[i].Title;

            selectOption.innerText = results[i].Title;

            selectSiteGroups.appendChild(selectOption);

        }

    }

http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-get-all-the-site-groups-in-sharepoint-2013-online-usi/  

ve  https://sharepointapp09.wordpress.com/2015/04/27/sharepoint-2013-get-current-user-group-collection-through-rest-api/comment-page-1/  

guzel kaynak ama gine cozemiyorum,

ben sadice "Subsite ISMI_Admins" groubunu listelemek bu groupun Full control yetkisi var.

 

Nasil yaparim,  http://sitename/_api/web/sitegroups  filter veya select yapsamda tum grouplari gosteriyor, list gibi degil sanki destek limiyor.

 

 

ben sadice Full control li olan "Subsite ISMI_Admins" bu isim formatindaki grouplari listelemek isterim.

Resim linki  https://ibb.co/jqPnxG  

Yardiminiza simdiden tessekkur ederim.

 
Gönderildi : 03/01/2018 17:11

(@eravse)
Gönderiler: 1753
Üye
 

aslında soyle yapabılırsın gıbı . aşağıda mevcut siteye baglanıp o sıtedekı userlerı ceken bır kod var. sen zaten aktıf kullanıcıyı bılıyorsun logın olan sonra gıbı sub sitedeki userları cekıp senın userın webuser ıcınde varmı dıye kontrol edersen sankı sorun cozulur ?

bu ısıne yararmı acaba ?

 

var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/roleAssignments/groups?$expand=Users";
$.getJSON(url)
.then(function(data){

    var webUsers = [];

    //extract users from groups
    data.value.forEach(function(g){
         if(g.Users.length > 0)
            webUsers = webUsers.concat(g.Users);
    }); 


    console.log(webUsers);

});

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 04/01/2018 02:06

(@EnverSabit)
Gönderiler: 84
Estimable Member
Konu başlatıcı
 

Cok sagolun Erdem Hocam,

Ben deniyorum bir sonuca varirim INS,

 
Gönderildi : 05/01/2018 15:21

(@EnverSabit)
Gönderiler: 84
Estimable Member
Konu başlatıcı
 

Simdi tum grouplari table yazdirdim, ama nasil bu userning o groupta izini olup olmadigini listeleyip, tabluda o grouplari gosterebilirim? yeno bir soru mu olustirim?

 

 

var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/sitegroups?$filter=substringof('Admins',Title)";
$.ajax({
url: requestUri,
type: "GET",
headers: {
"accept":"application/json;odata=verbose",
// "content-type": "application/json;odata=verbose",
// "X-RequestDigest":$("#_REQUESTDIGEST").val()
},
success: function (data) {
//var groupId=ctx.CurrentItem.Id;

if (data.d.results.length > 0) {
$.each(data.d.results, function (index, item) {
if(item.URL !== null){
var groupUrlAddress= _spPageContextInfo.webAbsoluteUrl;
var groupNameUrltemp="/_layouts/15/people.aspx?MembershipGroupId=";
console.log(item.LoginName);
$('#tblUsers').append('<tr><td>' + item.LoginName + '</td><td>' + item.Description + '</td><td><a href="' + groupUrlAddress + '' + groupNameUrltemp + '' + item.Id + '">' + item.Id + '</a></td></tr>');
}
});
}

Tessekkur ederim

 
Gönderildi : 05/01/2018 18:23

(@eravse)
Gönderiler: 1753
Üye
 

bence yenı soru olsuturun bırbırıne karısmasın bu lısteleme sorunu tamam sa dıgerıne de bakalım yenı konuda

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 06/01/2018 15:14

(@EnverSabit)
Gönderiler: 84
Estimable Member
Konu başlatıcı
 

Tamam Erdem hocam oyle yapim.

 
Gönderildi : 08/01/2018 18:06

Paylaş: