Commit Graph

170 Commits

Author SHA1 Message Date
Bjarne Fyrstenborg
f47830b165 V14: Webhook Management API (#15147)
* Add webhook to management api

* Update webhook controllers

* Add ByKey webhook controller

* Fix typo

* Fix typo

* Update multiple webhooks

* Update using

* Remove duplicate constant after merge

* Fix typo in file name

* Update casing of IWebhookService

* Fix typo

* Use Webhook entity type

* Fix ambiguous reference

* Update webhook mapping

* Update after change of CreatedAtAction

* Use CreatedAtId instead

* Update src/Umbraco.Cms.Api.Management/Controllers/Webhook/ByKeyWebhookController.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Update src/Umbraco.Cms.Api.Management/Controllers/Webhook/ByKeyWebhookController.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Update src/Umbraco.Cms.Api.Management/ViewModels/Webhook/CreateWebhookRequestModel.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Update src/Umbraco.Cms.Api.Management/Controllers/Webhook/DeleteWebhookController.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Update src/Umbraco.Cms.Api.Management/Controllers/Webhook/CreateWebhookController.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Add Guid to WebhookResponseModel

* Cleanup

* Add Auth

* Move webhook logic from backoffice to management api

* Add mapping

---------

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2024-02-26 14:35:35 +01:00
Kenn Jacobsen
7b80d59c36 Align tree item namespaces (#15754) 2024-02-23 11:27:48 +01:00
Kenn Jacobsen
1bb4fdf43a Do not allow ignoring user start nodes for system data types (#15739)
* Do not allow ignoring start nodes for system data types

* Update OpenApi.json

* Update src/Umbraco.Cms.Api.Management/Mapping/DataType/DataTypeViewModelMapDefinition.cs

Co-authored-by: Sven Geusens <geusens@gmail.com>

* Regenerate OpenApi.json

---------

Co-authored-by: Sven Geusens <geusens@gmail.com>
2024-02-22 15:16:31 +01:00
Nikolaj Geisle
4eb1ea6205 V14: List view reference in ContentType (#15687)
* Replace all IsContainer mentions with new ListView property

* Map the list view when creating and updating

* Implement list view migration

* Refactor listview to collection

* Do not assign listview if IsContainer is false

* Fix up HasContainerInPath query

* Update OpenApi.json

* fix up according to review

* Refactor duplicate code to use extension method instead

* Dont make new guid, check for null

* Make extension internal

* Fix up after merge

* Use ReferenceById static method instead of extension
2024-02-22 09:11:31 +01:00
Kenn Jacobsen
d9aed7f9a7 Ensure that data types required by the core cannot be deleted. (#15738)
* Ensure that data types required by the core cannot be deleted.

* Update OpenApi.json
2024-02-21 10:22:22 +01:00
Bjarke Berg
608f2e3c76 Scheduled publishing in Management API (#15680)
* Only use datetimeoffset in API

* Updated publish endpoint to take schedule information

* Fixed test builds

* OpenApi updates

* Update OpenApi schema

* Fixed issues with publishing.

* Added validation before publishing. Had to move a lot of classes to core.

* added missing files

* Added validation info to error

* Typo

* Clean up and adding missing result

* Updating to AvailableCultures instead of PublishedCultures

* Handle time needs to be in the future

* validate only cultures that needs to be published

* Fix typos

* Filter out cultures that we are not trying to publish from the validation errors

* Don't filter out only the available cultures, to accommodate non-created variants

* Only allow publish of existing cultures

* Fixed issues found in test

* fixed build

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
2024-02-21 09:10:48 +01:00
Kenn Jacobsen
b2a9521184 Member response model must not have a name property (#15695)
* Member response model must not have a name (its name is in the variants collection)

* update import map

---------

Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2024-02-16 14:05:21 +01:00
Elitsa Marinovska
ec1ba6031f V14: Document and media collection view endpoints (#15696)
* Fix authz status

* Adding another silo for list views

* Adding base classes and handling collection operation statuses

* Change signature to reuse functionality. Fix references

* Adding collection response models

* Adding content and media type collection response models

* Adding mapping

* Adding mapping for document and media types

* Adding list view page model

* Initial implementation

* Moving implementation to service base

* Adding content and media service interfaces for handling list views

* Registering and implementation

* Update controllers to use new services

* Renaming param

* Refactor to pass content type instead of content type key

* Handle the case where only data type is provided

* Add missing operation status

* Update OpenApi.json

* Added comment for a temp workaround

* Removing orderCulture from media interface as it is not yet supported

* Adding a base class for content type collection reference model

* Adding common collection controller base and moving the ContentCollectionOperationStatusResult to there

* Cleaning up controllers after implementing the base class

* Cleaning up concrete controller bases

* OpenApi.json updates

* Changing GetPagedChildren to return a paged model

* Fix ordering

* Adding ,

* Fix wording

* Append operation status to unsuccessful API responses

* A little bit of clean-up

* Update default orderBy value

* Update the default value of orderBy

* Adding missing owner and updater system fields

* Updating OpenApi.json with owner and updater props

* Create base and rename owner to creator

* Update OpenApi.json

* Reordering of properties

* "Owner" will be "creator"

* Fix comment

---------

Co-authored-by: kjac <kja@umbraco.dk>
2024-02-14 15:13:56 +01:00
Kenn Jacobsen
9d07268ead Remove template scaffolding from the API (#15659)
* Remove template scaffolding from the API

* Regenerate OpenApi.json

* Regenerate OpenApi.json after forward merging
2024-02-07 09:07:54 +01:00
Kenn Jacobsen
183b5cc454 Management API model mapping take two (#15667)
* Re-modelling API models (take two)

* Do not use "content" - use "document" and "media" instead.

* Move "item" endpoints to their own silo

* Use "Id", not "Key"

* Regenerate OpenApi.json

* Rename user start node IDs from "content" to "document"

* Regererate OpenApi.json after forward merge

* update importmap

---------

Co-authored-by: Mads Rasmussen <madsr@hey.com>
2024-02-06 13:19:30 +01:00
Kenn Jacobsen
71b3076de9 Members and member types in the Management API (#15662)
* Members and member types in the Management API

* Add validation endpoints for members

* Include validation result in service response + add unit tests

* Regenerate OpenApi.json

* Regenerate OpenApi.json after merge

* Don't throw an exception when trying to set valid variation levels for member types

* Added missing ProducesResponseType

* Remove TODO, as that works

* Allow creation of member with explicit key

* Do not feature "parent" for member creation + add missing response type

* Do not feature a "Folder" in create member type (folders are not supported)

* Added missing build methods

* Fixed issue with mapping

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2024-02-05 06:42:07 +01:00
Elitsa Marinovska
a562198520 Rename items to item to be consistent (#15660) 2024-02-01 09:23:10 +01:00
Kenn Jacobsen
aaf7075313 Property level validation for Management API (#15644)
* Property level validation for content - initial implementation

* Always succeed create/update regardless of property level validation errors

* Move old complex editor validation classes to Web.BackOffice so they will be deleted

* Include operation status and property validation errors in ProblemDetails

* Refactor property validation to its own service(s)

* Make the problem details builder a little more generic towards extensions

* Validation for item and branch publish

* Moved malplaced test

* Get rid of a TODO

* Integration tests for content validation service

* Simplify validation service

* Add missing response types to create and update for document and media

* Remove test that no longer applies

* Use "errors" for model validation errors (property validation errors)

* Split create/update and validation into their own endpoints

* Fix forward merge

* Correct wrong assumption for missing properties

* Remove localization from validation error messages - decreases dependencies, adds a lot of obsolete constructors

* Reuse existing validation service + support custom error messages

* Fix merge errors

* Review comments
2024-01-31 10:40:58 +01:00
Mole
8c8405bbbf V14: Fix up install controller (#15646)
* Rename InstallVResponseModel to InstallRequestModel

* Align SettingsInstallController

* Rename split DatabaseInstallResponseModel in two

* Change UserInstallResponseModel to UserInstallViewModel

* Use PresentationModel instead of ViewModel

* Use operation status pattern when validating database

* Prepare for install to return a message

* Begin updating steps

* Make StepBase sharable between upgrade and install

* Update steps

* Use error message from install steps in install controller

* Use error message from upgrade steps in upgrade controller

* Use 500 for install/upgrade failed

It's entirely likely that it has nothing to do with the request

* Updated OpenApi.Json

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2024-01-30 13:12:08 +01:00
Kenn Jacobsen
9b454bec6b Model mapping PoC (#15546)
* First take at new models for improved mapping between client and server

* Add variants to Media

* Re-introduced lost names

* Start breaking apart "Id" reference properties in request models as well

* Refactor to fix OpenAPI spec

* Discard TODO (not relevant)

* Split recycle bin response models

* Delete unused marker interface

* Use reference properties for content and media type handling

* Rework document and media types to be explicit in relations (do not expose "content type", it is an implementation detail)

* Mapping for document and media type copy + move

* Ensure correct response model for Media

* Regenerate OpenAPI JSON after forward merge

* Fix forward merge issues

* Fix forward merge + regenerate OpenApi.json

* Added unit tests for content state helper

* Move "allowed document types" endpoint to document type silo, refactored services and added "allowed media types"

* Regenerate OpenApi.json after forward merge

* Do not include content state for media items

* Review fix
2024-01-30 12:19:05 +01:00
Nikolaj Geisle
e7749ecb58 V14/feature/more configuration endpoints (#15603)
* Add template configuration endpoint

* Implement template endpoint

* rename template configuration response model

* Implement package configuration endpoint

* Add media configuration endpoint

* Implement document configuration endpoint

* Refactor enabled to disabled

* implement document type configuratio endpoint

* Add required to view model properties

* Update OpenApi.json
2024-01-26 11:03:22 +01:00
Bjarke Berg
aaca7a5ff4 2FA for users in management API (#15607)
* Added 2FA management endpoints

* Ensure not found do not lead to forbidden results

* Do not inherit the requirement to have access to users, from the current user base class

* Updated OpenApi.json

* Handle 2FA in login scenario (only backend)

* Added the endpoint to use for client to post 2FA code

* Fixed tests and allow injecting the authentication type settings

* fix test build

* Fallback to use Constants.Security.BackOfficeAuthenticationType

* remove unused variable

* Review fixes

* Build fix

* Update src/Umbraco.Cms.Api.Management/Controllers/User/Current/DisableTwoFactorProviderCurrentUserController.cs

Co-authored-by: Sven Geusens <geusens@gmail.com>

* Handle case where 2fa provider is already setup

---------

Co-authored-by: Sven Geusens <geusens@gmail.com>
2024-01-23 18:07:21 +01:00
Elitsa Marinovska
bb0395349f V14: Fix composition endpoints namespaces (#15620)
* Fix namespace in media type related classes

* Fix namespace in document type composition related classes
2024-01-22 14:11:11 +01:00
Kenn Jacobsen
e4f9f98f2d File system endpoints redo (#15521)
* First stab at a massive remake of file system based endpoints

* Do not prefix system paths with directory separator char

* Ensure correct and consistent response types

* Fix partial view snippets endpoints

* Clean up IO (path) operations

* Update OpenAPI JSON to match new endpoints

* Return 201 when renaming file system resources

* Add "IsFolder" to file system item endpoints

* Replace "parentPath" with a "parent" object for file system creation endpoints

* Update OpenAPI JSON

* Rewrite snippets

* Regenerate OpenAPI JSON after forward merge

* Remove stylesheet overview endpoint

* Regenerate OpenAPI JSON after forward merge

* add server-file-system module to importmap

* Expose generated resource identifier in 201 responses

---------

Co-authored-by: Mads Rasmussen <madsr@hey.com>
2024-01-22 08:20:45 +01:00
Elitsa Marinovska
547da0b191 V14: Composition endpoints for Document and Media types (#15584)
* Adding response/request models

* Adding mapping

* Adding factory

* Adding controllers

* Moved to correct (generic domain) namespace

* Renamed to reflect the correct domain + renamed IsAllowed to IsCompatible

* Renaming + TODO

* Removed presentation logic + TODO

* Fixed controller

* Attempt for generic implementation

* Enable composition of media types + refactor content/media type editing tests to prove it (and a little renaming of a mis-named property)

* Remove unused classes

* Introducing GetAvailableCompositionsAsync to EditingServices

* Implement GetAvailableCompositionsAsync

* Base share implementation

* Tests

* Tests

* Renaming

* Clean up controller

* Clean up test

* Remove redundant check

* Create and use generic models

* Add shared implementation

* Fix and rename doc type mapper

* Fix document Type factory

* Add missing response type

* Create a base request model

* Make key nullable when new item

* Media type response models

* Default isElement to false and remove isElement param from media type related things

* Create mappings for media type compositions

* Inject generic base service to reuse implementation amongst concrete services

* Add new composition endpoints for media type

* Use specific type

* Add a reference comment to other test suite

* Add more test cases

---------

Co-authored-by: kjac <kja@umbraco.dk>
2024-01-17 08:36:27 +01:00
Bjarke Berg
40a28a938c Management API for dynamic root and query steps. (#15505)
* Added management API for dynamic root and query steps.

* Open API

* Split models, use required and rename a little

* Rename query steps

* Make request culture and segment optional

* Introduce explicit back-office variation context

* Simplify query endpoint path

* Correct field naming

* Updated OpenApi.json

---------

Co-authored-by: kjac <kja@umbraco.dk>
2024-01-16 07:47:43 +01:00
Elitsa Marinovska
c5c24d36d9 V14: Copy and move endpoints for content and media types (#15553)
* Create new request models

* Create new structural operation status

* Handling of new structural operation status

* New CopyAsync and MoveAsync

* New endpoints

* Update schema

* Adding NotFound status

* Adding BadRequest response type

* Moving getbyid check to service

* Fix signature and implement get by id check in service

* Update OpenApi schema

* Use PUT instead of POST in "move" controllers

* Use PUT instead of POST in some more "move" controllers

---------

Co-authored-by: kjac <kja@umbraco.dk>
2024-01-12 08:59:21 +01:00
Nikolaj Geisle
8516a7b2e5 V14: Add security related configurations (#15557)
* Implement user configuration endpoint

* Add password configuration factory

* refactor users to use new password configuration model

* Implement current user configuration endpoint

* Add auth policy

* Refacor current user to use PasswordConfigurationReponseModel

* Implement configuration security controller

* Rename property to less confusing name

* Add version to ConfigurationSecurityController.cs

* Review changes

---------

Co-authored-by: kjac <kja@umbraco.dk>
2024-01-11 10:30:22 +01:00
Nikolaj Geisle
a6ccd5a7a9 Implement temporary file configuration endpoint (#15518)
* Implement temporary file configuration endpoint

* Update MaxfileSize to be a string.

* Make max file size a nullable integer

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
2024-01-10 09:20:29 +01:00
Nikolaj Geisle
674c48ab9a V14: Add optional key to template create model (#15471)
* Implement Id for request model

* Make key optional

* Add test for use case

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
2024-01-02 08:57:07 +01:00
Nikolaj Geisle
f026010102 Implement server configuration (#15507)
Co-authored-by: Elitsa <elm@umbraco.dk>
2023-12-29 13:47:44 +01:00
Nikolaj Geisle
fc71724386 V14: Server information (#15497)
* Rename information endpoint to troubleshooting

* Rename information endpoint to troubleshooting

* Add new information endpoint

* Fix bad merge

* Add InformationServerController.cs back

* Update serverTime offset to non hard-coded value.

* Add dictionary to swagger models

* Update OpenApi.json file

* Rename map definition

* Add ServerConfigurationBaseModel

* Implement ServerConfigurationBaseModel.cs

* Updated OpenApi

* Updated endpoint to return correct type in openapi

* Use explicit class for server information

* Remove version endpoint, as that is contained in server information.

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-12-22 10:21:11 +01:00
Bjarke Berg
b4ca478f2c Required on view models (#15356)
* Added required on view models

* Updated OpenApi.json

* mark all fields required

* Force non-nullable as required.

* Missing import

* Update OpenApi.json

---------

Co-authored-by: Mads Rasmussen <madsr@hey.com>
2023-12-14 11:46:02 +01:00
Sven Geusens
7fdd342643 PropertyEditor(UI)Alias name refactor (#15408)
* PropertyEditor(UI)Alias name refactor

* Updated OpenApi.json

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-12-13 09:50:52 +01:00
Kenn Jacobsen
4e6b9af959 Allow specifying root access for user groups (#15364) 2023-12-06 10:18:32 +01:00
Kenn Jacobsen
f9ecd9514e Management API should expose if a user group is a system group (#15333) 2023-12-01 09:39:27 +01:00
Kenn Jacobsen
42234cdd40 Move system information away from the User API (#15316)
* Move system information away from the User API

* Review comments
2023-11-30 14:29:16 +01:00
Kenn Jacobsen
012b43a1c2 Publishing in the Management API (#14774)
* 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>
2023-11-22 12:52:08 +01:00
Sven Geusens
c5c8a59736 Allow ID for a new dictionary-item to be specified (#15187)
* Allow ID for a new dictionary-item to be specified

* PR: Pattern matching hotness

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2023-11-14 13:01:59 +01:00
Kenn Jacobsen
589c74e918 Data type icons should not be served from the Management API (#15155)
* Remove data type icons from management API output and add editor UI alias instead

* Update OpenApi.json
2023-11-10 14:17:50 +01:00
Sven Geusens
2f4f2ae384 V14/feature/custom generic swagger (#15025)
Co-authored-by: Sven Geusens <sge@umbraco.dk>
2023-11-07 16:15:56 +01:00
Sven Geusens
6c5d38eb1a V14/feature/resend user invite endpoint (#14985)
* Added endpoint to resend invites for users.

* improve async return signatures + usings cleanup

* Improve/fix controller details

* Small improvements/clarifications

* Minor whitespace and naming fixes

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-10-31 10:07:30 +01:00
Sven Geusens
6fb2550690 V14/feature/response model trash tracking (#14948)
* Clearify UmbracoMapper functionality trough comment

* Add trash tracking to doc/media(item) response models

* Add mapping for ITracksTrashing

* Removed uneccesary abstraction and seperation

* Cleanup after removing abstractions

* Cleanup unused DI item

* Clean up and formatting

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: kjac <kja@umbraco.dk>
2023-10-12 07:00:06 +02:00
Kenn Jacobsen
981bf09325 Minor Management API changes from FE (#14804)
* Change document delete into move-to-recycle-bin

* Make it possible to supply an explicit ID when creating content and media

* Change media delete into move-to-recycle-bin

* Merge "allowed child content types" controllers into one + fixed a bug that allowed all types if none were defined

* Update OpenAPI JSON to reflect merged endpoints
2023-09-14 10:07:08 +02:00
Bjarke Berg
4f5fc0b8a1 Bulk delete functionality for management api (#14735)
* Bulk delete

* Bulk delete

* Added bulk delete user groups

* Clean

---------

Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-08-29 15:51:20 +02:00
Bjarke Berg
b8af4bab7d User forgot password functionality for Management API (#14704)
* Added attribute filter to ensure a request is taking a minimum time to response

* Added functionality to management api to send forgot password emails and verify these + do the actual reset using the token

* Renamed UserKey to UserId and updated OpenApi.json

* Update src/Umbraco.Core/Services/IUserService.cs

Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>

* Cleanup

* Renaming param

* Fixing send user username instead of email + wrong EmailTypes

* Fixed issue with forgot password functionality after reusing other functionality

* Rename prop

* Adding docs and renaming param

* Handle password validation return types

* More cleanup

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
2023-08-28 12:14:16 +02:00
Bjarke Berg
b17a7689ab Fixed up the relation management api endpoints to use guids and paging (#14706)
* Fixed up the relation management api endpoints to use guids and paging

* Cleanup

* Updated OpenApi.json
2023-08-28 11:16:56 +02:00
Kenn Jacobsen
f2d11e3095 Add content and media sorting to the Management API (#14712)
* Add content and media sorting to the Management API

* Rename "id" to "key" throughout the ContentEditingService

* Update Open API json file

* Use "key" instead of "id" in ContentEditingServiceBase

* Use "key" instead of "id" in IMediaEditingService and MediaEditingService

* Turn delegates into abstracts + fix bug that allowed deleting items outside of the recycle bin

* Use PUT instead of POST

* Update src/Umbraco.Core/Services/MediaEditingService.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Update src/Umbraco.Core/Services/MediaEditingService.cs

Co-authored-by: Bjarke Berg <mail@bergmania.dk>

* Update Open API JSON

---------

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-08-28 08:56:57 +02:00
Kenn Jacobsen
a9d7f3cbbb Content type and media type container CRUD controllers and services (#14682)
* CRUD for content and media type folders + refactor data type folder CRUD controllers and services to match

* Correct response types + update OpenAPI JSON

* Review changes

* Review changes

* Update OpenAPI JSON after merge
2023-08-24 09:32:36 +02:00
Kenn Jacobsen
0096addcb9 Content and media type CRUD controllers and services (#14665)
* Add GetAsync method

* Fix up delete document type controller

* Add scope to delete async

* Add some scaffolding

* Add create model

* Start working on validation

* Move validation to its own service

* Use GetAllAsync instead of GetAsync

* Add initial composition support

Still need to figure out some kinks

* Validate compositions when creating

* Add initial folder support

* Initial handling of generic properties

* Add operation status responses

* Move create operation into service

* Add first test

* Fix issued shown by test

* Ensure a specific key can be specified when creating

* Rename container id to container key

Let's try and be consistent

* Create basic composition test

* Ensure new property groups are created with the correct key

* Add test showing property type issue

* Fix property types not using the expected key.

* Validate against model fetched from content type service

Just to make sure nothing explodes on the round trip

* Make helper for creating create models

* Add helper for creating container

* Make helper methods simpler to use

* Add test for compositions using compositions

* Add more composition tests

* Fix bug allowing element types to be composed by non element types

* Remove validators

This can just be a part of the editing service

* Minor cleanup

* Ensure that multiple levels of inheritance is possible

* Ensure doctype cannot be used as both composition and inheritance on the same doctype

* Ensure no duplicate aliases from composition and that compositions exists

* Minor cleanup

* Address todos

* Add SaveAsync method

* Renamed some models

* Rename from DocumentType to ContentType

* Clarify ParentKey as being container only + untangle things a tiny bit

* Clean out another TODO (less duplicate code) + more tests

* Refactor for reuse across different content types + add media type editing service + unit tests

* Refactor in preparation for update handling

* More tests + fixed bugs found while testing

* Simplify things a bit

* Content type update + a lot of unit tests + some refactor + fix bugs found while testing

* Begin building presentation factories for mapping view models to editing models

* Use async save

* Mapping factories and some clean-up

* Rename Key to Id (ParentKey to ParentId)

* Fix slight typo

* Use editing service in document type controllers and introduce media type controllers

* Validate containers and align container aliases with the current backoffice

* Remove ParentId from response

* Fix scope handling in DeleteAsync

* Refactor ContentTypeSort

* A little renaming for clarity + safeguard against changes to inheritance

* Persist allowed content types

* Fix bad merge + update controller response annotations

* Update OpenAPI JSON

* Update src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DocumentTypeControllerBase.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Fix review comments

* Update usage of MapCreateAsync to ValidateAndMapForCreationAsync

---------

Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-08-17 12:28:16 +02:00
Nikolaj Geisle
963151a1c1 V14: Rename folder response model (#14576)
* Rename FolderResposneModel

* Update OpenApi.json
2023-07-19 13:54:17 +02:00
Nikolaj Geisle
c7a38cdac4 V14: Public access controller (#14501)
* Implement GetEntryByContentKey

* Implement PublicAccessResponseModel

* Implement IPublicAccessPresentationFactory

* Rename MemberGroupItemReponseModel to MemberGroupItemResponseModel

* Refactor PublicAccessResponseModel to use Ids instead of entire content items

* Return attempt instead of PresentationModel

* Add missing statuses to PublicAccessOperationStatusResult

* Implement PublicAccessDocumentController.cs

* Refacotr PublicAccessResponseModel to use a base model

* Add CreatePublicAccessEntry method

* Refactor AccessRequestModel to use names not ids :(

* Rename ErrorPageNotFound to ErrorNodeNotFound

* Implement new SaveAsync method

* Introduce more OperationResults

* Implement PublicAccessEntrySlim

* Implement SaveAsync

* Remove CreatePublicAccessEntry from presentation factory

* Rename to CreateAsync

* Implement UpdateAsync

* Rename to async

* Implement CreatePublicAccessEntry

* Implement update endpoint

* remove PublicAccessEntrySlim mapping

* implement CreatePublicAccessEntrySlim method

* Refactor UpdateAsync

* Remove ContentId from request model as it should be in the request

* Use new service layer

* Amend method name in update controller

* Refactor create public access entry to use async method and return entity

* Refactor to use saveAsync method instead of synchronously

* Use presentation factory instead of mapping

* Implement deleteAsync endpoint

* Add produces response type

* Refactor mapping to not use UmbracoMapper, as that causes errors

* Update OpenApi.json

* Refactor out variables to intermediate object

* Validate that groups and names are not specified at the same time

* Make presentation factory not async

* Minor cleanup

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-07-05 14:56:51 +02:00
Nikolaj Geisle
ed83b65de3 V14: Refactor icons for tree items (#14477)
* Remove icons from base models

* Update OpenApi spec

* Updated schema

* Cleanup

* Fix Response Type

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>
2023-07-05 15:09:39 +03:00
Bjarke Berg
59df7439db Verify user invite token (#14491)
* Added functionality to verify user invite tokens and create the initial password

* Add response types

* Fail ValidateCredentialsAsync when user is not approved

* Enable user as part of initial password creating using validation token

* Adds documentation to badrequest and changed nocontent to ok, to align with other APIs

* Fixed tests and added a new one

---------

Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
2023-07-05 12:42:52 +02:00
Bjarke Berg
2ed2fc3533 Added TrustServerCertificate to install apis 2023-06-21 09:12:00 +02:00