@@ -22,7 +22,7 @@ public class AccountController : Controller
22
22
private readonly SignInManager < IdentityUser > _signInManager ;
23
23
private readonly IEmailSender _emailSender ;
24
24
25
- public AccountController ( UserManager < IdentityUser > userManager ,
25
+ public AccountController ( UserManager < IdentityUser > userManager ,
26
26
SignInManager < IdentityUser > signInManager , IEmailSender emailSender )
27
27
{
28
28
_userManager = userManager ;
@@ -113,17 +113,26 @@ public async Task<ResultVM> Login([FromBody] LoginVM model)
113
113
{
114
114
var user = await _userManager . FindByNameAsync ( model . UserName ) ;
115
115
116
- if ( user != null && await _userManager . CheckPasswordAsync ( user , model . Password ) )
116
+ if ( user != null )
117
117
{
118
+ var result = new ResultVM ( ) ;
118
119
119
- await _signInManager . PasswordSignInAsync ( model . UserName , model . Password , true , lockoutOnFailure : false ) ;
120
-
121
- return new ResultVM
120
+ if ( ! await _userManager . IsEmailConfirmedAsync ( user ) )
122
121
{
123
- Status = Status . Success ,
124
- Message = "Succesfull login" ,
125
- Data = model
126
- } ;
122
+ result . Status = Status . Error ;
123
+ result . Data = "<li>Email confirmation required</li>" ;
124
+ }
125
+ else if ( await _userManager . CheckPasswordAsync ( user , model . Password ) )
126
+ {
127
+ await _signInManager . PasswordSignInAsync ( model . UserName , model . Password , true ,
128
+ lockoutOnFailure : false ) ;
129
+
130
+ result . Status = Status . Success ;
131
+ result . Message = "Successful login" ;
132
+ result . Data = model ;
133
+ }
134
+
135
+ return result ;
127
136
}
128
137
129
138
return new ResultVM
@@ -186,12 +195,10 @@ public async Task<IActionResult> ConfirmEmail(string userId, string code)
186
195
}
187
196
188
197
var result = await _userManager . ConfirmEmailAsync ( user , code ) ;
189
- if ( ! result . Succeeded )
190
- {
191
- throw new InvalidOperationException ( $ "Error confirming email for user with ID '{ userId } ':") ;
192
- }
198
+ var message = ! result . Succeeded ? $ "Error confirming email for user with ID '{ userId } ':" : "Confirmation succeeded" ;
199
+
193
200
194
- return new LocalRedirectResult ( "/ ") ;
201
+ return new LocalRedirectResult ( $ "/?message= { message } &type= { ( result . Succeeded ? "success" : "danger" ) } ") ;
195
202
}
196
203
197
204
[ HttpPost ]
0 commit comments