First you need to refer relevant JavaScript files.
<script type="text/javascript" src="../Scripts/jquery-1.7.1.min.js"></script>
<script type="text/ecmascript" src="http://www.codeproject.com/_layouts/SP.core.debug.js" />
<script type="text/ecmascript" src="http://www.codeproject.com/_layouts/SP.runtime.debug.js" />
<script type="text/ecmascript" src="http://www.codeproject.com/_layouts/SP.debug.js" />
Then approach is
- Get reference to current clientcontext
- get web site reference
- get reference to existing list
- break the inheritance
- define a role
- get the user
- finally add user and related role to the list
<script type="text/ecmascript">
function CustomPermision() {
var clientContext = new SP.ClientContext.get_current();
var oWebsite = clientContext.get_web();
oList = clientContext.get_web().get_lists().getByTitle('ListName');
oList.breakRoleInheritance(false, true);
var userobj = oWebsite.ensureUser("loginname");
var role = SP.RoleDefinitionBindingCollection.newObject(clientContext);
role.add(oWebsite.get_roleDefinitions().getByType(SP.RoleType.contributor));
oList.get_roleAssignments().add(userobj, role)
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed)
);
}
function onQuerySucceeded() {
alert("Updated");
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
</script>
How to Add EveryOne (All Authenticated users) to permission group
In here you need to get the user which represent all users. Therefore you can use following code to archive that.
var userobj = oWebsite.ensureUser("c:0(.s|true");
var role = SP.RoleDefinitionBindingCollection.newObject(clientContext);
role.add(oWebsite.get_roleDefinitions().getByType(SP.RoleType.contributor));
oList.get_roleAssignments().add(userobj, role)
These are the role definitions you can use:
SP.RoleType.Guest
SP.RoleType.Reader
SP.RoleType.Contributor
SP.RoleType.WebDesigner
SP.RoleType.Administrator
SP.RoleType.Editor
Reference