* Making ProblemDetails details more generic
* Adding authorizer that can be replaces for external authz in handlers. Adding handler and requirement for UserBelongsToUserGroupInRequest policy
* Adding method to get the GUID from claims
* Adding service methods to check user group authz
* Porting MustSatisfyRequirementAuthorizationHandler
* Adding controllers authz
* Fix return status code + produced response type
* Moving to folder
* Adding DenyLocalLogin policy scaffold
* Implement a temp DenyLocalLoginHandler
* Introducing a new Fobidden result
* Fix comment
* Introducing a helper class for authorizers
* Changed nullability for GetCurrentUser
* Changes from Attempt to Status + FIXME comments
* Create a UserGroupAuthorizationStatus to be used in the future
* Introduces a new authz status for checking media acess
* Introducing a new permission service for media
* Adding fixme
* Adding more policy configurations
* Adding Media policy requirement and handler
* Adding media authorizer
* Fix order of params
* Adding duplicate code comment
* Adding authz to media controllers
* Migrating more logic from MediaPermissions.cs
* Adding more MediaAuthorizationStatus-es
* Handling of new authorization status
* Fix comment
* Adding NotFound case
* Adding NewDenyLocalLoginIfConfigured policy && commenting [AllowAnonymous] where the policy is applied since it is already handled
* Changed Forbid() to Forbidden() to get the correct status code
* Remove policy that is applied on the base controller already
* Implement and apply NewUmbracoFeatureEnabled policy
* Renaming classes to add Permission in the name
* Register permission services
* Add FIXME
* Introduce new IUserGroupPermissionService and refactor accordingly
* Add single overload with default implementation
* Adding user permission policy and related
* Applying admin policy
* Register all new policies
* Better wording
* Add default implementation for a single overload
* Adding remarks to IContentPermissionService.cs
* Supporting null as key in ContentPermissionService
* Fix namespace
* Reverting back to not supporting null as content key, but having dedicated implementation
* Adding content authorizer with null values to represent root item
* Removing null key support and adding dedicated implementation
* Removing remarks
* Adding content resource with null support
* Removing null support
* Adding requirement and status
* Adding content authorizer + handlers
* Applying policies to content controllers
* Update comment
* Handling of Authorization Statuses
* More authz in controllers
* Fix comments
* New branch handler
* Obsolete old implementation
* Adding dedicated policies to root and bin
* Adding a branch specific namespace
* Bin specific requirement and namespace
* Root specific requirement and namespace
* Changing to new root policy
* Refactoring
* Save policies
* Fix null check/reference
* Add TODO comment
* Create media root- and bin-specific policies, handlers, etc.
* Apply correct policy in create and update media controllers
* Apply root policy to move and sort controllers
* Fix wording
* Adding UserGroupAuthorizationStatusResult
* Remove all AuthorizationStatusResult as we cannot get the specific AuthorizationStatus
* Fixing Umbraco feature policy
* Fix allow anonymous endpoints - the value returned from DenyLocalLoginHandler wasn't enough, we need to succeed DenyAnonymousAuthorizationRequirement as it is required for some of the endpoints that had the attribute
* Apply DenyLocalLoginIfConfigured policy to corresponding re-implementation of PostSetInvitedUserPassword
* Fix comment
* Renaming performingUser to user and fixing comments
* Rename helper method
* Fix references
* Re-add merge conflict deletion
* Adding Backoffice requirement and relevant
* Registering
* Added a simple policy test
* Fixed small test things and clean up
* Temp solution
* Added one more test and fix another static issue
* Fix another merge conflict
* Remove BackOfficePermissionRequirement and handler as they might not be necessary
* Comment out again [AllowAnonymous]
* Remove AuthorizationPolicies.BackOfficeAccessWithoutApproval policy as it might not be necessary
* Fix temp implementation
* Fix reference to correct handler
* Apply authz policy to new publish/unpublish controllers
* Fix comments
* Removing duplicate ProducesResponseTypes
* Added swagger documentation about the 401 and 403
* Added Resources to Media, User and UserGroup
* Handle root, recycle bin and branch in the same handler
* Handle both parent and target when moving
* Check Ids for all sort requests
* Xml docs
* Clean up
* Clean up
* Fix build
* Cleanup
* Remove TODO
* Added missing overload
* Use yield
* Adding some keys to check
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* Refactor acceptance tests for Partial View
* Refactor api tests for Partial View
* Bumped version of Test Helper
* Added suggestion from review
* Bumped version to testhelpers 2.0.8
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* Moved to centralized nuget packages
* Handle JsonSchema
* Change PackageReference to PackageVersion
* Opt out of central package management for mangement api (at least for versions less than 14) and the UI project
* ManagePackageVersionsCentrally = false
* Change folder acceptance tests are build, to avoid reading the test Directory.Packages.props
* Change folder acceptance tests are build, to avoid reading the test Directory.Packages.props
* change working directory
* workingDirectory
* Force the template to use local nuget packages
* Force the template to use local nuget packages
* clean up
* added wait on
* added wait on
* Added acceptance test for Stylesheets
* Updated api test for stylesheet using new helpers and apply AAA pattern
* Bumped version of Test Helpers
* Updated api and ui tests of Stylesheet after modifying TestHelper
* Updated stylesheets ui tests using openActionMenuAtRoot()
* Added suggestions from review
* Added wait for the flaky tests
* Fixed package-lock.json
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* Fix IWebhook and IEntity GetUdi extension method
* Refactor to use switch expressions
* Add GetUdiForWebhook test
* Added a webhook builder for unit tests.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* make CoreScopeProvider available for derived classes
* Create publish controller
* Add publish functionality
* Remove unneeded using
* Implement publish for multiple cultures
* support multiple cultures in controler
* Dont validate properties
* Refactor to use PublishingOperationStatus
* refactor to use proper publish async methods
* Refactor publish logic into own service
* Commit some demo code
* Add notes about what errors can happen when publishing
* Rework ContentPublishingService and introduce explicit Publish and PublishBranch methods in ContentService
* Fix merge
* Allow the publishing strategy to do its job
* Improved check for unsaved changes
* Make the old content controller work (as best possible)
* Remove SaveAndPublish (SaveAndPublishBranch) from all tests
* Proper guards for invalid cultures when publishing
* Fix edge cases for property validation and content unpublishing + add unpublishing to ContentPublishingService
* Clear out a few TODOs - we'll accept the behavior for now
* Unpublish controller
* Fix merge
* Fix branch publish notifications
* Added extra test for publishing unpublished cultures and added FIXME comments for when we fix the state of published cultures in content
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Updated api script tests for using new helpers and the AAA pattern
* Added acceptance tests for the scripts
* updated naming
* Bumped version of testHelpers
* Added suggestions from review
* Fixed a couple of occurrences where scopes was auto-complated while actually modified the state of the database.
* Added temp ctor to fix boot issue
(cherry picked from commit 41f8f03c2c)
* V2 output expansion + field limiting incl. deprecation of V1 APIs
* Performance optimizations for Content and Block based property editors
* A little formatting
* Support API versioning in Delivery API endpoint matcher policy
* Add V2 "expand" and "fields" to Swagger docs
* Renamed route for "multiple items by ID"
* Review changes
* Update src/Umbraco.Cms.Api.Delivery/Controllers/Media/ByIdMediaApiController.cs
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Update src/Umbraco.Cms.Api.Delivery/Filters/SwaggerDocumentationFilterBase.cs
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Update src/Umbraco.Cms.Api.Delivery/Filters/SwaggerDocumentationFilterBase.cs
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Revert "Performance optimizations for Content and Block based property editors"
This reverts commit 0d5a57956b36e94ce951f1dad7a7f3f43eb1f60b.
* Introduce explicit API cache levels for property expansion
* Friendly handling of bad expand/fields parameters
---------
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Implement persistence
* Start implementing repository
* Implement repository
* Implement request service
* Dont run WebhookFiring if not in runtime mode run
* Refactor repository and service to have full CRUD
* add tests for Request service
* Implement WebhookRequest lock
* Register hosted service
* Add try catch when firing HttpRequest
* Add migration
* Refactor to use renamed IWebhookService
* Refactor tests too
* Add setting to configure webhook firing period
* Update docs
* Review fixes
* Add column renaming migration
* Remove unused service
* run request in parralel
* Refactor to fire parallel in background
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Refactor jobs from HostedServices into BackgroundJobs
* Clean up generics and DI setup
* Add RecurringBackgroundJob Unit Tests
* Add ServiceCollection helper
* Add Obsolete attributes
* Add Notification Classes
* Add UnitTests for RecurringBackgroundJob HostedService
* Add NotificationEvents
* Add state to notifications
* Update UnitTests
* Add Obsolete Attributes to old hosted service classes
* Updated xmldoc in IRecurringBackgroundJob.cs
* Update Obsolete attribute messages to indicate classes will be removed in Umbraco 14
(cherry picked from commit c30ffa9ac3)
* Updated existing locator as it was prone to failing
* Removed old tests from earlier versions
* Added a timeout and an await. This was because the locator sometimes failed
* Added missing import for crypto
* Updated locator as it sometimes failed.
* Updated the README to include information for using the UI mode for playwright
* Bumped the timeout time for our tests
* We updated the naming for out methods in our testHelpers, so we need to update the usage as well
* Added additional timeout
* Updated the config so it is easier to understand what you need to input
* Added UI acceptance tests for templates
* Added types/node, allows us to use crypto. Updated the testhelpers to use the newest version.
* fixed error with testhelper dependency
* Bumped testhelper version
* Moved to settings instead of templating
* Refactor IWebhookEvent to contain event type.
* refactor frontend to filter on eventType.
* Display event names
* refactor to use eventNames
* remove npm from overview
* implement alias for WebhookEvents
* Implement [WebhookEvent] attribute
* Refactor IWebhookService to get by event alias and not name
* Rename parameter to fit method name
* to lower event type to avoid casing issues
* Apply suggestions from code review
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Change event names from constants to hard coded. And give more friendly names
* Refactor to not use event names, where it was not intended
* Add renaming column migration
* display event alias in logs
* Update migration to check if old column is there
* Apply suggestions from code review
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* add determineResource function to avoid duplicate code
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Include automatic relation type aliases from factory
* Remove unnessecary distinct and fix SQL parameter overflow issue
* Fixed assertions and test distinct aliases
* Simplified collection assertions
* Fix Umbraco.Web.UI.Login not showing up in solution
* Update PackageValidationBaselineVersion to 13.0.0-rc1 and remove all CompatibilitySuppressions.xml files
* Remove unnecessary package references
* Move Microsoft.EntityFrameworkCore.Design reference and add comment
* Disable package validation and fix override in tests
* Inherit package validation setting for EF Core projects
* Added log viewer tests, not done yet
* Updated auth to work
* Updated the authentication test
* Cleaned up the Logviewer tests
* Removed old acceptance tests
* Fixed failing test
* Updated old tests and added additional log viewer tests
* Bumped version and deleted duplicate dependencies
* Fixed naming
* Added a TODO