From a9ee8fdbef996d8b5ae45edf40b7ef90e1fb87f6 Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Tue, 10 Feb 2026 12:02:10 +0100 Subject: [PATCH] =?UTF-8?q?Employee=20>=20ApplicationUser=20ApplicationUse?= =?UTF-8?q?r=20wird=20spezieller=20f=C3=BCr=20Rechte=20verwendet.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BeWo/ViewModel/AiPromptbausteinFolderVM.cs | 3 +- Data/Entities/AiPromptbausteinPrompt.cs | 2 +- Data/Mappings/AiPromptbausteinPrompt.hbm.xml | 4 +- .../Changes_2025-09-29 AI Promptbaustein.txt | 24 ----- ...anges_2025-12-12 AI Promptbausteintree.txt | 28 ------ ...s_2026-02-10 AI Promptbausteinfolder 4.txt | 14 +++ ...6-02-10 AI Promptbausteinfolder finale.txt | 98 +++++++++++++++++++ ...bausteinPromptDC_AiPromptbausteinPrompt.cs | 6 +- 8 files changed, 120 insertions(+), 59 deletions(-) delete mode 100644 Model/Changes_2025-09-29 AI Promptbaustein.txt delete mode 100644 Model/Changes_2025-12-12 AI Promptbausteintree.txt create mode 100644 Model/Changes_2026-02-10 AI Promptbausteinfolder 4.txt create mode 100644 Model/Changes_2026-02-10 AI Promptbausteinfolder finale.txt diff --git a/BeWo/ViewModel/AiPromptbausteinFolderVM.cs b/BeWo/ViewModel/AiPromptbausteinFolderVM.cs index 8da936a92..9abcbf546 100644 --- a/BeWo/ViewModel/AiPromptbausteinFolderVM.cs +++ b/BeWo/ViewModel/AiPromptbausteinFolderVM.cs @@ -99,10 +99,11 @@ namespace BeWo.ViewModel return; _SubPrompts.VMList.ListChanged += (s, e) => { + FirePropertyChanged(nameof(Displayname)); + if (e.ListChangedType == System.ComponentModel.ListChangedType.ItemChanged) return; - FirePropertyChanged(nameof(Displayname)); FirePropertyChanged(nameof(Prompts)); }; } diff --git a/Data/Entities/AiPromptbausteinPrompt.cs b/Data/Entities/AiPromptbausteinPrompt.cs index 232b93d58..b9995dc45 100644 --- a/Data/Entities/AiPromptbausteinPrompt.cs +++ b/Data/Entities/AiPromptbausteinPrompt.cs @@ -39,7 +39,7 @@ namespace BeWo.Data.Entities public virtual string PromptId { get; set; } - public virtual IList UserFavorites { get; set;} = new List(); + public virtual IList UserFavorites { get; set;} = new List(); } public class AiPromptbausteinPromptPromptIdComparer : IEqualityComparer diff --git a/Data/Mappings/AiPromptbausteinPrompt.hbm.xml b/Data/Mappings/AiPromptbausteinPrompt.hbm.xml index 5db2ea8af..271c8fed0 100644 --- a/Data/Mappings/AiPromptbausteinPrompt.hbm.xml +++ b/Data/Mappings/AiPromptbausteinPrompt.hbm.xml @@ -26,9 +26,9 @@ - + - + diff --git a/Model/Changes_2025-09-29 AI Promptbaustein.txt b/Model/Changes_2025-09-29 AI Promptbaustein.txt deleted file mode 100644 index 01da1db29..000000000 --- a/Model/Changes_2025-09-29 AI Promptbaustein.txt +++ /dev/null @@ -1,24 +0,0 @@ -CREATE TABLE `AiPromptbaustein` ( - `Oid` bigint NOT NULL AUTO_INCREMENT, - `Tid` int DEFAULT NULL, - `IsActive` tinyint(1) DEFAULT NULL, - `Notice` varchar(1024) DEFAULT NULL, - `InsTs` datetime DEFAULT NULL, - `InsUser` varchar(256) DEFAULT NULL, - `Version` bigint DEFAULT NULL, - `UdpUser` varchar(256) DEFAULT NULL, - `SystemEntryID` int DEFAULT NULL, - `Text` mediumtext, - `Position` int DEFAULT NULL, - `Name` varchar(256) DEFAULT NULL, - `EmployeeOid` bigint DEFAULT NULL, - `IsOnlyForEmployee` tinyint(1) DEFAULT NULL, - `ParentOid` bigint DEFAULT NULL, - `IsParent` tinyint(1) DEFAULT NULL, - `IsExpanded` tinyint DEFAULT NULL, - PRIMARY KEY (`Oid`), - KEY `EMPLOYEE_AIPROMPTBAUSTEIN_FK` (`EmployeeOid`), - KEY `FK_AIPROMPTBAUSTEIN2PARENT` (`ParentOid`), - CONSTRAINT `FK_EMPLOYEE_AIPROMPT` FOREIGN KEY (`EmployeeOid`) REFERENCES `employee` (`Oid`), - CONSTRAINT `FK_AIPROMPTBAUSTEIN2PARENT` FOREIGN KEY (`ParentOid`) REFERENCES `AiPromptbaustein` (`Oid`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; diff --git a/Model/Changes_2025-12-12 AI Promptbausteintree.txt b/Model/Changes_2025-12-12 AI Promptbausteintree.txt deleted file mode 100644 index 591c46915..000000000 --- a/Model/Changes_2025-12-12 AI Promptbausteintree.txt +++ /dev/null @@ -1,28 +0,0 @@ -CREATE TABLE `AiPromptbausteinTree` ( -`Oid` bigint NOT NULL AUTO_INCREMENT, -`InsTs` datetime DEFAULT NULL, -`InsUser` varchar(256) DEFAULT NULL, -`Notice` varchar(1024) DEFAULT NULL, -`Tid` int DEFAULT NULL, -`UdpUser` varchar(256) DEFAULT NULL, -`Version` bigint DEFAULT NULL, -`IsActive` tinyint DEFAULT NULL, -`SystemEntryID` int DEFAULT NULL, -`Displayname` varchar(255), -`Content` mediumtext, -`PromptbausteinType` int, -`Metadata` varchar(255), -`AiActionType` int, -`CreatorOid` bigint DEFAULT NULL, -`IsOnlyForCreator` tinyint, -`ShowUserPrompt` tinyint, -`ShowUserPromptByTenant` tinyint, -`Position` int, -`IsExpanded` tinyint, -`ParentOid` bigint DEFAULT NULL, -PRIMARY KEY (`Oid`), -KEY `FK_AIPROMPTBAUSTEINTREE_EMPLOYEE_IDX` (`CreatorOid`), -KEY `FK_AIPROMPTBAUSTEINTREE_PARENT_IDX` (`ParentOid`), -CONSTRAINT `FK_AIPROMPTBAUSTEINTREE_EMPLOYEE` FOREIGN KEY (`CreatorOid`) REFERENCES `employee` (`Oid`), -CONSTRAINT `FK_AIPROMPTBAUSTEINTREE_PARENT` FOREIGN KEY (`ParentOid`) REFERENCES `aipromptbausteintree` (`Oid`) -) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1; diff --git a/Model/Changes_2026-02-10 AI Promptbausteinfolder 4.txt b/Model/Changes_2026-02-10 AI Promptbausteinfolder 4.txt new file mode 100644 index 000000000..83974b805 --- /dev/null +++ b/Model/Changes_2026-02-10 AI Promptbausteinfolder 4.txt @@ -0,0 +1,14 @@ +INSERT INTO `.executedscripts` +VALUES ('Changes_2026-02-10 AI Promptbausteinfolder 4', '2026-02-10'); + +-- wird nicht benötigt +DROP TABLE `AiPromptbausteinTree`; +DROP TABLE `AiPromptbaustein`; + +-- wird neu erstellt, nicht schlimm, wenns die nicht gibt +DROP TABLE `aipromptbausteinprompt2userfavorite`; +DROP TABLE `aipromptbausteinprompt2userhide`; +DROP TABLE `aipromptbausteinfolder2userhide`; +DROP TABLE `aipromptbausteinfolder2usershare`; +DROP TABLE `AiPromptbausteinPrompt`; +DROP TABLE `AiPromptbausteinFolder`; \ No newline at end of file diff --git a/Model/Changes_2026-02-10 AI Promptbausteinfolder finale.txt b/Model/Changes_2026-02-10 AI Promptbausteinfolder finale.txt new file mode 100644 index 000000000..447f68a9c --- /dev/null +++ b/Model/Changes_2026-02-10 AI Promptbausteinfolder finale.txt @@ -0,0 +1,98 @@ +-- nur ausführen, wenn noch nicht vorhanden +CREATE TABLE `.executedscripts` ( + `Name` varchar(255) UNIQUE, + `Datum` DATE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + + + +INSERT INTO `.executedscripts` +VALUES ('Changes_2026-02-10 AI Promptbausteinfolder finale', CURDATE()); + +-- Folder +CREATE TABLE `AiPromptbausteinFolder` ( +`Oid` bigint NOT NULL AUTO_INCREMENT, +`InsTs` datetime DEFAULT NULL, +`InsUser` varchar(256) DEFAULT NULL, +`Notice` varchar(1024) DEFAULT NULL, +`Tid` int DEFAULT NULL, +`UdpUser` varchar(256) DEFAULT NULL, +`Version` bigint DEFAULT NULL, +`IsActive` tinyint DEFAULT NULL, +`SystemEntryID` int DEFAULT NULL, +`Title` varchar(255), +`Description` mediumtext, +`ParentFolderOid` bigint DEFAULT NULL, +`CreatorOid` bigint DEFAULT NULL, +`IsPublic` tinyint, +`Position` int, +`ActionType` int, +PRIMARY KEY (`Oid`), +KEY `FK_AIPROMPTBAUSTEINFOLDER_EMPLOYEE_IDX` (`CreatorOid`), +KEY `FK_AIPROMPTBAUSTEINFOLDER_PARENT_IDX` (`ParentFolderOid`), +CONSTRAINT `FK_AIPROMPTBAUSTEINFOLDER_EMPLOYEE` FOREIGN KEY (`CreatorOid`) REFERENCES `employee` (`Oid`), +CONSTRAINT `FK_AIPROMPTBAUSTEINFOLDER_PARENT` FOREIGN KEY (`ParentFolderOid`) REFERENCES `aipromptbausteinfolder` (`Oid`) +) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1; + +-- Prompts +CREATE TABLE `AiPromptbausteinPrompt` ( +`Oid` bigint NOT NULL AUTO_INCREMENT, +`InsTs` datetime DEFAULT NULL, +`InsUser` varchar(256) DEFAULT NULL, +`Notice` varchar(1024) DEFAULT NULL, +`Tid` int DEFAULT NULL, +`UdpUser` varchar(256) DEFAULT NULL, +`Version` bigint DEFAULT NULL, +`IsActive` tinyint DEFAULT NULL, +`SystemEntryID` int DEFAULT NULL, +`Title` varchar(255), +`Description` mediumtext, +`ParentFolderOid` bigint DEFAULT NULL, +`CreatorOid` bigint, +`IsPublic` tinyint, +`Position` int, +`Prompt` mediumtext, +`ShowPrompt` tinyint, +`ShowPromptByTenant` tinyint, +`IsOwnsoftPrompt` tinyint, +`OwnsoftRefLink` varchar(255), +`PromptId` varchar(255), +PRIMARY KEY (`Oid`), +KEY `FK_AIPROMPTBAUSTEINPROMPT_EMPLOYEE_IDX` (`CreatorOid`), +KEY `FK_AIPROMPTBAUSTEINPROMPT_PARENT_IDX` (`ParentFolderOid`), +CONSTRAINT `FK_AIPROMPTBAUSTEINPROMPT_EMPLOYEE` FOREIGN KEY (`CreatorOid`) REFERENCES `employee` (`Oid`), +CONSTRAINT `FK_AIPROMPTBAUSTEINPROMPT_PARENT` FOREIGN KEY (`ParentFolderOid`) REFERENCES `aipromptbausteinfolder` (`Oid`) +) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1; + +-- linking tables +CREATE TABLE `aipromptbausteinprompt2empfavorite` ( + `AiPromptbausteinPromptOid` bigint NOT NULL, + `EmployeeOid` bigint NOT NULL, + PRIMARY KEY (`AiPromptbausteinPromptOid`,`EmployeeOid`), + CONSTRAINT `FK_AIPROMPTBAUSTEIN2EMPFAV_AIPROMPT` FOREIGN KEY (`AiPromptbausteinPromptOid`) REFERENCES `aipromptbausteinprompt` (`Oid`), + CONSTRAINT `FK_AIPROMPTBAUSTEIN2EMPFAV_APPUSER` FOREIGN KEY (`EmployeeOid`) REFERENCES `employee` (`Oid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `aipromptbausteinprompt2emphide` ( + `AiPromptbausteinPromptOid` bigint NOT NULL, + `EmployeeOid` bigint NOT NULL, + PRIMARY KEY (`AiPromptbausteinPromptOid`,`EmployeeOid`), + CONSTRAINT `FK_AIPROMPTBAUSTEIN2EMPHIDE_AIPROMPT` FOREIGN KEY (`AiPromptbausteinPromptOid`) REFERENCES `aipromptbausteinprompt` (`Oid`), + CONSTRAINT `FK_AIPROMPTBAUSTEIN2EMPHIDE_APPUSER` FOREIGN KEY (`EmployeeOid`) REFERENCES `employee` (`Oid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `aipromptbausteinfolder2emphide` ( + `AiPromptbausteinFolderOid` bigint NOT NULL, + `EmployeeOid` bigint NOT NULL, + PRIMARY KEY (`AiPromptbausteinFolderOid`,`EmployeeOid`), + CONSTRAINT `FK_AIPROMPTBAUSTEIN2EMPHIDE_AIFOLDER` FOREIGN KEY (`AiPromptbausteinFolderOid`) REFERENCES `aipromptbausteinfolder` (`Oid`), + CONSTRAINT `FK_AIPROMPTBAUSTEIN2EMPHIDE_APPUSER2` FOREIGN KEY (`EmployeeOid`) REFERENCES `employee` (`Oid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `aipromptbausteinfolder2empshare` ( + `AiPromptbausteinFolderOid` bigint NOT NULL, + `EmployeeOid` bigint NOT NULL, + PRIMARY KEY (`AiPromptbausteinFolderOid`,`EmployeeOid`), + CONSTRAINT `FK_AIPROMPTBAUSTEIN2EMPSHARE_AIFOLDER` FOREIGN KEY (`AiPromptbausteinFolderOid`) REFERENCES `aipromptbausteinfolder` (`Oid`), + CONSTRAINT `FK_AIPROMPTBAUSTEIN2EMPSHARE_APPUSER` FOREIGN KEY (`EmployeeOid`) REFERENCES `employee` (`Oid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; \ No newline at end of file diff --git a/Service/DCEntityMapper/AiPromptbausteinPromptDC_AiPromptbausteinPrompt.cs b/Service/DCEntityMapper/AiPromptbausteinPromptDC_AiPromptbausteinPrompt.cs index 5c9cb4d9d..1942a01a8 100644 --- a/Service/DCEntityMapper/AiPromptbausteinPromptDC_AiPromptbausteinPrompt.cs +++ b/Service/DCEntityMapper/AiPromptbausteinPromptDC_AiPromptbausteinPrompt.cs @@ -13,7 +13,7 @@ namespace BeWo.Service.DCEntityMapper { public class AiPromptbausteinPromptDC_AiPromptbausteinPrompt : BeWoDataContract_BeWoEntityBase { - public ApplicationUser CurrentApplicationUser => UserRightHelper.GetLoggedInUserWithOid(); + public Employee CurrentUser => UserRightHelper.GetLoggedInEmployee(); public override AiPromptbausteinPromptDC MergeWithDC(AiPromptbausteinPrompt pEntity, AiPromptbausteinPromptDC pDataContract) { @@ -30,7 +30,7 @@ namespace BeWo.Service.DCEntityMapper pDataContract.IsOwnsoftPrompt = pEntity.IsOwnsoftPrompt; pDataContract.OwnsoftRefLink = pEntity.OwnsoftRefLink; pDataContract.PromptId = pEntity.PromptId; - pDataContract.IsFavorite = pEntity.UserFavorites.Contains(CurrentApplicationUser); + pDataContract.IsFavorite = pEntity.UserFavorites.Contains(CurrentUser); if(pEntity.CreatorOid is long oid) pDataContract.Creator = new EmployeeServiceImp().GetActiveCompactEmployeeWithOid(oid); @@ -55,7 +55,7 @@ namespace BeWo.Service.DCEntityMapper pEntity.OwnsoftRefLink = pDataContract.OwnsoftRefLink; pEntity.PromptId = pDataContract.PromptId; - var user = CurrentApplicationUser; + var user = CurrentUser; if (pDataContract.IsFavorite && !pEntity.UserFavorites.Contains(user)) { pEntity.UserFavorites.Add(user);