aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Web/Models/Identity
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-01-21 22:13:16 +0200
committertranstrike <transtrike@gmail.com>2021-01-21 22:13:16 +0200
commit13a2ceda912f961a232c87236f1b29aa29bb6160 (patch)
tree59f8d2bf63b03bacc76f98114d2aed78e420ddcd /src/DevHive.Web/Models/Identity
parenta47ea20ab91017da53437f750ed8e0f939f5cdba (diff)
parentbda98b96433d7a9952524fab4ec65f96998b55de (diff)
downloadDevHive-13a2ceda912f961a232c87236f1b29aa29bb6160.tar
DevHive-13a2ceda912f961a232c87236f1b29aa29bb6160.tar.gz
DevHive-13a2ceda912f961a232c87236f1b29aa29bb6160.zip
Merge branch 'refactor_user_updating' into dev
Diffstat (limited to 'src/DevHive.Web/Models/Identity')
-rw-r--r--src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs9
-rw-r--r--src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs7
-rw-r--r--src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs9
-rw-r--r--src/DevHive.Web/Models/Identity/User/BaseUserWebModel.cs7
-rw-r--r--src/DevHive.Web/Models/Identity/User/FriendWebModel.cs16
-rw-r--r--src/DevHive.Web/Models/Identity/User/LoginWebModel.cs13
-rw-r--r--src/DevHive.Web/Models/Identity/User/RegisterWebModel.cs4
-rw-r--r--src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs24
-rw-r--r--src/DevHive.Web/Models/Identity/User/UserWebModel.cs22
-rw-r--r--src/DevHive.Web/Models/Identity/Validation/GoodPasswordModelValidation.cs24
-rw-r--r--src/DevHive.Web/Models/Identity/Validation/OnlyAlphanumericsModelValidation.cs20
-rw-r--r--src/DevHive.Web/Models/Identity/Validation/OnlyLettersModelValidation.cs20
12 files changed, 100 insertions, 75 deletions
diff --git a/src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs b/src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs
index becb3c9..859cdd9 100644
--- a/src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs
@@ -1,7 +1,14 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+
namespace DevHive.Web.Models.Identity.Role
{
- public class CreateRoleModel
+ public class CreateRoleWebModel
{
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(50)]
public string Name { get; set; }
}
}
diff --git a/src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs b/src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs
index 9e97ffc..99b0f50 100644
--- a/src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs
@@ -1,9 +1,14 @@
-using System;
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
namespace DevHive.Web.Models.Identity.Role
{
public class RoleWebModel
{
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(50)]
public string Name { get; set; }
}
}
diff --git a/src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs b/src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs
index 1eaad57..254affc 100644
--- a/src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs
@@ -1,6 +1,13 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+
namespace DevHive.Web.Models.Identity.Role
{
- public class UpdateRoleModel : CreateRoleModel
+ public class UpdateRoleWebModel : RoleWebModel
{
+ [NotNull]
+ [Required]
+ public Guid Id { get; set; }
}
}
diff --git a/src/DevHive.Web/Models/Identity/User/BaseUserWebModel.cs b/src/DevHive.Web/Models/Identity/User/BaseUserWebModel.cs
index 2d99786..d7d8d29 100644
--- a/src/DevHive.Web/Models/Identity/User/BaseUserWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/BaseUserWebModel.cs
@@ -1,26 +1,31 @@
using System.ComponentModel.DataAnnotations;
-using DevHive.Web.Models.Identity.Validation;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
namespace DevHive.Web.Models.Identity.User
{
public class BaseUserWebModel
{
+ [NotNull]
[Required]
[MinLength(3)]
[MaxLength(50)]
[OnlyAlphanumerics(ErrorMessage = "Username can only contain letters and digits!")]
public string UserName { get; set; }
+ [NotNull]
[Required]
[EmailAddress]
public string Email { get; set; }
+ [NotNull]
[Required]
[MinLength(3)]
[MaxLength(30)]
[OnlyLetters(ErrorMessage = "First name can only contain letters!")]
public string FirstName { get; set; }
+ [NotNull]
[Required]
[MinLength(3)]
[MaxLength(30)]
diff --git a/src/DevHive.Web/Models/Identity/User/FriendWebModel.cs b/src/DevHive.Web/Models/Identity/User/FriendWebModel.cs
new file mode 100644
index 0000000..d59bff5
--- /dev/null
+++ b/src/DevHive.Web/Models/Identity/User/FriendWebModel.cs
@@ -0,0 +1,16 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
+
+namespace DevHive.Web.Models.Identity.User
+{
+ public class FriendWebModel
+ {
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(50)]
+ [OnlyAlphanumerics(ErrorMessage = "Username can only contain letters and digits!")]
+ public string UserName { get; set; }
+ }
+}
diff --git a/src/DevHive.Web/Models/Identity/User/LoginWebModel.cs b/src/DevHive.Web/Models/Identity/User/LoginWebModel.cs
index 87c7416..0395274 100644
--- a/src/DevHive.Web/Models/Identity/User/LoginWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/LoginWebModel.cs
@@ -1,8 +1,21 @@
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
+
namespace DevHive.Web.Models.Identity.User
{
public class LoginWebModel
{
+ [NotNull]
+ [Required]
+ [MinLength(3)]
+ [MaxLength(50)]
+ [OnlyAlphanumerics(ErrorMessage = "Username can only contain letters and digits!")]
public string UserName { get; set; }
+
+ [NotNull]
+ [Required]
+ [GoodPassword]
public string Password { get; set; }
}
}
diff --git a/src/DevHive.Web/Models/Identity/User/RegisterWebModel.cs b/src/DevHive.Web/Models/Identity/User/RegisterWebModel.cs
index 04fd6bd..0fc7ec6 100644
--- a/src/DevHive.Web/Models/Identity/User/RegisterWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/RegisterWebModel.cs
@@ -1,10 +1,12 @@
using System.ComponentModel.DataAnnotations;
-using DevHive.Web.Models.Identity.Validation;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
namespace DevHive.Web.Models.Identity.User
{
public class RegisterWebModel : BaseUserWebModel
{
+ [NotNull]
[Required]
[GoodPassword]
public string Password { get; set; }
diff --git a/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs b/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs
index 9e41eb6..30c66fb 100644
--- a/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs
@@ -1,12 +1,34 @@
+using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
-using DevHive.Web.Models.Identity.Validation;
+using System.Diagnostics.CodeAnalysis;
+using DevHive.Web.Attributes;
+using DevHive.Web.Models.Identity.Role;
+using DevHive.Web.Models.Language;
+using DevHive.Web.Models.Technology;
namespace DevHive.Web.Models.Identity.User
{
public class UpdateUserWebModel : BaseUserWebModel
{
+ [NotNull]
[Required]
[GoodPassword]
public string Password { get; set; }
+
+ [NotNull]
+ [Required]
+ public HashSet<FriendWebModel> Friends { get; set; }
+
+ [NotNull]
+ [Required]
+ public HashSet<UpdateRoleWebModel> Roles { get; set; }
+
+ [NotNull]
+ [Required]
+ public HashSet<UpdateLanguageWebModel> Languages { get; set; }
+
+ [NotNull]
+ [Required]
+ public HashSet<UpdateTechnologyWebModel> Technologies { get; set; }
}
}
diff --git a/src/DevHive.Web/Models/Identity/User/UserWebModel.cs b/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
index 8f7995c..5b80ba3 100644
--- a/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
-using DevHive.Common.Models.Identity;
+using System.ComponentModel.DataAnnotations;
+using System.Diagnostics.CodeAnalysis;
using DevHive.Web.Models.Identity.Role;
using DevHive.Web.Models.Language;
using DevHive.Web.Models.Technology;
@@ -8,9 +9,20 @@ namespace DevHive.Web.Models.Identity.User
{
public class UserWebModel : BaseUserWebModel
{
- public IList<RoleWebModel> Roles { get; set; } = new List<RoleWebModel>();
- public IList<UserWebModel> Friends { get; set; } = new List<UserWebModel>();
- public IList<LanguageWebModel> Languages { get; set; } = new List<LanguageWebModel>();
- public IList<TechnologyWebModel> Technologies { get; set; } = new List<TechnologyWebModel>();
+ [NotNull]
+ [Required]
+ public HashSet<RoleWebModel> Roles { get; set; } = new HashSet<RoleWebModel>();
+
+ [NotNull]
+ [Required]
+ public HashSet<FriendWebModel> Friends { get; set; } = new HashSet<FriendWebModel>();
+
+ [NotNull]
+ [Required]
+ public HashSet<LanguageWebModel> Languages { get; set; } = new HashSet<LanguageWebModel>();
+
+ [NotNull]
+ [Required]
+ public HashSet<TechnologyWebModel> Technologies { get; set; } = new HashSet<TechnologyWebModel>();
}
}
diff --git a/src/DevHive.Web/Models/Identity/Validation/GoodPasswordModelValidation.cs b/src/DevHive.Web/Models/Identity/Validation/GoodPasswordModelValidation.cs
deleted file mode 100644
index f920c35..0000000
--- a/src/DevHive.Web/Models/Identity/Validation/GoodPasswordModelValidation.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.ComponentModel.DataAnnotations;
-
-namespace DevHive.Web.Models.Identity.Validation
-{
- public class GoodPassword : ValidationAttribute
- {
- public override bool IsValid(object value)
- {
- var stringValue = (string)value;
-
- for (int i = 0; i < stringValue.Length; i++)
- {
- if (Char.IsDigit(stringValue[i]))
- {
- base.ErrorMessage = "Password must be atleast 5 characters long!";
- return stringValue.Length >= 5;
- }
- }
- base.ErrorMessage = "Password must contain atleast 1 digit!";
- return false;
- }
- }
-}
diff --git a/src/DevHive.Web/Models/Identity/Validation/OnlyAlphanumericsModelValidation.cs b/src/DevHive.Web/Models/Identity/Validation/OnlyAlphanumericsModelValidation.cs
deleted file mode 100644
index 5c8c66c..0000000
--- a/src/DevHive.Web/Models/Identity/Validation/OnlyAlphanumericsModelValidation.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.ComponentModel.DataAnnotations;
-
-namespace DevHive.Web.Models.Identity.Validation
-{
- public class OnlyAlphanumerics : ValidationAttribute
- {
- public override bool IsValid(object value)
- {
- var stringValue = (string)value;
-
- foreach (char ch in stringValue)
- {
- if (!Char.IsLetterOrDigit(ch))
- return false;
- }
- return true;
- }
- }
-}
diff --git a/src/DevHive.Web/Models/Identity/Validation/OnlyLettersModelValidation.cs b/src/DevHive.Web/Models/Identity/Validation/OnlyLettersModelValidation.cs
deleted file mode 100644
index 29a995a..0000000
--- a/src/DevHive.Web/Models/Identity/Validation/OnlyLettersModelValidation.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.ComponentModel.DataAnnotations;
-
-namespace DevHive.Web.Models.Identity.Validation
-{
- public class OnlyLetters : ValidationAttribute
- {
- public override bool IsValid(object value)
- {
- var stringValue = (string)value;
-
- foreach (char ch in stringValue)
- {
- if (!Char.IsLetter(ch))
- return false;
- }
- return true;
- }
- }
-}