checking user session in profile GET (this should generally be checked in all protected methods)

This commit is contained in:
Hamid Reza Mohammadi 2020-10-29 19:01:28 +03:30
parent d21eca9136
commit 4c9756deee
2 changed files with 27 additions and 2 deletions

View File

@ -286,6 +286,18 @@ namespace RMuseum.Controllers
public async Task<IActionResult> GetUserNarrationProfiles()
{
Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
Guid sessionId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "SessionId").Value);
RServiceResult<bool> sessionCheckResult = await _appUserService.SessionExists(loggedOnUserId, sessionId);
if (!string.IsNullOrEmpty(sessionCheckResult.ExceptionString))
{
return BadRequest(sessionCheckResult.ExceptionString);
}
if(!sessionCheckResult.Result)
{
return BadRequest("نشست کاربر معتبر نیست.");
}
var res = await _audioService.GetUserNarrationProfiles(loggedOnUserId);
@ -373,10 +385,12 @@ namespace RMuseum.Controllers
/// </summary>
/// <param name="audioService">
/// </param>
/// <param name="appUserService"></param>
/// <param name="userPermissionChecker"></param>
public AudioNarrationController(IAudioNarrationService audioService, IUserPermissionChecker userPermissionChecker)
public AudioNarrationController(IAudioNarrationService audioService, IAppUserService appUserService, IUserPermissionChecker userPermissionChecker)
{
_audioService = audioService;
_appUserService = appUserService;
_userPermissionChecker = userPermissionChecker;
}
@ -389,5 +403,10 @@ namespace RMuseum.Controllers
/// IUserPermissionChecker instance
/// </summary>
protected IUserPermissionChecker _userPermissionChecker;
/// <summary>
/// IAppUserService instance
/// </summary>
protected IAppUserService _appUserService;
}
}

View File

@ -708,12 +708,13 @@
<param name="id"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.AudioNarrationController.#ctor(RMuseum.Services.IAudioNarrationService,RSecurityBackend.Services.IUserPermissionChecker)">
<member name="M:RMuseum.Controllers.AudioNarrationController.#ctor(RMuseum.Services.IAudioNarrationService,RSecurityBackend.Services.IAppUserService,RSecurityBackend.Services.IUserPermissionChecker)">
<summary>
constructor
</summary>
<param name="audioService">
</param>
<param name="appUserService"></param>
<param name="userPermissionChecker"></param>
</member>
<member name="F:RMuseum.Controllers.AudioNarrationController._audioService">
@ -726,6 +727,11 @@
IUserPermissionChecker instance
</summary>
</member>
<member name="F:RMuseum.Controllers.AudioNarrationController._appUserService">
<summary>
IAppUserService instance
</summary>
</member>
<member name="T:RMuseum.Controllers.AuditLogController">
<summary>
Audit Log Controller Base