Commit Graph

175 Commits

Author SHA1 Message Date
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
Mole
040bf2c1e3 Replace use of SortedSet with HashSets and ISets (#14353) 2023-06-08 10:30:23 +02:00
Mole
582b784ffe V14: Update template controllers (#14326)
* Add alias to document item response

* Add master template key to detailed model

* Add mater template key as optiona parameter to Scaffolding

* Check for duplicate alias when creating templates directly

* Clean

* Ensure integration tests creates templates with unique aliases

* Perform mapping in presentation factory
2023-06-06 13:45:39 +02:00
Kenn Jacobsen
fe0cbc50c8 Temporary CRUD API for content types (#14334)
* Add temporary controllers for document type CRUD

* Update OpenAPI json

* Review comments

* Add comment for future refactoring
2023-06-06 09:32:02 +02:00
Bjarke Berg
4180170acf Get current user endpoint in management api (#14336)
* Add current user data endpoint

* Add Change password endpoint

* Add SetAvatar

* Add get node permissions

* Add endpoint for getting currently logged in users linked logins

* Add tour service

* Add get tours

* Add set tour endpoint

* Added PermissionNames to IReadOnlyUserGroup

* Only require backend auth on management api

* Use ISet in response model

* Fixed issue with saving null as startMediaId, where it was ignored

* Add get current user endpoint

* Fix missing linebreak

* Append "New" keyword to policies

* Update OpenApi

---------

Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-06-05 15:20:18 +02:00
Mole
0ad0179cd6 V14: Current user controller (#14323)
* Add current user data endpoint

* Add Change password endpoint

* Add SetAvatar

* Add get node permissions

* Add endpoint for getting currently logged in users linked logins

* Add tour service

* Add get tours

* Add set tour endpoint

* Split permissions endpoint in two, one for media and one for document
2023-06-05 08:42:29 +02:00
Mole
138148481d V14: Add information to tree items (#14301)
* Add variant information to the document tree model

* Add content type key to document tree and item

* Add sort order to PropertyTypeResponseModelBase
2023-05-30 11:00:22 +02:00
Bjarke Berg
28712bd5cd Make new backoffice packable (#14286)
* This moves around files and deletes the temp projects with files that are not moved to Core, Infrastructure etc.

Also moves the from new backoffice to static access, and override those with the old views in the legacy executeable

* Removes old files from the new executeable.

* Added missing files

* Added EF Core project to solution file

* fix build
2023-05-25 10:38:44 +02:00
Nikolaj
f71a4fa968 Rename SaveUserGroupRequestModel to CreateUserGroupRequestModel 2023-05-04 10:09:39 +02:00
Nikolaj
abdfcf4e14 Rename UserGroupPresentationModel to UserGroupResponseModel 2023-05-04 10:02:07 +02:00
Mole
b411452f79 New backoffice: Add new codefile controllers and services (#14157)
* Add scaffolding

* Entities not Entitys

* Remove unececary obsoleted constructor

* Implement create script

* Return a simplified ScriptFile instead of IScript

That file abstraction seems way too bloated, containing a lot of stuff that's not relevant for files, such as IDs and keys.

* Use IScript instead of custom return model

* Add validation when creating script

* Add Get script endpoint

* Add response types

* Add Delete

* Throw if user key not found

* Remove unused maapper

* Add update endpoint

* Add Get by path

* Add create folder endpoint

* Don't pass performingUserId to folder creation

* Remove update folder

* Add delete folder endpoint

* Use specific ScriptFolderOperationStatus instead of ScriptOperationStatus

* Add OperationStatusResult

* Check folder for invalid name

* Check name for invalid characters

* Add partial view snippet endpoint

* Start working on CreatePartialView

* Add create partial view endpoint

* Retrieve key from audit method

* Add operation status results

* Add Get endpoint

* Return 201 when creating

* Add update partial view endpoint

* Add delete endpoint

* Add response types

* Add folder base implementation

* Add folder endpoints

* User property for allowed file extensions

* Rename async method to async

* Break snippet into endpoint in two

* Make content non-nullable

* Remove IService

* Add get by path

* Add viewmodels

* Add create and update models

* Add create stylesheet

* Add update endpoint

* Rename StylesheetControllerBase to StylesheetControllerBase

* Add stylesheet delete

* Rename controller bases

* Add stylesheet folders

* Add status results

* Add response types to folders

* Add richtext rules endpoints

* Add Get all endpoint

* Add get rules by path endpoint

* Aling validates so they're not async

These are private methods, so there's no reason to make them preemptively async

* Add template obsoletions to interface

* Add stream methods

This is evidently used by deploy 🤷

* Obsolete stylesheet operations

* Add get and getall across all services

* Obsolete script operations

* Obsolete old partial view methods

* Add some method docs

* Add compatibility suppression

* Update OpenApi.json

* Rename action

* formatting

* Fix import

* add expression body

* Invert if

* Move base on own line

* Rename file

* Rename to all

* Change to stylesheet instead of script

* Add Umbraco.Code.MapAll to map definitions

* Add comment about auditing

* use publish cancelable async

* use expression body

* formatting

* fix to use pattern matching

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-04-26 13:47:47 +02:00
Mole
dfa7eff7c2 New backoffice: Fix typo on user model (#14154)
* LastLockoutDate not LastlockoutDate

* Update open api
2023-04-25 10:58:38 +02:00
Mole
518bb60a45 New backoffice: Use singular name for user and user group controllers (#14121)
* Rename UsersController to UserController

* Rename namespace to User

* Rename UserGroupsControllerBase to UserGroupControllerBase

* Rename namespace to UserGroup

* New backoffice: User and member item endpoints (#14079)

* Implement ByKeys in MemberService

* Implement member item endpoint

* Add routing to static file item controller

* Implement user item endpoint

* Implement user group item endpoint

* return proper response model

* update OpenApi.json

* Add CompatibilitySuppressions

* Cleanup

* Update OpenApi

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>

* Make user-group item endpoint singular

* Make user item endpoint singular

* Renamer user and user group folders

* Move from Users namespace to user

* Move from UserGroups namespace to UserGroup

* Update OpenApi.json

* Fix namespace after merge

* Move user item endpoint to singular namespace

* Move user group item endpoint to singular namespace

* Fix open api schema

---------

Co-authored-by: Nikolaj Geisle <70372949+zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>
2023-04-20 09:40:48 +02:00
Nikolaj Geisle
cb682e2f3e New backoffice: User and member item endpoints (#14079)
* Implement ByKeys in MemberService

* Implement member item endpoint

* Add routing to static file item controller

* Implement user item endpoint

* Implement user group item endpoint

* return proper response model

* update OpenApi.json

* Add CompatibilitySuppressions

* Cleanup

* Update OpenApi

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>
2023-04-19 09:43:01 +02:00
Kenn Jacobsen
c2af43d9d9 Copy and move API for content and media (#14040)
* Copy and Move API for Content and Media

* Update OpenAPI JSON schema

* Update OpenApi JSON file after merge

* Rename key to id

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-04-14 09:44:52 +02:00
Nikolaj Geisle
0f1e7f64ff New backoffice: Tag controller (#14072)
* Implement ByQueryEndpoint

* Implement new async methods on tag service

* dont have nullable query

* Formatting

* Add default implementation to interface

* Allow nullable query in api

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-04-12 09:39:02 +02:00
Nikolaj Geisle
9fadb3a926 V13: Entity viewports (#14050)
* Add language entity

* Refactor LanguageEntities

* Rename ItemsLanguageController.cs to ItemsLanguageEntityController.cs

* Change route to match old pattern

* Implement datatype item endpoint

* Rename controllers to item instead of entity

* Implement dictionary item endpoint

* Add DocumentItemControllerBase.cs

* Implement ItemDocumentItemController.cs

* Implement documnent-type controller

* Implement media type controller

* Move to item folder

* Implement MemberGroupItem viewport

* Implement member type item viewport

* Implement partial view viewport

* Implement partial view viewport

* Implement Relation type viewport

* Implement script items endpoint

* Refactor FileItemPresentationModelFactory

* Implement StaticFile viewport

* Implement stylesheet viewport

* Implement template item viewport

* Fix up routing

* Implement taking start nodes into account

* Implement filtering by culture too

* Delete old endpoints

* Implement document blueprint endpoint

* Implement media item viewport

* remove unneccesary $

* add fixme comment

* Fix response moedl

* update OpenApi.json

* Update OpenApi.json

* Update openapi file

* filter languages på isocode

* Change to sorted set to avoid duplicates

* Implement GetMultipleAsync for ILanguageService

* Fixed issue with params from GET needs to be querystring

* Removed Icon from base and only return Icon if explicitly set

* Fixed openAPI spec

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-04-05 12:50:41 +02:00
Bjarke Berg
6313b8b3a1 Changed "Key" to "Id" in management API (#14045) 2023-04-04 13:20:29 +02:00
Bjarke Berg
b981f53254 Fix key names to id and allow sending id on create for datatypes (#14035)
* Changed some keys to ids and fixed so users can provide Ids when creating

* updated OpenApi.json

* Fixed issue with datatypes when wrong propertyEditorAlias was used and allow creating with key

* Updated OpenApi.json

* Handle duplicate names correct

* Fix for parent not found

* Handle if parent is not a container

* Update CompatibilitySuppressions

---------

Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-03-31 13:59:44 +02:00
Kenn Jacobsen
fd3bb0fcb8 Add content notifications API (#14010) 2023-03-29 10:48:30 +02:00
Mole
9b626d02c8 New backoffice: User controller (#13947)
* Add UserResponseModel

* Add factory to created UserResponseModel

* Add GetByKey controller

* Add GetAllUsers endpoint

* User proper response model

* Make naming consistent

* Order by username in GetAll

* Add user filter endpoint

* Fix includer user states

* Remove gravatar from the backend

* Send user avatars in response

* Add create user model

* start working on create

* Validate the create model

* Add authorization to create

* Use UserRepository instead of UserService to ValidateSessíonId

* Create IBackofficeUserStore interface

This is essentially a core-friendly version of the BackOfficeUserStore, additionally it contains basic methods for managing users, I.E. Get users, save users, create users, etc.

* Remove more usages of user service

* Remove usages of IUserService in BackofficeUserStore

* Add documentation

* Fix tests and DI

* add IBackOfficeUserStoreAccessor to resolve it in singleton services

* Resolve circular dependency

* Remove obsolete constructor

* Add core friendly user manager

* Finish createasync in user service

* Add WIP create endpoint

* Save newly creates users user groups

* Use service scope for user service

* Remove now unnecessary accessors

* Add response types

* Add update user endpoint

* Add EmailUserInviteSender

* Add technology free way of creating confirmation token

* Add invite uri provider

* Add invite user to user service

* Add invite user controller

* Add delete endpoint

* Add operation status responses

* Add operation status responses

* Added temporary file uploads including a repository implementation using local temp folder.

* Add Disable users endpoint

* missing files

* Fixed copy paste error

* Fix create users return type

* Updated OpenApi.json

* Updated OpenApi.json

* Handle if created failed in identity

* Add enable user

* Make users plural in enable/disable

We're doing the operation on multiple entities

* Added file extension check

* Add unlock user endpoint

* Clean up. Removed old TemporaryFileService and UploadFileService and updated dictionary items to use this new items

* Clean up

* Add reset password

* Add UpdateUserGroupsOnUsers method

* Add UpdateUserGroups

* Get rid of stream directly on TemporaryFileModel, and use delegate to open stream instead.

* Fix post merge

* Use keys instead of IDs

* Add ClearAvatar endpoint

* Review changes

* Moved models to their own files

* Reverted launch settings

* Move enlist extension to its own namespace

* Create set avatar endpoint

* Add reponse types

* Remove infrastructure extension after merge

* Add Cmapatibility suppressions

* Add test suppression

* Add integration tests

* Fix issue found in tests

* Add invited user to UserInvitationResult

* Add more tests

* Add update tests

* Hide different tests under parent

* Return DuplicatUserName user operation status if username matches an email

* Add update tests

* Change sorted set to HashSet

It doesn't work if it's not IComparable

* Change ID to Key when checking super

* Add get tests

* Add more GetAllTests

* Move tests to the right namespace

* Add filter test

* Fix including disabled users bug found by test

* Add test to ensure invited user state

* Add test case for UserState.All

* Add more filter tests

* Add enable disable tests

* Add resolver for keys and ids

* Replace usages of IUserService with IUserIdKeyResolver

* Add CompatibilitySuppressions

* Add UserIdKeyResolverTests

* Fix UserIdKeyResolver

* Add missing user operation results

* Updates from review

* ID not key

* Post instead of patch

* Use set instead of params for enable/disable

* Don't call to array

* Use sets for usergroup keys and user keys instead

* LanguageIsoCode instead of Language

* Update CompatibilitySuppressions after changin enumerable to set

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: kjac <kja@umbraco.dk>
2023-03-29 08:14:47 +02:00
kjac
313eed96b9 Revert "Add content notifications API"
This reverts commit 8202879ba7.
2023-03-27 07:55:55 +02:00
kjac
8202879ba7 Add content notifications API 2023-03-27 07:55:18 +02:00
Bjarke Berg
835388ced0 Temporary files endpoints for management api (#13944)
* Added temporary file uploads including a repository implementation using local temp folder.

* missing files

* Fixed copy paste error

* Updated OpenApi.json

* Updated OpenApi.json

* Added file extension check

* Clean up. Removed old TemporaryFileService and UploadFileService and updated dictionary items to use this new items

* Clean up

* Get rid of stream directly on TemporaryFileModel, and use delegate to open stream instead.

* Review changes

* Moved models to their own files

* Reverted launch settings

* Update open API JSON file

---------

Co-authored-by: kjac <kja@umbraco.dk>
2023-03-16 08:25:15 +01:00
Kenn Jacobsen
4fb011e0fc Domains and hosts API (#13963)
* API for domains and hostnames incl. unit tests

* Update Open API json

* Update other unit tests to use new domain service methods where applicable

* Fix merge + update models to new naming scheme

* Handle attempts to add the same domain twice + unit tests for duplicate domain handling

* Review fixes
2023-03-15 10:28:23 +01:00
Nikolaj Geisle
5ac0087013 Rename data to values (#13892)
* Rename data to values

* Rename data to values

* Update OpenApi.json

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-03-13 15:03:54 +01:00
Kenn Jacobsen
c0975f341c CRUD API for media + get-by-id for media type (#13934)
* CRUD API for media + get by ID for media types

* A little housekeeping for documents (align with media)

* Update Open API json

* Add messages to NotFound results (both content and media)

* Review changes; use same model for content and media URLs + return bad request when trying to move something to trash that is already in trash

* Fix bad merge + rename base (response) classes appropriately between both media and content types
2023-03-13 15:02:30 +01:00
Nikolaj Geisle
5107375cd8 V13/feature/rename viewmodels to request response (#13952)
* Rename DocumentType/ContentType models

* Rename all viewmodels

* Rename factories

* Update OpenApi.json

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-03-13 10:49:21 +01:00
Nikolaj Geisle
27ca36db53 V13: relation type controller (#13856)
* Create RelationTypeControllerBase.cs

* Implement ByKey endpoint

* Move controllers

* Implement ByRelationTypeKeyRelationController

* Refactor relation service to use skip/take in interface

* change httpget

* Implement object types endpoint

* Add ObjectTypeViewModelFactory.cs

* Change signature to IActionResult

* Implement CreateRelationTypeController.cs

* Implement CreateRelationTypeController.cs

* Add optional key parameter to RelationType

* Add optional key to RelationTypeSavingViewModel

* Update ProducsResponseType

* Implement UpdateRelationTypeController

* Update routes

* Implement DeleteRelationTypeController

* Remove key from UpdatingViewmoDel

* Implement UpdatingViewModel factory method

* Update relationType factory

* Fix paging for object types

* Implement CreateAsync

* Update create action to use CreateAsync

* Implement update async

* Add default implementations to avoid breaking changes

* actually use userIds

* Add ProducesResponseType status 400 to endpoints

* Implement new DeleteAsync method

* Update OpenApi.json

* Add mapping to DI

* Update 404 to return proper HTTP status

* Add not found to ByKey action

* Rename viewmodels to request/response

* Update OpenApi.json

* All RelationServiceTests.cs

* Add allowed object types test

* Fix grouping

* Implement AllowedRelationObjectTypesService.cs

* Refactor view model factory to use new service

* Implement non-happy path tests

* Implement allowed child/parent object types

* refactor test to return proper relationTypeOperationStatus

* Add can create relation type with key

* Add Id test

* formatting

* Refactor service to have validation logic in save method

* move object types endpoint to own silo

* Delete unused using

* Update OpenApi.json

* Update OpenApi.json

* Update tests to user proper child/parent

* Implement RelationTypeBaseModel

* Update OpenApi.json

* Use array instead of enumerable

* Rename view model factory to presentation factory

* Rename GetPagedByRelationTypeKey

* Rename IRelationViewModelFactory

* Rename IRelationTypeViewModelFactory

* Update error description

* Update OpenApi.json

* Update OpenApi.json

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-03-01 08:51:17 +01:00
Bjarke Berg
a00421602e Merge pull request #13891 from umbraco/v13/feature/content-create-update-delete
Create/update/delete API for Document
2023-02-28 16:00:48 +01:00
kjac
207c1b6dde Rename ViewModel to ResponseModel + rename ViewModel factory to Presentation factory 2023-02-27 11:27:26 +01:00
kjac
34fa4aa5fc Clean up models 2023-02-27 09:25:35 +01:00
kjac
502713fdbb Rename models as per new naming conventions + clean up duplicate models 2023-02-23 16:57:49 +01:00
kjac
9e8a0645cd Merge branch 'v13/dev' into v13/feature/content-create-update-delete 2023-02-23 16:50:19 +01:00
kjac
5d2a90f974 Merge branch 'v13/dev' into v13/feature/extension-model
# Conflicts:
#	src/Umbraco.Cms.Api.Management/Controllers/Package/PackageControllerBase.cs
#	src/Umbraco.Cms.Api.Management/DependencyInjection/PackageBuilderExtensions.cs
#	src/Umbraco.Cms.Api.Management/ManagementApiComposer.cs
#	src/Umbraco.Core/CompatibilitySuppressions.xml
#	src/Umbraco.Infrastructure/CompatibilitySuppressions.xml
#	src/Umbraco.Infrastructure/Serialization/ContextualJsonSerializer.cs
#	src/Umbraco.Web.BackOffice/CompatibilitySuppressions.xml
2023-02-23 15:28:44 +01:00
Elitsa Marinovska
c2ecc8dc33 New Backoffice: Package controller (#13578)
* Adding migration to update the default GUID value of created packages

* Updating the GUID if it is the default value when a package is saved

* Adding PackageDefinitionViewModel for representing a package

* Adding a mapping for package representation

* Adding PackageControllerBase, GetAllCreated and GetEmpty endpoints

* Adding GetCreatedByKey endpoint

* Adding GetByKey implementation for created packages

* Include MapAll comment

* Adding Download package endpoint

* Saving created package endpoint

* Adding a factory to create a PackageDefinition from view model

* Cleanup

* Fix error message

* Check for duplicate package name

* Remove commented out DuplicateNameException

* Moving created packages to /created folder/base

* Implement delete endpoint

* Update OpenApi.json

* Fix package route

* Fix OpenApi.json

* Add Ok() around the result

* Create PackageBuilderExtensions

* Adding suppression changes

* Cleanup

* Use ProblemDetailsBuilder

* Extract collecting installed packages from package migration plans into its own method

* Use GetInstalledPackagesFromMigrationPlans to return all migration statuses

* Add Status to DictionaryControllerBase ProblemDetails

* Implement RunMigrationPackageController

* Adding more information to the log message

* Update OpenApi.json

* Change param name

* Fix OpenApi.json

* Fix response type for Log viewer endpoint

* Remove EmptyPackageController

* Rename to RunPendingPackageMigrations

* Introduce new PackageOperationStatus

* Making methods async and introducing new Create, Update and Delete methods

* Fix async calls

* Fix Mapper - multiple enumeration and cleanup

* Creating special action models

* Fixing the factory with new models changes

* Service implementation changes

* Removing SaveCreatedPackageController as the functionality is split between Create and UpdateCreatedPackageController

* Utilize the new DeleteCreatedPackageAsync

* Refactor DownloadCreatedPackageController as some responsibility is moved to the service

* Refactor PackagingService to use auditService

* Refactor PackagingService to use skip/take

* Refactor services to return pagedmodel

* Refactor controller to use new return value

* update OpenApi.json

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-02-23 14:36:21 +01:00
Nikolaj Geisle
b96302a9da V13: Audit log controller (#13842)
* Implement AuditLogByTypeViewModel

* Add GetLogs endpoint

* Implement AuditLogViewModelFactory and use it

* Remove mapping and do that in ViewModelFactory

* Add Skip take pagination to AuditService.cs

* Get entity key from repository

* Only create filter if sincedate has value

* Refactor to handle enitity not being found

* Add by type route

* Rename AuditLogViewModel.cs

* Add CreateAuditLogWithUsernameViewModel method to factory

* Rename method in factory

* Fix up controllers to use async service

* Refactor to use pagedModel

* Update sincedate query

* Add FIXME

* Move entity call in scope

* Rename methods to async

* Update src/Umbraco.Core/PaginationHelper.cs

* Refactor to use IActionResult

* Audit log in two words

* Fix up by key

* Fix routing

* Fix ByType

* Update ByType routing

* Refactor to also pass DateStamp

* Add Key to WithUserNameViewModel

* Refactor extension method to call new GetAsync method

* use new GetAsync method

* Rename models and implement base class

* Update OpenApi.json

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-02-23 11:32:24 +01:00
kjac
95ec06e119 Fix model name clash in Swagger 2023-02-22 11:39:14 +01:00
Bjarke Berg
0619a7de41 Use keys for tracked references (#13849)
* Use Keys for tracked references instead of int id's.

* Updated OpenApi.json

* Handle filterMustBeIsDependency consistently

---------

Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-02-21 15:20:34 +01:00
kjac
cf12b9540e Merge branch 'v13/dev' into v13/feature/content-create-update-delete
# Conflicts:
#	src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyDocumentController.cs
#	src/Umbraco.Cms.Api.Management/Controllers/Document/DocumentControllerBase.cs
#	src/Umbraco.Cms.Api.Management/DependencyInjection/DocumentBuilderExtensions.cs
#	src/Umbraco.Cms.Api.Management/Mapping/Content/ContentMapDefinition.cs
#	src/Umbraco.Cms.Api.Management/Mapping/Document/DocumentMapDefinition.cs
#	src/Umbraco.Cms.Api.Management/ViewModels/Content/ContentViewModelBase.cs
#	src/Umbraco.Cms.Api.Management/ViewModels/Content/VariantViewModelBase.cs
#	src/Umbraco.Cms.Api.Management/ViewModels/Document/DocumentViewModel.cs
#	src/Umbraco.Infrastructure/Serialization/SystemTextJsonSerializer.cs
2023-02-21 14:07:36 +01:00
Kenn Jacobsen
2eebd0558c Document and document type read API (#13853)
* Basic structure for document and document type read API

* Handle unpublished, non-variant content

* Expose content type key on ContentTypeSort

* Add the remaining properties to document type (minus list view info, still pending)

* Obsolete more ILocalizationService usage

* Add URLs and template data to document view model

* Clean up + add proprety type appearance

* update submodule commit

* front-end commit

* latest front-end commit

* latest commit

* latest front-end commit

* Rename content property to content value in view model layer

* Add contextual JSON serialization as default JSON serializer

* Add FIXME to content type sort + rearrange constructor parameters

* Fix broken remark tag

* Whitelist breakage for ContentTypeSort

* Add variance info to property type output

* Update src/Umbraco.Cms.Api.Management/Controllers/Document/ByKeyDocumentController.cs

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

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

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

* Update src/Umbraco.Cms.Api.Management/Factories/ContentUrlFactory.cs

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

* Add a few FIXME comments about async entity retrieval

---------

Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-02-21 13:40:41 +01:00
kjac
d7ad194a5b Merge branch 'v13/dev' into v13/feature/content-create-update-delete 2023-02-21 09:47:44 +01:00
kjac
9b63d33b33 Merge branch 'v13/feature/content-and-content-type-read-api' into v13/feature/content-create-update-delete 2023-02-21 09:33:21 +01:00
kjac
a541e24508 Add variance info to property type output 2023-02-21 09:18:57 +01:00
kjac
361db0ed3c Add create, update and delete (move to recycle bin) operations for Document 2023-02-20 11:08:22 +01:00
Mole
5182f46bdb New Backoffice: User Groups Controller (#13811)
* Add key to UserGroupDto

* Fix renaming table in sqlite

The SqliteSyntaxProvider needed an overload to use the correct query

* Start work on user group GUID migration

* Add key index to UserGroupDto

* Copy over data when migrating sqlite

* Make sqlite column migration work

* Remove PostMigrations

These should be replaced with Notification usage

* Remove outer scope from Upgrader

* Remove unececary null check

* Add marker base class for migrations

* Enable scopeless migrations

* Remove unnecessary state check

The final state of the migration is no longer necessarily the final state of the plan.

* Extend ExecutedMigrationPlan

* Ensure that MigrationPlanExecutor.Execute always returns a result.

* Always save final state, regardless of errors

* Remove obsolete Execute

* Add Umbraco specific migration notification

* Publish notification after umbraco migration

* Throw the exception that failed a migration after publishing notification

* Handle notification publishing in DatabaseBuilder

* Fix tests

* Remember to complete scope

* Clean up MigrationPlanExecutor

* Run each package migration in a separate scope

* Add PartialMigrationsTests

* Add unhappy path test

* Fix bug shown by test

* Move PartialMigrationsTests into the correct folder

* Comment out refresh cache in data type migration

Need to add this back again as a notification handler or something.

* Start working on a notification test

* Allow migrations to request a cache rebuild

* Set RebuildCache from MigrateDataTypeConfigurations

* Clean MigrationPlanExecutor

* Add comment explaining the need to partial migration success

* Fix tests

* Allow overriding DefinePlan of UmbracoPlan

This is needed to test the DatabaseBuilder

* Fix notification test

* Don't throw exception to be immediately re-caught

* Assert that scopes notification are always published

* Ensure that scopes are created when requested

* Make test classes internal.

It doesn't really matter, but this way it doesn't show up in intellisense

* Add notification handler for clearing cookies

* Add CompatibilitySuppressions

* Use unscoped migration for adding GUID to user group

* Make sqlite migration work

It's really not pretty, square peg, round hole.

* Don't re-enable foreign keys

This will happen automatically next time a connection is started.

* Scope database when using SQLServer

* Don't call complete transaction

* Tidy up a couple of comment

* Only allow scoping the database from UnscopedMigrationBase

* Fix comment

* Remove remark in UnscopedMigrationBase as it's no longer true

* Add keys when creating default user groups

* Map database value from DTO to entity

* Fix migration

Rename also renamed the foreign keys, making it not work

* Make migration idempotent

* Fix unit test

* Update CompatibilitySuppressions.xml

* Add GetUserGroupByKey to UserService

* Add ByKey endpoint

* Add UniqueId to AppendGroupBy

Otherwise MSSQL grenades

* Ensure that languages are returned by PerformGetByQuery

* add POC displaying model

* Clean up by key controller

* Add GetAllEndpoint

* Add delete endpoint

* Use GetKey to get GUID from id

Instead of pulling up the entire entity.

* Add UserGroup2Permission table

* Fetch the new permissions when getting user groups

* Dont ToString int to parse it to a short

I'm pretty sure this is some way old migration type code that doesn't make any sense anymore

* Add new relation to GetDeleteClauses

* Persist the permissions

* Split UserGroupViewModel into multiple models

This is to make it possible to make endpoints more rest-ish

* Bootstrap create and update endpoints

* Make GetAllUserGroupController paged

* Add method to create IUserGroup from UserGroupSaveModel

* Add sanity check version of endpoint

* Fix persisting permissions

* Map section aliases to the name the frontend expects

This is a temporary fix till we find out how we really want to handle this

* Fix up post merge

* Make naming more consistent

* Implement initial update endpoint

* Fix media start node

* Clean name for XSS when mapping to IUserGroup

* Use a set instead of a list for permission names

We don't want dupes

* Make permission column nvarchar max

* Add UserGroupOperationStatuses

* Add IUserGroupAuthorizationService

* Add specific user group creation method to user service

* Move validating and authorizing into its own methods

* Add operation result to action result mapping

* Update create controller to use the create method

* Fix create end point

* Comment out getting current user untill we have auth

* Add usergroup service

* Obsolete usergroup things from IUserService

* Add update to UserGroupService interface

* User IUserGroupService in controllers

* User async notifications overloads

* Move authorize user group creation into its own service

* Add AuthorizeUserGroupUpdate method

* Make new service implementations internal and sealed

* Add update user

* Add GetAll to usergroup service

* Remove or obsolete usages of GetAllUserGroups

* Add usergroup service to DI

* Remove usage of GetGroupsByAlias

* Remove usages of GetUserGroupByAlias

* Remove usage of GetUserGroupById

* Add new table when creating a new database

* Implement Delete

* Add skip and take to getall

* Move skip take into the service

* Fixup suggestions in user group service

* Fixup unit tests

* Allow admins to change user groups they're not a part of

* Add CompatibilitySuppressions

* Update openapi

* Uppdate OpenApi.json

again

* Add missing compatibility suppression

* Added missing type info in ProducesResponseTypeAttribute

* Added INamedEntityViewModel and added on the relevant view models

* Fixed bug, resulting in serialization not being the same as swagger reported. Now all types objects implementing an interface, is serialized with the $type property

* updated OpenApi.json

* Added missing title in notfound response

* Typo

* .Result to .GetAwaiter().GetResult()

* Update comment to mention it should be implemented on CurrentUserController

* Validate that start nodes actually exists

* Handle not found consistently

* Use iso codes instead of ids

* Update OpenAPI

* Automatically infer statuscode in problemdetails

* Ensure that the language exists

* Fix usergroup 2 permission index

* Validate that group name and alias is not too long

* Only return status from validation

We're just returning the same usergroups, and this is less boilerplate code

* Handle empty and null group names

* Remove group prefix from statuses

* Add some basic validation tests

* Don't allow updating a usergroup to having a duplicate alias

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-02-16 09:39:17 +01:00