< Summary

Information
Class: OzonOrdersWeb.Authorization.PageAuthorizeAttribute
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Authorization/PageAuthorizeAttribute.cs
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 26
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_PageCode()100%11100%
get_Access()100%11100%
.ctor(...)100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Authorization/PageAuthorizeAttribute.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Authorization;
 2using OzonDomains.Models.Authorization.Enums;
 3
 4namespace OzonOrdersWeb.Authorization;
 5
 6/// <summary>
 7/// Атрибут, помечающий действие/контроллер требуемым кодом страницы и типом доступа.
 8/// Работает как AuthorizeAttribute с policy "AppPageAccess", дополнительно пробрасывая данные
 9/// в HttpContext.Items для PageAccessHandler.
 10/// </summary>
 11[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
 12public sealed class PageAuthorizeAttribute : AuthorizeAttribute
 13{
 14    public const string PageCodeItemKey = "__PageAuthorize_Code";
 15    public const string AccessTypeItemKey = "__PageAuthorize_AccessType";
 16
 1517    public string PageCode { get; }
 1418    public AccessType Access { get; }
 19
 135220    public PageAuthorizeAttribute(string pageCode, AccessType access = AccessType.View)
 21    {
 135222        PageCode = pageCode;
 135223        Access = access;
 135224        Policy = Services.Authorization.AuthorizationConstants.PolicyName;
 135225    }
 26}