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