Beispiel #1
0
        protected virtual async Task BasicCheckAsync(string permissionName, AuthorizationHandlerContext context,
                                                     OperationAuthorizationRequirement requirement, FileOperationInfoModel resource)
        {
            await SetFailIfUserDoesNotHavePermissionAsync(permissionName, context);

            await SetSucceedIfUserIsManagerAsync(context, requirement);

            var configuration = _configurationProvider.Get(resource.FileContainerName);

            await SetFailIfUserIsNotPersonalContainerOwnerAsync(configuration, context, resource);
        }
Beispiel #2
0
        protected virtual Task SetFailIfUserIsNotPersonalContainerOwnerAsync(FileContainerConfiguration configuration,
                                                                             AuthorizationHandlerContext context, FileOperationInfoModel resource)
        {
            if (configuration.FileContainerType == FileContainerType.Private &&
                resource.OwnerUserId != context.User.FindUserId())
            {
                context.Fail();
            }

            return(Task.CompletedTask);
        }
Beispiel #3
0
 protected override async Task HandleDeleteAsync(AuthorizationHandlerContext context,
                                                 OperationAuthorizationRequirement requirement, FileOperationInfoModel resource)
 {
     await BasicCheckAsync(FileManagementPermissions.File.Delete, context, requirement, resource);
 }