aboutsummaryrefslogtreecommitdiff
path: root/Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs
diff options
context:
space:
mode:
authorLibravatar vman <public@vaughnnugent.com>2022-11-18 17:43:57 -0500
committerLibravatar vman <public@vaughnnugent.com>2022-11-18 17:43:57 -0500
commitef98ef0329d6ee8cec7f040f6c472dc1ea68e8dd (patch)
tree9be4b437895534f1f63b3a281e9e92c2a4a10421 /Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs
parent8b09e20f6dbaf7644fc64833d7d8eeda4b576ad9 (diff)
Add project files.
Diffstat (limited to 'Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs')
-rw-r--r--Plugins/OAuth2ClientApplications/Endpoints/UserAppValidator.cs43
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