private void ShowRightsForPermission() { if (listACL.SelectedItems.Count == 0) { return; } string permissionsLabel = "Permissions for %s"; permissionsLabel = permissionsLabel.Replace("%s", listACL.SelectedItems[0].SubItems[1].Text); labelPermissionsFor.Text = permissionsLabel; IMAPFolderPermission permission = listACL.SelectedItems[0].Tag as IMAPFolderPermission; checkPermissionAdminister.Checked = permission.get_Permission(eACLPermission.ePermissionAdminister); checkPermissionCreateMailbox.Checked = permission.get_Permission(eACLPermission.ePermissionCreate); checkPermissionDeleteMailbox.Checked = permission.get_Permission(eACLPermission.ePermissionDeleteMailbox); checkPermissionExpunge.Checked = permission.get_Permission(eACLPermission.ePermissionExpunge); checkPermissionInsert.Checked = permission.get_Permission(eACLPermission.ePermissionInsert); checkPermissionLookup.Checked = permission.get_Permission(eACLPermission.ePermissionLookup); checkPermissionRead.Checked = permission.get_Permission(eACLPermission.ePermissionRead); checkPermissionKeepDeletedFlag.Checked = permission.get_Permission(eACLPermission.ePermissionWriteDeleted); checkPermissionKeepOtherFlags.Checked = permission.get_Permission(eACLPermission.ePermissionWriteOthers); checkPermissionKeepSeenFlag.Checked = permission.get_Permission(eACLPermission.ePermissionWriteSeen); }
public void TestIMAPFolderPermissionAccessGroup() { Application application = SingletonProvider <TestSetup> .Instance.GetApp(); Account account1 = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test"); Group group = SingletonProvider <TestSetup> .Instance.AddGroup("TestGroup"); IMAPFolders publicFolders = _settings.PublicFolders; IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionGroupID = group.ID; permission.PermissionType = eACLPermissionType.ePermissionTypeGroup; permission.Save(); CustomAssert.AreEqual(permission.Group.Name, group.Name); permission = folder.Permissions.Add(); permission.PermissionAccountID = account1.ID; permission.PermissionType = eACLPermissionType.ePermissionTypeUser; permission.Save(); CustomAssert.AreEqual(permission.Account.Address, account1.Address); }
public void ConfirmFileAddedToCorrectPublicFolder() { TestSetup testSetup = SingletonProvider <TestSetup> .Instance; Account oAccount = testSetup.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new ImapClientSimulator(); // Confirm that the public folder is empty before we start our test. string publicDir = GetPublicDirectory(); CustomAsserts.AssertFilesInDirectory(publicDir, 0); IMAPFolders folders = _application.Settings.PublicFolders; IMAPFolder folder = folders.Add("Share"); folder.Save(); // Give everyone access to the folder. IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionType = eACLPermissionType.ePermissionTypeAnyone; permission.set_Permission(eACLPermission.ePermissionLookup, true); permission.set_Permission(eACLPermission.ePermissionRead, true); permission.set_Permission(eACLPermission.ePermissionInsert, true); permission.Save(); // Add the message to the public folder. oSimulator.Connect(); oSimulator.LogonWithLiteral("*****@*****.**", "test"); oSimulator.SendSingleCommandWithLiteral("A01 APPEND #Public.Share {4}", "ABCD"); // Confirm that the message exists in the public folder and not in the inbox. Assert.AreEqual(1, oSimulator.GetMessageCount("#Public.Share")); Assert.AreEqual(0, oSimulator.GetMessageCount("INBOX")); oSimulator.Disconnect(); // The public directory should now contain the message. CustomAsserts.AssertFilesInDirectory(publicDir, 1); // There users directory should still be empty. CustomAsserts.AssertFilesInUserDirectory(oAccount, 0); }
private void ConfirmPublicFolders() { if (_backupMessages) { Domain domain = _application.Domains[0]; IMAPFolders publicFolders = _application.Settings.PublicFolders; Assert.IsNotNull(publicFolders.get_ItemByName("Test1")); Assert.IsNotNull(publicFolders.get_ItemByName("Test2")); Assert.IsNotNull(publicFolders.get_ItemByName("Test3")); Assert.IsNotNull(publicFolders.get_ItemByName("ACL")); IMAPFolderPermissions permissions = publicFolders.get_ItemByName("ACL").Permissions; Assert.AreEqual(1, permissions.Count); Account account1 = domain.Accounts.get_ItemByAddress("*****@*****.**"); IMAPFolderPermission permission = permissions[0]; Assert.AreEqual(eACLPermissionType.ePermissionTypeUser, permission.PermissionType); Assert.AreEqual(account1.ID, permission.PermissionAccountID); Assert.IsTrue(permission.get_Permission(eACLPermission.ePermissionAdminister)); Assert.IsTrue(permission.get_Permission(eACLPermission.ePermissionInsert)); Assert.IsFalse(permission.get_Permission(eACLPermission.ePermissionRead)); Assert.IsFalse(permission.get_Permission(eACLPermission.ePermissionWriteSeen)); Group group1 = _application.Settings.Groups.get_ItemByName("ACLTestGroup"); permissions = publicFolders.get_ItemByName("ACL").SubFolders.get_ItemByName("MySubFolder").Permissions; permission = permissions[0]; Assert.AreEqual(eACLPermissionType.ePermissionTypeGroup, permission.PermissionType); Assert.AreEqual(group1.ID, permission.PermissionGroupID); Assert.IsTrue(permission.get_Permission(eACLPermission.ePermissionLookup)); Assert.IsTrue(permission.get_Permission(eACLPermission.ePermissionDeleteMailbox)); Assert.IsFalse(permission.get_Permission(eACLPermission.ePermissionRead)); Assert.IsFalse(permission.get_Permission(eACLPermission.ePermissionWriteSeen)); } }
private void SetupPublicFolders() { IMAPFolders folders = _application.Settings.PublicFolders; IMAPFolder folder = folders.Add("Test1"); folder.Save(); folder = folders.Add("Test2"); folder.Save(); folder = folders.Add("Test3"); folder.Save(); folder = folders.Add("ACL"); folder.Save(); Domain domain = _application.Domains[0]; Account account1 = SingletonProvider <TestSetup> .Instance.AddAccount(domain, "*****@*****.**", "test"); IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionType = eACLPermissionType.ePermissionTypeUser; permission.PermissionAccountID = account1.ID; permission.set_Permission(eACLPermission.ePermissionAdminister, true); permission.set_Permission(eACLPermission.ePermissionInsert, true); permission.Save(); folder = folder.SubFolders.Add("MySubFolder"); folder.Save(); Group group1 = _application.Settings.Groups.Add(); group1.Name = "ACLTestGroup"; group1.Save(); permission = folder.Permissions.Add(); permission.PermissionType = eACLPermissionType.ePermissionTypeGroup; permission.PermissionGroupID = group1.ID; permission.set_Permission(eACLPermission.ePermissionLookup, true); permission.set_Permission(eACLPermission.ePermissionDeleteMailbox, true); permission.Save(); }
public void TestRenameRootPublicFolder() { IMAPFolders folders = _application.Settings.PublicFolders; IMAPFolder folder = folders.Add("ShareA"); folder.Save(); IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionType = eACLPermissionType.ePermissionTypeAnyone; permission.set_Permission(eACLPermission.ePermissionLookup, true); permission.set_Permission(eACLPermission.ePermissionRead, true); permission.set_Permission(eACLPermission.ePermissionDeleteMailbox, true); permission.Save(); IMAPFolder folder2 = folders.Add("ShareB"); folder2.Save(); IMAPFolderPermission permission2 = folder2.Permissions.Add(); permission2.PermissionType = eACLPermissionType.ePermissionTypeAnyone; permission2.set_Permission(eACLPermission.ePermissionLookup, true); permission2.set_Permission(eACLPermission.ePermissionRead, true); permission2.set_Permission(eACLPermission.ePermissionDeleteMailbox, true); permission2.Save(); Account account = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test"); var simulator1 = new IMAPClientSimulator(); simulator1.ConnectAndLogon(account.Address, "test"); CustomAssert.IsTrue(simulator1.SelectFolder("#Public.ShareA")); CustomAssert.IsTrue(simulator1.SelectFolder("#Public.ShareB")); CustomAssert.IsTrue(simulator1.RenameFolder("#Public.ShareA", "#Public.ShareB.ShareA")); CustomAssert.IsFalse(simulator1.SelectFolder("#Public.ShareA")); CustomAssert.IsTrue(simulator1.SelectFolder("#Public.ShareB")); CustomAssert.IsTrue(simulator1.SelectFolder("#Public.ShareB.ShareA")); }
private void buttonAddPermission_Click(object sender, EventArgs e) { SaveRightsForPermission(); formSelectUsers selectUsersDlg = new formSelectUsers(false, 0); if (selectUsersDlg.ShowDialog() == DialogResult.OK) { listACL.SelectedItems.Clear(); List <int> selectedItems = selectUsersDlg.GetSelectedIDs(); eACLPermissionType type = selectUsersDlg.Type; if (type == eACLPermissionType.ePermissionTypeAnyone) { IMAPFolderPermission permission = _folder.Permissions.Add(); permission.PermissionType = eACLPermissionType.ePermissionTypeAnyone; permission.Save(); ListViewItem listItem = ListPermission(permission); listItem.Selected = true; listACL.Focus(); } else { foreach (int itemID in selectedItems) { IMAPFolderPermission permission = _folder.Permissions.Add(); switch (type) { case eACLPermissionType.ePermissionTypeGroup: { permission.PermissionType = eACLPermissionType.ePermissionTypeGroup; permission.PermissionGroupID = itemID; break; } case eACLPermissionType.ePermissionTypeUser: { permission.PermissionType = eACLPermissionType.ePermissionTypeUser; permission.PermissionAccountID = itemID; break; } default: { throw new Exception("Trying to add unknown object type to permission list"); } } permission.Save(); ListViewItem listItem = ListPermission(permission); listItem.Selected = true; listACL.Focus(); } } } }