add exclude roles
This commit is contained in:
parent
8dcf894234
commit
94931f7d1f
|
|
@ -1,3 +1,5 @@
|
|||
using BotSharp.Abstraction.Users.Enums;
|
||||
|
||||
namespace BotSharp.Abstraction.Repositories.Filters;
|
||||
|
||||
public class RoleFilter
|
||||
|
|
@ -5,6 +7,10 @@ public class RoleFilter
|
|||
[JsonPropertyName("names")]
|
||||
public IEnumerable<string>? Names { get; set; }
|
||||
|
||||
[JsonPropertyName("exclude_roles")]
|
||||
public IEnumerable<string>? ExcludeRoles { get; set; } = UserConstant.AdminRoles;
|
||||
|
||||
|
||||
public static RoleFilter Empty()
|
||||
{
|
||||
return new RoleFilter();
|
||||
|
|
|
|||
|
|
@ -19,4 +19,9 @@ public class Role
|
|||
|
||||
[JsonPropertyName("created_time")]
|
||||
public DateTime CreatedTime { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,12 @@ public partial class FileRepository
|
|||
// Apply filters
|
||||
if (!filter.Names.IsNullOrEmpty())
|
||||
{
|
||||
roles = roles.Where(x => filter.Names.Contains(x.Id));
|
||||
roles = roles.Where(x => filter.Names.Contains(x.Name));
|
||||
}
|
||||
|
||||
if (!filter.ExcludeRoles.IsNullOrEmpty())
|
||||
{
|
||||
roles = roles.Where(x => !filter.ExcludeRoles.Contains(x.Name));
|
||||
}
|
||||
|
||||
return roles.ToList();
|
||||
|
|
|
|||
|
|
@ -48,6 +48,11 @@ public partial class MongoRepository
|
|||
roleFilters.Add(roleBuilder.In(x => x.Name, filter.Names));
|
||||
}
|
||||
|
||||
if (!filter.ExcludeRoles.IsNullOrEmpty())
|
||||
{
|
||||
roleFilters.Add(roleBuilder.Nin(x => x.Name, filter.ExcludeRoles));
|
||||
}
|
||||
|
||||
// Search
|
||||
var roleDocs = _dc.Roles.Find(roleBuilder.And(roleFilters)).ToList();
|
||||
var roles = roleDocs.Select(x => x.ToRole()).ToList();
|
||||
|
|
|
|||
Loading…
Reference in a new issue