in webservice/MCPermissions.cs [223:250]
private XmlNode PopulateResponse(SPSecurableObject item)
{
XmlNode retVal = null;
if (item.RoleAssignments.Count > 0)
{
XmlDocument doc = new XmlDocument();
retVal = doc.CreateElement("GetPermissionCollection",
"http://schemas.microsoft.com/sharepoint/soap/directory/");
XmlNode permissionsNode = doc.CreateElement("Permissions");
// A list item can have one or more role assignments. Each role assignment
// represents a member (user or group) with one or more permissions.
// The code below creates a Permission node for every member-permission assignment.
foreach (SPRoleAssignment assignment in item.RoleAssignments)
{
SPPrincipal member = assignment.Member;
foreach (SPRoleDefinition roleDefinition in assignment.RoleDefinitionBindings)
{
XmlNode permissionNode = CreatePermissionNode(doc, member, roleDefinition);
permissionsNode.AppendChild(permissionNode);
}
retVal.AppendChild(permissionsNode);
}
}
return retVal;
}