diff options
author | vman <public@vaughnnugent.com> | 2022-11-18 17:43:57 -0500 |
---|---|---|
committer | vman <public@vaughnnugent.com> | 2022-11-18 17:43:57 -0500 |
commit | ef98ef0329d6ee8cec7f040f6c472dc1ea68e8dd (patch) | |
tree | 9be4b437895534f1f63b3a281e9e92c2a4a10421 /Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs | |
parent | 8b09e20f6dbaf7644fc64833d7d8eeda4b576ad9 (diff) |
Add project files.
Diffstat (limited to 'Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs')
-rw-r--r-- | Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs b/Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs new file mode 100644 index 0000000..dc865e9 --- /dev/null +++ b/Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs @@ -0,0 +1,43 @@ +using FluentValidation; +using FluentValidation.Results; + +using VNLib.Plugins.Extensions.Validation; +using VNLib.Plugins.Essentials.Oauth.Applications; + +namespace OAuth2ClientApplications.Endpoints +{ + internal class UserAppValidator : AbstractValidator<UserApplication> + { + public UserAppValidator() + { + //Name rules + RuleFor(p => p.AppName) + .Length(1, 50) + .WithName("App name") + .SpecialCharacters() + .WithName("App name"); + //Description rules + RuleFor(app => app.AppDescription) + .SpecialCharacters() + .WithName("Description") + .MaximumLength(100) + .WithName("Description"); + RuleFor(app => app.Permissions) + .MaximumLength(100) + .SpecialCharacters() + .WithMessage("Invalid permissions"); + } + + public override ValidationResult Validate(ValidationContext<UserApplication> context) + { + //Get a ref to the app + UserApplication app = context.InstanceToValidate; + //remove unused fields + app.ClientId = null; + app.SecretHash = null; + //validate the rest of the app + return base.Validate(context); + } + } + +}
\ No newline at end of file |