Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="validationType"></param>
        /// <param name="missingPermissions"></param>
        private void LogPermissionErrorMessage(PermissionValidationType validationType, IEnumerable <string> missingPermissions)
        {
            var perms = string.Join(", ", missingPermissions);

            switch (validationType)
            {
            case PermissionValidationType.RequireOneOf:
                this.Logger.LogInformation(Resource.ERROR_PERMISSION_MISSING_SINGLE_LOGGER, this.SystemUser.DisplayName, perms);
                break;

            case PermissionValidationType.RequireAll:
                this.Logger.LogInformation(Resource.ERROR_PERMISSION_MISSING_MULTI_LOGGER, this.SystemUser.DisplayName, perms);
                break;
            }
        }
Example #2
0
        /// <summary>
        /// Método construtor
        /// </summary>
        /// <param name="method"></param>
        /// <param name="validationType"></param>
        /// <param name="requiredPermissions"></param>
        public PermissionsAuthorizationRequirement(Method method, PermissionValidationType validationType = PermissionValidationType.RequireOneOf, params string[] requiredPermissions)
        {
            this.Permissions = new HashSet <string>();
            if (requiredPermissions == null || !requiredPermissions.Any())
            {
                this.Permissions.Add(IdentityConstants.PERMISSION_DEFAULT_TAG);
            }
            else
            {
                this.Permissions = requiredPermissions;
            }

            if (method == Method.None && this.Permissions.Contains(IdentityConstants.PERMISSION_DEFAULT_TAG) && (validationType == PermissionValidationType.RequireAll || validationType == PermissionValidationType.RequireOneOf))
            {
                throw new InvalidEnumArgumentException(Resource.ERROR_PERMISSION_DEFAULT_METHOD_REQUIRED);
            }

            this.Method         = method;
            this.ValidationType = validationType;
        }
Example #3
0
        /// <summary>
        /// Método construtor.
        /// </summary>
        /// <param name="method">Método de execução do endpoint</param>
        /// <param name="validationType">Tipo de validação de permissão. Veja <see cref="PermissionValidationType"/></param>
        /// <param name="permissions">Permissões requeridas para autorização</param>
        public PermissionAttribute(Method method, PermissionValidationType validationType, params string[] permissions) : base(typeof(PermissionAttributeImpl))
        {
            var permission = new PermissionsAuthorizationRequirement(method, validationType, permissions);

            Arguments = new[] { permission };
        }
Example #4
0
 /// <summary>
 /// Método construtor.
 /// </summary>
 /// <param name="validationType">Tipo de validação de permissão. Veja <see cref="PermissionValidationType"/></param>
 /// <param name="permissions">Permissões requeridas para autorização</param>
 public PermissionAttribute(PermissionValidationType validationType, params string[] permissions) : this(Method.None, validationType, permissions)
 {
 }