Added roles (may or may not be used)
This commit is contained in:
26
dotnet/AipsCore/Domain/Models/User/External/UserRole.cs
vendored
Normal file
26
dotnet/AipsCore/Domain/Models/User/External/UserRole.cs
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
using AipsCore.Domain.Common.Validation;
|
||||
using AipsCore.Domain.Models.User.Validation;
|
||||
|
||||
namespace AipsCore.Domain.Models.User.External;
|
||||
|
||||
public record UserRole
|
||||
{
|
||||
public string Name { get; init; }
|
||||
|
||||
private UserRole(string Name)
|
||||
{
|
||||
this.Name = Name;
|
||||
}
|
||||
|
||||
public static UserRole User => new("User");
|
||||
public static UserRole Admin => new("Admin");
|
||||
|
||||
public static IEnumerable<UserRole> All() => [User, Admin];
|
||||
|
||||
public static UserRole FromString(string name)
|
||||
{
|
||||
var role = All().FirstOrDefault(r => r.Name.Equals(name, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
return role ?? throw new ValidationException(UserErrors.RoleDoesNotExist(name));
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using AipsCore.Domain.Abstract.Validation;
|
||||
using AipsCore.Domain.Common.Validation;
|
||||
using AipsCore.Domain.Models.User.External;
|
||||
using AipsCore.Domain.Models.User.ValueObjects;
|
||||
|
||||
namespace AipsCore.Domain.Models.User.Validation;
|
||||
@@ -21,4 +22,12 @@ public class UserErrors : AbstractErrors<User, UserId>
|
||||
|
||||
return CreateValidationError(code, message);
|
||||
}
|
||||
|
||||
public static ValidationError RoleDoesNotExist(string name)
|
||||
{
|
||||
string code = "user_role_does_not_exist";
|
||||
string message = $"Role '{name}' does not exist";
|
||||
|
||||
return CreateValidationError(code, message);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user