public static DataTable GenerateClientPermissionDataSource(object clientPermission) { AutomatedObjectPicker automatedObjectPicker = new AutomatedObjectPicker("PublicFolderClientPermissionConfigurable"); DataTable dataTable = automatedObjectPicker.ObjectPickerProfile.DataTable.Clone(); List <object> list = clientPermission as List <object>; if (list != null) { list.RemoveAll(delegate(object entry) { PublicFolderUserId user = (entry as PublicFolderClientPermissionEntry).User; return(user.ActiveDirectoryIdentity == null && !user.IsAnonymous && !user.IsDefault); }); foreach (object obj in list) { PublicFolderClientPermissionEntry publicFolderClientPermissionEntry = (PublicFolderClientPermissionEntry)obj; ADObjectId identity = PublicFolderClientPermissionHelper.ConvertUserToAdObjectId(publicFolderClientPermissionEntry.User); string name = (publicFolderClientPermissionEntry.User.ActiveDirectoryIdentity != null) ? publicFolderClientPermissionEntry.User.ActiveDirectoryIdentity.Name : publicFolderClientPermissionEntry.User.ToString(); PublicFolderClientPermissionHelper.AddEntry(dataTable, identity, name, publicFolderClientPermissionEntry.AccessRights); } dataTable.DefaultView.Sort = "Identity asc"; dataTable.AcceptChanges(); } return(dataTable); }
internal static ADObjectId ConvertUserToAdObjectId(PublicFolderUserId id) { ADObjectId result = id.ActiveDirectoryIdentity; if (id.IsDefault) { result = PublicFolderClientPermissionHelper.DefaultUserId; } if (id.IsAnonymous) { result = PublicFolderClientPermissionHelper.AnonymousUserId; } return(result); }