public void SetPermissions(ISyncItemId folderId, SyncPermissions permissions) { FolderTree.FolderInfo folderInfo = this.GetFolderInfo(folderId); if (folderInfo.Permissions != permissions) { folderInfo.Permissions = permissions; this.isDirty = true; } }
// Token: 0x0600088B RID: 2187 RVA: 0x00032D38 File Offset: 0x00030F38 protected StoreObjectId GetXsoFolderId(string syncFolderId, out SyncPermissions permissions) { StoreObjectId result = null; permissions = SyncPermissions.FullAccess; if (syncFolderId == "0") { result = base.MailboxSession.GetDefaultFolderId(DefaultFolderType.Root); } else { MailboxSyncItemId mailboxSyncItemId = ((FolderIdMapping)this.folderIdMappingSyncState[CustomStateDatumType.IdMapping])[syncFolderId] as MailboxSyncItemId; if (mailboxSyncItemId != null) { FolderTree folderTree = (FolderTree)this.FolderIdMappingSyncState[CustomStateDatumType.FullFolderTree]; result = (StoreObjectId)mailboxSyncItemId.NativeId; permissions = folderTree.GetPermissions(mailboxSyncItemId); } } return(result); }
// Token: 0x060008A9 RID: 2217 RVA: 0x00033BC0 File Offset: 0x00031DC0 private XmlNode CreateChangeNode(XmlDocument doc, string nameSpaceUri, ChangeType changeType, FolderTree fullFolderTree, ISyncItemId mailboxSyncId, HierarchySyncOperation op, string shortId, string parentShortId, ref bool sendWatson) { XmlNode xmlNode = null; switch (changeType) { case ChangeType.Add: xmlNode = doc.CreateElement("Add", nameSpaceUri); base.ProtocolLogger.IncrementValue("F", PerFolderProtocolLoggerData.ServerAdds); break; case ChangeType.Change: xmlNode = doc.CreateElement("Update", nameSpaceUri); base.ProtocolLogger.IncrementValue("F", PerFolderProtocolLoggerData.ServerChanges); break; } AirSyncDiagnostics.TraceDebug <string, string, string>(ExTraceGlobals.AlgorithmTracer, this, "FolderSyncCommand.CreateChangeNode(). <{0}> node for folder {1} with short ID {2} will be sent to client.", Enum.GetName(typeof(ChangeType), changeType), op.DisplayName, shortId); XmlNode xmlNode2 = doc.CreateElement("ServerId", nameSpaceUri); xmlNode2.InnerText = shortId; xmlNode.AppendChild(xmlNode2); XmlNode xmlNode3 = doc.CreateElement("ParentId", nameSpaceUri); xmlNode3.InnerText = (string.IsNullOrEmpty(parentShortId) ? "0" : parentShortId); xmlNode.AppendChild(xmlNode3); XmlNode xmlNode4 = doc.CreateElement("DisplayName", nameSpaceUri); if (op.DisplayName.Length < 255) { xmlNode4.InnerText = op.DisplayName; } else { using (Folder folder = op.GetFolder()) { xmlNode4.InnerText = folder.DisplayName; } } xmlNode.AppendChild(xmlNode4); XmlNode xmlNode5 = doc.CreateElement("Type", nameSpaceUri); xmlNode5.InnerText = AirSyncUtility.GetAirSyncFolderType(base.MailboxSession, fullFolderTree.IsSharedFolder(mailboxSyncId), op.ItemId, op.ClassName); xmlNode.AppendChild(xmlNode5); SyncPermissions permissions = fullFolderTree.GetPermissions(mailboxSyncId); if (permissions != SyncPermissions.FullAccess) { if (base.Version < 140) { sendWatson = true; AirSyncDiagnostics.TraceError <string, SyncPermissions>(ExTraceGlobals.RequestsTracer, this, "Error trying to change folder {0} with permissions {1}. Permissions must be FullAccess.", op.DisplayName, permissions); } else { XmlNode xmlNode6 = doc.CreateElement("Permissions", nameSpaceUri); XmlNode xmlNode7 = xmlNode6; int num = (int)permissions; xmlNode7.InnerText = num.ToString(CultureInfo.InvariantCulture); xmlNode.AppendChild(xmlNode6); } } if (fullFolderTree.IsSharedFolder(mailboxSyncId)) { string owner = fullFolderTree.GetOwner(mailboxSyncId); if (base.Version < 140) { sendWatson = true; AirSyncDiagnostics.TraceError <string, string>(ExTraceGlobals.RequestsTracer, this, "Folder {0} with owner {1} is marked as shared in a version lower than 14.", op.DisplayName, owner); } else { XmlNode xmlNode8 = doc.CreateElement("Owner", nameSpaceUri); xmlNode8.InnerText = owner; xmlNode.AppendChild(xmlNode8); } } return(xmlNode); }