Manage SharePoint users and groups
This article shows you how to add or remove groups and users within a given site collection. The code examples in this article add users and groups, and then give them permission levels of access to SharePoint. These user and group permission level actions are implemented via extension methods in the Core.GroupManagement PnP sample.
Before you begin
To get started, download the Core.GroupManagement sample add-in from the Office 365 Developer Patterns and Practices project on GitHub.
Note
The code in this article is provided as-is, without warranty of any kind, either express or implied, including any implied warranties of fitness for a particular purpose, merchantability, or non-infringement.
Add and remove groups and users
The following example shows you how to add groups and add users to groups.
cc.Load(cc.Web, web => web.CurrentUser);
cc.ExecuteQuery();
Microsoft.SharePoint.Client.User currentUser = cc.Web.CurrentUser;
if (!cc.Web.GroupExists("Test"))
{
Group group = cc.Web.AddGroup("Test", "Test group", true);
cc.Web.AddUserToGroup("Test", currentUser.LoginName);
}
The next example removes a group.
if (cc.Web.GroupExists("Test"))
{
cc.Web.RemoveGroup("Test");
}
The next example removes users from groups.
cc.Load(cc.Web, web => web.CurrentUser);
cc.ExecuteQuery();
Microsoft.SharePoint.Client.User currentUser = cc.Web.CurrentUser;
if (cc.Web.GroupExists("Test"))
{
if (cc.Web.IsUserInGroup("Test", currentUser.LoginName))
{
cc.Web.RemoveUserFromGroup("Test", currentUser.LoginName);
}
}
Add permission level to group or user
The following example adds a permission level to a group.
if (cc.Web.GroupExists("Test"))
{
cc.Web.AddPermissionLevelToGroup("Test", RoleType.Contributor);
}
The next example adds a permission level to a user.
cc.Load(cc.Web, web => web.CurrentUser);
cc.ExecuteQuery();
Microsoft.SharePoint.Client.User currentUser = cc.Web.CurrentUser;
cc.Web.AddPermissionLevelToUser(currentUser.LoginName, RoleType.Reader);
Remove permission level from group or user
The following example removes a permission level from a group.
if (cc.Web.GroupExists("Test"))
{
cc.Web.RemovePermissionLevelFromGroup("Test", RoleType.Reader);
}
The next example removes a permission level from a user.
cc.Load(cc.Web, web => web.CurrentUser);
cc.ExecuteQuery();
Microsoft.SharePoint.Client.User currentUser = cc.Web.CurrentUser;
cc.Web.RemovePermissionLevelFromUser(currentUser.LoginName, RoleType.Reader);