public async Task<AccessPrivileges> GetPrivileges ()
{
var properties = await GetCurrentUserPrivileges (_serverUrl, 0);
XmlNode privilegeWriteContent = properties.XmlDocument.SelectSingleNode ("/D:multistatus/D:response/D:propstat/D:prop/D:current-user-privilege-set/D:privilege/D:write-content", properties.XmlNamespaceManager);
XmlNode privilegeBind = properties.XmlDocument.SelectSingleNode ("/D:multistatus/D:response/D:propstat/D:prop/D:current-user-privilege-set/D:privilege/D:bind", properties.XmlNamespaceManager);
XmlNode privilegeUnbind = properties.XmlDocument.SelectSingleNode ("/D:multistatus/D:response/D:propstat/D:prop/D:current-user-privilege-set/D:privilege/D:unbind", properties.XmlNamespaceManager);
XmlNode privilegeWrite = properties.XmlDocument.SelectSingleNode ("/D:multistatus/D:response/D:propstat/D:prop/D:current-user-privilege-set/D:privilege/D:write", properties.XmlNamespaceManager);
if (privilegeWrite != null)
return AccessPrivileges.All;
var privileges = AccessPrivileges.None;
if (privilegeWriteContent != null) privileges |= AccessPrivileges.Modify;
if (privilegeBind !=null) privileges |= AccessPrivileges.Create;
if (privilegeUnbind != null) privileges |= AccessPrivileges.Delete;
return privileges;
}