Actually it looks impossible to do this without some workaround customization! (To my knowledge). But you could change condition filters with a plugin every time it loads. To do this, you could create a new entity and a numeral field on it. Every time the dashboard loads you could change the condition of the view by replacing the value from that entity. The below snippet helps you in the plugin:
public void Execute(IServiceProvider serviceProvider)
{
// Obtain the execution context from the service provider.
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
if (context.Mode == 0 && context.Stage == 20 && context.MessageName.Equals("RetrieveMultiple"))
{
if (context.InputParameters.Contains("Query"))
{
if (context.InputParameters["Query"] is QueryExpression)
{
QueryExpression objQueryExpression = (QueryExpression)context.InputParameters["Query"];
if (objQueryExpression.EntityName == "account")
{
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
ConditionExpression privateFlagCondition;
privateFlagCondition = new ConditionExpression()
{
AttributeName = "statustype",
Operator = ConditionOperator.Equal,
Values = { "1" }
};
FilterExpression newFilter = new FilterExpression()
{
FilterOperator = LogicalOperator.Or,
Conditions = { privateFlagCondition }
};
objQueryExpression.Criteria.AddFilter(newFilter);
}
}
}
}
}