Granular permissions in Management API (#15734)

* It builds..

* Added granular permissions

* Added granular permissions

* Rename content to document

* Added migration

* Fixed issues causing the migration from v13 was not possible.

* Merged Permissions and Granular Permissions in viewmodel

* Prepared the viewmodel to a future where permissions can be more types.

* OpenApi

* Allow to translate a single char to many strings

* Use frontend friendly values for known permissions

* Validate the documents exist

* Allow setting non-document settings

* Add "$type" when required

* Rename to presentation model and update OpenApi.json

* OpenApi.json

* Fix tests

* OpenAPI

* Fixed issues with upgrades

* Add the discriminator name

* Fixed issues that only happended on SqlServer

* Fixed queries for SqlServer

* Clean up

* More cleanup

* Fix issue when migrating sqlserver

* Split fallback permissions into own concept in view model

* Also split on current user

* Added a extenable pattern for mappers between DTO => Granular Permission => ViewModel and ViewModel => Granular Permission

* Fixed issue with new exists method, that did not take duplicate keys into account.

* Added sections to current user response model

* Formatting fixes

* Move class to its own file

* xml comment

---------

Co-authored-by: Zeegaan <skrivdetud@gmail.com>
This commit is contained in:
Bjarke Berg
2024-02-27 20:57:02 +00:00
committed by GitHub
parent 3c2ae389f4
commit 2494d8c5aa
111 changed files with 1468 additions and 544 deletions

View File

@@ -20,7 +20,7 @@ public class UserGroupBuilderTests
const string testName = "Test";
const int testUserCount = 11;
const string testIcon = "icon";
const string testPermissions = "abc";
ISet<string> testPermissions = "abc".Select(x=>x.ToString()).ToHashSet();
const int testStartContentId = 3;
const int testStartMediaId = 8;
@@ -44,7 +44,7 @@ public class UserGroupBuilderTests
Assert.AreEqual(testName, userGroup.Name);
Assert.AreEqual(testUserCount, userGroup.UserCount);
Assert.AreEqual(testIcon, userGroup.Icon);
Assert.AreEqual(testPermissions.Length, userGroup.Permissions.Count());
Assert.AreEqual(testPermissions.Count, userGroup.Permissions.Count());
Assert.AreEqual(testStartContentId, userGroup.StartContentId);
Assert.AreEqual(testStartMediaId, userGroup.StartMediaId);
}