Example #1
0
        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);
        }
Example #2
0
 public hMailServer.Group AddGroup(string sName)
 {
     hMailServer.Group group = GetApp().Settings.Groups.Add();
     group.Name = sName;
     group.Save();
     return(group);
 }
Example #3
0
        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);
        }
Example #4
0
        public hMailServer.GroupMember AddGroupMember(hMailServer.Group group, hMailServer.Account account)
        {
            hMailServer.GroupMember member = group.Members.Add();
            member.AccountID = account.ID;
            member.Save();

            return(member);
        }
Example #5
0
        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);
        }
Example #6
0
        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();
        }
Example #7
0
        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();
        }
Example #8
0
        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);
        }
Example #9
0
        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");
            }
        }
Example #10
0
        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));
            }
        }
Example #11
0
        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();
        }
Example #12
0
        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");
            }
        }
Example #13
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
        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();
        }
Example #16
0
        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;
        }