private string GetPermissionName(hMailServer.IMAPFolderPermission permission) { string name = ""; switch (permission.PermissionType) { case eACLPermissionType.ePermissionTypeUser: { hMailServer.Account account = permission.Account; name = account.Address; break; } case eACLPermissionType.ePermissionTypeGroup: { hMailServer.Group group = permission.Group; name = group.Name; break; } case eACLPermissionType.ePermissionTypeAnyone: { name = EnumStrings.GetPermissionTypeString(permission.PermissionType); break; } } return(name); }
public hMailServer.Group AddGroup(string sName) { hMailServer.Group group = GetApp().Settings.Groups.Add(); group.Name = sName; group.Save(); return(group); }
public void TestIMAPFolderPermissionAccessGroup() { hMailServer.Application application = SingletonProvider <Utilities> .Instance.GetApp(); ; hMailServer.Account account1 = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.Group group = SingletonProvider <Utilities> .Instance.AddGroup("TestGroup"); hMailServer.IMAPFolders publicFolders = _settings.PublicFolders; hMailServer.IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); hMailServer.IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionGroupID = group.ID; permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeGroup; permission.Save(); Assert.AreEqual(permission.Group.Name, group.Name); permission = folder.Permissions.Add(); permission.PermissionAccountID = account1.ID; permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeUser; permission.Save(); Assert.AreEqual(permission.Account.Address, account1.Address); }
public hMailServer.GroupMember AddGroupMember(hMailServer.Group group, hMailServer.Account account) { hMailServer.GroupMember member = group.Members.Add(); member.AccountID = account.ID; member.Save(); return(member); }
private void ConfirmGroupObject() { hMailServer.Group group = _application.Settings.Groups.get_ItemByName("TestGroup"); Assert.AreEqual("TestGroup", group.Name); Assert.AreEqual(3, group.Members.Count); Assert.AreEqual("*****@*****.**", group.Members[0].Account.Address); Assert.AreEqual("*****@*****.**", group.Members[1].Account.Address); Assert.AreEqual("*****@*****.**", group.Members[2].Account.Address); }
public ucGroup(int groupID) { InitializeComponent(); if (groupID > 0) { hMailServer.Groups groups = APICreator.Groups; representedObject = groups.get_ItemByDBID(groupID); Marshal.ReleaseComObject(groups); } DirtyChecker.SubscribeToChange(this, OnContentChanged); new TabOrderManager(this).SetTabOrder(TabOrderManager.TabScheme.AcrossFirst); EnableDisable(); }
protected override void LoadList() { listGroups.Items.Clear(); hMailServer.Groups groups = APICreator.Groups; for (int i = 0; i < groups.Count; i++) { hMailServer.Group group = groups[i]; ListViewItem item = listGroups.Items.Add(group.Name); item.Tag = group.ID; } Marshal.ReleaseComObject(groups); }
public void TestGroup() { hMailServer.Groups groups = _application.Settings.Groups; hMailServer.Group group = groups.Add(); group.Name = "MyGroup"; group.Save(); if (group.ID == 0) { throw new Exception("Group not properly saved"); } _application.Settings.Groups.DeleteByDBID(group.ID); if (groups.Count != 0) { throw new Exception("Group not properly deleted"); } }
private void ConfirmPublicFolders() { if (_backupMessages) { hMailServer.Domain domain = _application.Domains[0]; hMailServer.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")); hMailServer.IMAPFolderPermissions permissions = publicFolders.get_ItemByName("ACL").Permissions; Assert.AreEqual(1, permissions.Count); hMailServer.Account account1 = domain.Accounts.get_ItemByAddress("*****@*****.**"); hMailServer.IMAPFolderPermission permission = permissions[0]; Assert.AreEqual(hMailServer.eACLPermissionType.ePermissionTypeUser, permission.PermissionType); Assert.AreEqual(account1.ID, permission.PermissionAccountID); Assert.IsTrue(permission.get_Permission(hMailServer.eACLPermission.ePermissionAdminister)); Assert.IsTrue(permission.get_Permission(hMailServer.eACLPermission.ePermissionInsert)); Assert.IsFalse(permission.get_Permission(hMailServer.eACLPermission.ePermissionRead)); Assert.IsFalse(permission.get_Permission(hMailServer.eACLPermission.ePermissionWriteSeen)); hMailServer.Group group1 = _application.Settings.Groups.get_ItemByName("ACLTestGroup"); permissions = publicFolders.get_ItemByName("ACL").SubFolders.get_ItemByName("MySubFolder").Permissions; permission = permissions[0]; Assert.AreEqual(hMailServer.eACLPermissionType.ePermissionTypeGroup, permission.PermissionType); Assert.AreEqual(group1.ID, permission.PermissionGroupID); Assert.IsTrue(permission.get_Permission(hMailServer.eACLPermission.ePermissionLookup)); Assert.IsTrue(permission.get_Permission(hMailServer.eACLPermission.ePermissionDeleteMailbox)); Assert.IsFalse(permission.get_Permission(hMailServer.eACLPermission.ePermissionRead)); Assert.IsFalse(permission.get_Permission(hMailServer.eACLPermission.ePermissionWriteSeen)); } }
private void SetupPublicFolders() { hMailServer.IMAPFolders folders = _application.Settings.PublicFolders; hMailServer.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(); hMailServer.Domain domain = _application.Domains[0]; hMailServer.Account account1 = SingletonProvider <Utilities> .Instance.AddAccount(domain, "*****@*****.**", "test"); hMailServer.IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeUser; permission.PermissionAccountID = account1.ID; permission.set_Permission(hMailServer.eACLPermission.ePermissionAdminister, true); permission.set_Permission(hMailServer.eACLPermission.ePermissionInsert, true); permission.Save(); folder = folder.SubFolders.Add("MySubFolder"); folder.Save(); hMailServer.Group group1 = _application.Settings.Groups.Add(); group1.Name = "ACLTestGroup"; group1.Save(); permission = folder.Permissions.Add(); permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeGroup; permission.PermissionGroupID = group1.ID; permission.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true); permission.set_Permission(hMailServer.eACLPermission.ePermissionDeleteMailbox, true); permission.Save(); }
public void TestGroupMember() { hMailServer.Groups groups = _application.Settings.Groups; hMailServer.Group group = groups.Add(); group.Name = "MyGroup"; group.Save(); if (group.ID == 0) { throw new Exception("Group not properly saved"); } hMailServer.GroupMember member = group.Members.Add(); member.AccountID = 1; member.Save(); if (member.ID == 0) { throw new Exception("Group member not properly saved"); } }
public bool SaveData() { bool newObject = false; if (representedObject == null) { hMailServer.Settings settings = APICreator.Application.Settings; hMailServer.Groups groups = settings.Groups; representedObject = groups.Add(); Marshal.ReleaseComObject(settings); Marshal.ReleaseComObject(groups); newObject = true; } representedObject.Name = textName.Text; representedObject.Save(); // Refresh the node in the tree if the name has changed. IMainForm mainForm = Instances.MainForm; mainForm.RefreshCurrentNode(textName.Text); // Set the object to clean. DirtyChecker.SetClean(this); if (newObject) { SearchNodeText crit = new SearchNodeText(representedObject.Name); mainForm.SelectNode(crit); } EnableDisable(); return(true); }
private void ListGroups() { EnableDomainsAndList(false); listItems.Enabled = true; listItems.Items.Clear(); hMailServer.Settings settings = APICreator.Application.Settings; hMailServer.Groups groups = settings.Groups; for (int i = 0; i < groups.Count; i++) { hMailServer.Group group = groups[i]; ListViewItem item = listItems.Items.Add(group.Name); item.Tag = group.ID; Marshal.ReleaseComObject(group); } Marshal.ReleaseComObject(settings); Marshal.ReleaseComObject(groups); }
private void SetupGroupObject() { hMailServer.Group group = _application.Settings.Groups.Add(); group.Name = "TestGroup"; group.Save(); hMailServer.Account gm1 = SingletonProvider <Utilities> .Instance.AddAccount(_application.Domains[0], "*****@*****.**", "test"); hMailServer.Account gm2 = SingletonProvider <Utilities> .Instance.AddAccount(_application.Domains[0], "*****@*****.**", "test"); hMailServer.Account gm3 = SingletonProvider <Utilities> .Instance.AddAccount(_application.Domains[0], "*****@*****.**", "test"); hMailServer.GroupMember gm = group.Members.Add(); gm.AccountID = gm1.ID; gm.Save(); gm = group.Members.Add(); gm.AccountID = gm2.ID; gm.Save(); gm = group.Members.Add(); gm.AccountID = gm3.ID; gm.Save(); }
public bool SaveData() { bool newObject = false; if (representedObject == null) { hMailServer.Settings settings = APICreator.Application.Settings; hMailServer.Groups groups = settings.Groups; representedObject = groups.Add(); Marshal.ReleaseComObject(settings); Marshal.ReleaseComObject(groups); newObject = true; } representedObject.Name = textName.Text; representedObject.Save(); // Refresh the node in the tree if the name has changed. IMainForm mainForm = Instances.MainForm; mainForm.RefreshCurrentNode(textName.Text); // Set the object to clean. DirtyChecker.SetClean(this); if (newObject) { SearchNodeText crit = new SearchNodeText(representedObject.Name); mainForm.SelectNode(crit); } EnableDisable(); return true; }