I am creating folder into sharepoint list and it successfully created.
But my list having unique permission(inheritance break from parent site) and only Group1 is having contribute permission on list.
My issue is when folder is created Group1 is not assigned permission on newly created Folder.
So I want to assign same group with same permission on newly created folder. I am using below code to create folder:
function CreateFolder(listName, relativePath, folderName)
{
// var deferred = $q.defer();
var deferred = $.Deferred();
var clientContext;
var oWebsite;
var oList;
var itemCreateInfo;
var siteUrl = _spPageContextInfo.webAbsoluteUrl;
clientContext = new SP.ClientContext(siteUrl);//new SP.ClientContext.get_current();
oWebsite = clientContext.get_web();
oList = oWebsite.get_lists().getByTitle(listName);
itemCreateInfo = new SP.ListItemCreationInformation();
itemCreateInfo.set_underlyingObjectType(SP.FileSystemObjectType.folder);
itemCreateInfo.set_leafName(relativePath);
this.oListItem = oList.addItem(itemCreateInfo);
this.oListItem.set_item('Title', folderName);
this.oListItem.update();
//TRied below code to assign permission but not worked Start
var collGroup = clientContext.get_web().get_siteGroups();
var oGroup = collGroup.getById(223);
var collRoleDefinitionBinding = SP.RoleDefinitionBindingCollection.newObject(clientContext);
collRoleDefinitionBinding.add(clientContext.get_web().get_roleDefinitions().getByType(SP.RoleType.administrator));
this.oListItem.get_roleAssignments().add(oGroup, collRoleDefinitionBinding);
this.oListItem.update();
//TRied below code to assign permission but not worked End
clientContext.load(this.oListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, successHandler),
Function.createDelegate(this, errorHandler)
);
function successHandler() {
deferred.resolve('Folder is ready');
}
function errorHandler(sender, args) {
if (args.get_errorCode() == -2130245363) {
//Folder already exists
deferred.resolve('folder is already exists');
}
else
deferred.reject('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
return deferred.promise();
};