diff options
| -rw-r--r-- | ExamTemplate/Services/Services/UserService.cs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/ExamTemplate/Services/Services/UserService.cs b/ExamTemplate/Services/Services/UserService.cs index e82859a..dab0801 100644 --- a/ExamTemplate/Services/Services/UserService.cs +++ b/ExamTemplate/Services/Services/UserService.cs @@ -8,6 +8,7 @@ using ExamTemplate.Services.Models.User; using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using ExamTemplate.Services.Interfaces;
+using ExamTemplate.Common;
namespace ExamTemplate.Services.Services
{
@@ -34,9 +35,20 @@ namespace ExamTemplate.Services.Services user.PasswordHash = this._userManager.PasswordHasher.HashPassword(user, registerUserServiceModel.Password);
IdentityResult userCreateResult = await this._userManager.CreateAsync(user);
- IdentityResult addRoleResult = await this._userManager.AddToRoleAsync(user, "User");
- return userCreateResult.Succeeded && addRoleResult.Succeeded;
+ if (!userCreateResult.Succeeded)
+ {
+ await this._userManager.DeleteAsync(user);
+ return false;
+ }
+
+ IdentityResult addRoleResult;
+ if (await this._userManager.Users.CountAsync() == 1) // 1, because we added the user in line 37
+ addRoleResult = await this._userManager.AddToRoleAsync(user, RoleConst.Admin);
+ else
+ addRoleResult = await this._userManager.AddToRoleAsync(user, RoleConst.User);
+
+ return addRoleResult.Succeeded;
}
public async Task<bool> LoginUserAsync(LoginUserServiceModel loginUserServiceModel)
|
