aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/Controllers/BaseController.cs
blob: 046c060c54993897b7df9bbe056c81bb0a498f3c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Security.Claims;
using Microsoft.AspNetCore.Mvc;
using Dough.Utilities;

namespace Dough.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class BaseController : ControllerBase
    {
        public LoggedInUserModel LoggedInUser => new LoggedInUserModel
        {
            Id = User.GetClaimValueOrDefault(ClaimTypes.NameIdentifier)?.ToGuidOrDefault() ?? default,
            Username = User.GetClaimValueOrDefault(ClaimTypes.Name),
            SessionStart = User.GetClaimValueOrDefault(ClaimTypes.AuthenticationInstant).ToDateTimeOrDefault()
        };

        public class LoggedInUserModel
        {
            public Guid Id { get; set; }
            public string Username { get; set; }
            public DateTime SessionStart { get; set; }
        }
    }
}