Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,47 +24,50 @@ public void OnActionExecuted(ActionExecutedContext context) { }

public void OnActionExecuting(ActionExecutingContext context)
{
if (!(context.Controller is Controller controller))
if (context.HttpContext.Request.Path.ToString().Contains("/LearningPortal/SelfAssessment/"))
{
return;
}
if (!(context.Controller is Controller controller))
{
return;
}

if (!context.ActionArguments.ContainsKey("selfAssessmentId"))
{
return;
}
if (!context.ActionArguments.ContainsKey("selfAssessmentId"))
{
return;
}

var selfAssessmentId = int.Parse(context.ActionArguments["selfAssessmentId"].ToString()!);
var delegateUserId = controller.User.GetUserIdKnownNotNull();
var selfAssessmentId = int.Parse(context.ActionArguments["selfAssessmentId"].ToString()!);
var delegateUserId = controller.User.GetUserIdKnownNotNull();

var selfAssessment = selfAssessmentService.GetSelfAssessmentForCandidateById(delegateUserId, selfAssessmentId);
var selfAssessment = selfAssessmentService.GetSelfAssessmentForCandidateById(delegateUserId, selfAssessmentId);

if (selfAssessment == null)
{
logger.LogWarning(
$"Attempt to access self assessment {selfAssessmentId} by user {delegateUserId}, but no such assessment found"
);
context.Result = new RedirectToActionResult("StatusCode", "LearningSolutions", new { code = 403 });
return;
}
if (selfAssessment == null)
{
logger.LogWarning(
$"Attempt to access self assessment {selfAssessmentId} by user {delegateUserId}, but no such assessment found"
);
context.Result = new RedirectToActionResult("StatusCode", "LearningSolutions", new { code = 403 });
return;
}

var actionName = context.RouteData.Values["action"]?.ToString();
if (actionName == "AgreeSelfAssessmentProcess" || actionName == "ProcessAgreed")
{
return;
}
var actionName = context.RouteData.Values["action"]?.ToString();
if (actionName == "AgreeSelfAssessmentProcess" || actionName == "ProcessAgreed")
{
return;
}

if (!selfAssessment.SelfAssessmentProcessAgreed && selfAssessment.IsSupervised)
{
logger.LogInformation(
$"Redirecting user {delegateUserId} to agree process page for self assessment {selfAssessmentId}"
);
if (!selfAssessment.SelfAssessmentProcessAgreed && selfAssessment.IsSupervised)
{
logger.LogInformation(
$"Redirecting user {delegateUserId} to agree process page for self assessment {selfAssessmentId}"
);

context.Result = new RedirectToActionResult(
"AgreeSelfAssessmentProcess",
"LearningPortal",
new { selfAssessmentId }
);
context.Result = new RedirectToActionResult(
"AgreeSelfAssessmentProcess",
"LearningPortal",
new { selfAssessmentId }
);
}
}
}
}
Expand Down
Loading