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); }
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 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); }
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(); } } } }