diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-10-24 06:29:23 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-10-24 06:29:23 +0200 |
| commit | 585c5c8537eb21dfc9f16108548e63d9ced3d971 (patch) | |
| tree | 1582bc45dcab585ec7204f1570019b2ca8de36c5 /code/api/src/Endpoints/V1/V1_EndpointBase.cs | |
| parent | 4b42c5235482fe0d3811b4e2936614c79e20d970 (diff) | |
| download | greatoffice-585c5c8537eb21dfc9f16108548e63d9ced3d971.tar.xz greatoffice-585c5c8537eb21dfc9f16108548e63d9ced3d971.zip | |
feat: Before move to FastEndpoints
Diffstat (limited to 'code/api/src/Endpoints/V1/V1_EndpointBase.cs')
| -rw-r--r-- | code/api/src/Endpoints/V1/V1_EndpointBase.cs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/code/api/src/Endpoints/V1/V1_EndpointBase.cs b/code/api/src/Endpoints/V1/V1_EndpointBase.cs new file mode 100644 index 0000000..08ce4ab --- /dev/null +++ b/code/api/src/Endpoints/V1/V1_EndpointBase.cs @@ -0,0 +1,29 @@ +using System.Net.Http.Headers; + +namespace IOL.GreatOffice.Api.Endpoints.V1; + +[ApiVersion(ApiSpecV1.VERSION_STRING)] +[Authorize(AuthenticationSchemes = AuthSchemes)] +public class V1_EndpointBase : EndpointBase +{ + private const string AuthSchemes = CookieAuthenticationDefaults.AuthenticationScheme + "," + AppConstants.BASIC_AUTH_SCHEME; + + protected bool IsApiCall() { + if (!Request.Headers.ContainsKey("Authorization")) return false; + try { + var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); + if (authHeader.Parameter == null) return false; + } catch { + return false; + } + + return true; + } + + protected bool HasApiPermission(string permission_key) { + var permission_claim = User.Claims.SingleOrDefault(c => c.Type == permission_key); + return permission_claim is { + Value: "True" + }; + } +}
\ No newline at end of file |
