forked from ddrilling/AsbCloudServer
AuthController Добавлена регистрация пользователя и смена пароля
This commit is contained in:
parent
f2adaaa377
commit
73fab69b76
@ -36,5 +36,9 @@
|
|||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="wwwroot\admin\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -52,5 +52,50 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
var newToken = authService.Refresh(User);
|
var newToken = authService.Refresh(User);
|
||||||
return Ok(newToken);
|
return Ok(newToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Регистрация пользователя. Доступна администратору
|
||||||
|
/// </summary>
|
||||||
|
/// <returns code="200">Ок</returns>
|
||||||
|
[Authorize]
|
||||||
|
[HttpPost]
|
||||||
|
public IActionResult Register(UserDto user)
|
||||||
|
{
|
||||||
|
const string roleName = "Администратор";
|
||||||
|
if (!User.IsInRole(roleName))
|
||||||
|
return Forbid($"You mast be an {roleName}.");
|
||||||
|
|
||||||
|
var code = authService.Register(user);
|
||||||
|
return code switch
|
||||||
|
{
|
||||||
|
0 => Ok(),
|
||||||
|
-1 => BadRequest("Логин должен быть длиннее 3х знаков."),
|
||||||
|
-2 => BadRequest("Пароль должен быть длиннее 3х знаков."),
|
||||||
|
_ => BadRequest(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Смена пароля пользователя. Доступна пользователю и администратору
|
||||||
|
/// </summary>
|
||||||
|
/// <returns code="200">Ок</returns>
|
||||||
|
[Authorize]
|
||||||
|
[HttpPut("{idUser}/ChangePassword")]
|
||||||
|
public IActionResult ChangePassword([FromRoute]int idUser, [FromBody]string newPassword)
|
||||||
|
{
|
||||||
|
const string roleName = "Администратор";
|
||||||
|
var allow = (User.GetUserId() == idUser) || User.IsInRole(roleName);
|
||||||
|
|
||||||
|
if (!allow)
|
||||||
|
return Forbid($"You mast be an {roleName} or user with id:{idUser}.");
|
||||||
|
|
||||||
|
var code = authService.ChangePassword(idUser, newPassword);
|
||||||
|
return code switch
|
||||||
|
{
|
||||||
|
0 => Ok(),
|
||||||
|
-1 => BadRequest("Нет такого пользователя"),
|
||||||
|
_ => BadRequest(),
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user