MySql_RMFunction.sql 10.7 KB

select 'CREATE PROCEDURE checkBEAuth(...)';
DROP PROCEDURE IF EXISTS checkBEAuth;
DELIMITER '$';
	CREATE PROCEDURE checkBEAuth(IN param_in_MTextID int, IN param_in_RequestProfileID int, OUT param_out_ReadAuthorisation int, OUT param_out_WriteAuthorisation int)
	BEGIN

		IF (select ID from losp_BasisElement inner join losp_BasisElement_writeauthorisation on AuthWriteListID=ListID where ID=param_in_MTextID and ( AuthWriteListID=0 or  ProfileID=param_in_RequestProfileID)) THEN
			set param_out_WriteAuthorisation=1;
			set param_out_ReadAuthorisation=1;
		ELSE
			set param_out_WriteAuthorisation=0;

			IF (select ID from losp_BasisElement inner join losp_BasisElement_readauthorisation on AuthReadListID=ListID where ID=param_in_MTextID and ( AuthReadListID=0 or  ProfileID=param_in_RequestProfileID)) THEN
				set param_out_ReadAuthorisation=1;
			ELSE
				set param_out_ReadAuthorisation=0;
			END IF;
		END IF;
	END;
$
DELIMITER  ;


--	select 'CREATE PROCEDURE checkBEAuth(...)';
--	DROP PROCEDURE IF EXISTS checkBEAuth;
--	DELIMITER '$';
--		CREATE PROCEDURE checkBEAuth(IN param_in_MTextID int, IN param_in_RequestProfileID int, OUT param_out_ReadAuthorisation int, OUT param_out_WriteAuthorisation int, OUT param_out_ReadPCListID int, OUT param_out_WritePCListID int)
--		BEGIN
--
--			IF (select ID from losp_BasisElement inner join losp_BasisElement_writeauthorisation on AuthWriteListID=ListID where ID=param_in_MTextID and ( AuthWriteListID=0 or  ProfileID=param_in_RequestProfileID)) THEN
--				set param_out_WriteAuthorisation=1;
--				set param_out_ReadAuthorisation=1;
--			ELSE
--
--
--				set param_out_WriteAuthorisation=0;
--
--				IF (select ID from losp_BasisElement inner join losp_BasisElement_readauthorisation on AuthReadListID=ListID where ID=param_in_MTextID and ( AuthReadListID=0 or  ProfileID=param_in_RequestProfileID)) THEN
--					set param_out_ReadAuthorisation=1;
--				ELSE
--					set param_out_ReadAuthorisation=0;
--				END IF;
--			END IF;
--		END;
--	$
--	DELIMITER  ;



select 'CREATE PROCEDURE checkProfileIDinRMProfileCollectionBE(...)';
DROP PROCEDURE IF EXISTS checkProfileIDinRMProfileCollectionBE;
DELIMITER '$';
	CREATE PROCEDURE checkProfileIDinRMProfileCollectionBE(IN param_in_PID int, IN param_in_RMPMBEID int, OUT param_out_ReadAuthorisation int, OUT param_out_WriteAuthorisation int)
		

	BEGIN

 	END;
$
DELIMITER  ;


select 'CREATE FUNCTION resetAndInsertFirstWriteRightToList(...) RETURNS INT';
DROP FUNCTION IF EXISTS resetAndInsertFirstWriteRightToList;
DELIMITER '$';
	CREATE FUNCTION resetAndInsertFirstWriteRightToList(param_RequestProfileID int, param_ListID int, param_FirstRightProfileID int )
	RETURNS INT
	DETERMINISTIC
	BEGIN
--		DECLARE var_WriteRight INT;
--		SET var_WriteRight=0;

			-- Liste ist vorhanden
			IF param_ListID>0 THEN
--				SET var_WriteRight=(select ProfileID from losp_BasisElement_writeauthorisation where ListID=param_ListID and ProfileID=param_RequestProfileID);

--				IF var_WriteRight=param_RequestProfileID THEN

					-- insert tmp 0 in writelist
					INSERT INTO losp_BasisElement_writeauthorisation (ListID, ProfileID) VALUES (param_ListID, 0);
					-- delete all entrys (without tmp entry)
					DELETE FROM losp_BasisElement_writeauthorisation where ListID=param_ListID and ProfileID!=0;
					-- insert the param_FirstRightProfileID
					INSERT INTO losp_BasisElement_writeauthorisation (ListID, ProfileID) VALUES (param_ListID, param_FirstRightProfileID);
					-- delete tmp 0 from writelist
					DELETE FROM losp_BasisElement_writeauthorisation where ListID=param_ListID and ProfileID=0;

					return param_ListID;
--				ELSE
--					return 0;
--				END IF;

			-- Liste ist nicht vorhanden
			ELSE
				set param_ListID=(select max(ListID) as ListID from losp_BasisElement_writeauthorisation)+1;
				INSERT INTO losp_BasisElement_writeauthorisation (ListID, ProfileID) VALUES (param_ListID, param_FirstRightProfileID);
				return param_ListID;
			END IF;

		return 0;
 	END;
$
DELIMITER  ;

select 'CREATE FUNCTION resetAndInsertFirstReadRightToList(...) RETURNS INT';
DROP FUNCTION IF EXISTS resetAndInsertFirstReadRightToList;
DELIMITER '$';
	CREATE FUNCTION resetAndInsertFirstReadRightToList(param_RequestProfileID int, param_ListID int, param_FirstRightProfileID int )
	RETURNS INT
	DETERMINISTIC
	BEGIN
--		DECLARE var_Right INT;
--		SET var_Right=0;

			-- Liste ist vorhanden
			IF param_ListID>0 THEN
--				SET var_Right=(select ProfileID from losp_BasisElement_readauthorisation where ListID=param_ListID and ProfileID=param_RequestProfileID);

--				IF var_Right=param_RequestProfileID THEN


					-- insert tmp 0 in writelist
					INSERT INTO losp_BasisElement_readauthorisation (ListID, ProfileID) VALUES (param_ListID, 0);
					-- delete all entrys (without tmp entry)
					DELETE FROM losp_BasisElement_readauthorisation where ListID=param_ListID and ProfileID!=0;
					-- insert the param_FirstRightProfileID
					INSERT INTO losp_BasisElement_readauthorisation (ListID, ProfileID) VALUES (param_ListID, param_FirstRightProfileID);
					-- delete tmp 0 from writelist
					DELETE FROM losp_BasisElement_readauthorisation where ListID=param_ListID and ProfileID=0;

					return param_ListID;
--				ELSE
--					return 0;
--				END IF;

			-- Liste ist nicht vorhanden
			ELSE
				set param_ListID=(select max(ListID) as ListID from losp_BasisElement_readauthorisation)+1;
				INSERT INTO losp_BasisElement_readauthorisation (ListID, ProfileID) VALUES (param_ListID, param_FirstRightProfileID);
				return param_ListID;
			END IF;

		return 0;
 	END;
$
DELIMITER  ;






select 'CREATE FUNCTION resetAndInsertFirstReadProfileCollectionBEToList(...) RETURNS INT';
DROP FUNCTION IF EXISTS resetAndInsertFirstReadProfileCollectionBEToList;
DELIMITER '$';
	CREATE FUNCTION resetAndInsertFirstReadProfileCollectionBEToList(param_RequestProfileID int, param_PCListID int, param_ProfileCollectionID int )
	RETURNS INT
	DETERMINISTIC
	BEGIN
		DECLARE var_Right INT;
		SET var_Right=0;

			-- Liste ist vorhanden
			IF param_PCListID>0 THEN
--	--				SET var_Right=(select ProfileCollectionID from losp_BasisElement_profilecollection_readauthorisation where PCListID=param_PCListID and ProfileID=param_RequestProfileID);
--					SET var_Right=(select AttachID from losp_BasisClipboard inner join losp_BasisElement_profilecollection_writeauthorisation on ProfileCollectionID=PartOfID
--											where
--	--
--	--											kann aus performance gründen auch gleich die id 27 bekommen	100402 @f
--	--
--												PartOfObjVarID=(select PartOfObjVarID from losp_BasisClipboard_objvar where PartOfObjVar='MemberProfileBC' )
--													and PCListID=param_PCListID and AttachID=param_RequestProfileID
--					);
--
--					IF var_Right=param_RequestProfileID THEN


					-- insert tmp 0 in writelist
					INSERT INTO losp_BasisElement_profilecollection_readauthorisation (PCListID, ProfileCollectionID) VALUES (param_PCListID, 0);
					-- delete all entrys (without tmp entry)
					DELETE FROM losp_BasisElement_profilecollection_readauthorisation where PCListID=param_PCListID and ProfileCollectionID!=0;
					-- insert the param_ProfileCollectionID
					INSERT INTO losp_BasisElement_profilecollection_readauthorisation (PCListID, ProfileCollectionID) VALUES (param_PCListID, param_ProfileCollectionID);
					-- delete tmp 0 from writelist
					DELETE FROM losp_BasisElement_profilecollection_readauthorisation where PCListID=param_PCListID and ProfileCollectionID=0;

					return param_PCListID;
--					ELSE
--						return 0;
--					END IF;
--
			-- Liste ist nicht vorhanden
			ELSE
				set param_PCListID=(select max(PCListID) as PCListID from losp_BasisElement_profilecollection_readauthorisation)+1;
				INSERT INTO losp_BasisElement_profilecollection_readauthorisation (PCListID, ProfileCollectionID) VALUES (param_PCListID, param_ProfileCollectionID);
				return param_PCListID;
			END IF;

		return 0;
 	END;
$
DELIMITER  ;


select 'CREATE FUNCTION resetAndInsertFirstWriteProfileCollectionBEToList(...) RETURNS INT';
DROP FUNCTION IF EXISTS resetAndInsertFirstWriteProfileCollectionBEToList;
DELIMITER '$';
	CREATE FUNCTION resetAndInsertFirstWriteProfileCollectionBEToList(param_RequestProfileID int, param_PCListID int, param_ProfileCollectionID int )
	RETURNS INT
	DETERMINISTIC
	BEGIN
		DECLARE var_Right INT;
		SET var_Right=0;

			-- Liste ist vorhanden
			IF param_PCListID>0 THEN
--	--				SET var_Right=(select ProfileCollectionID from losp_BasisElement_profilecollection_writeauthorisation where PCListID=param_PCListID and ProfileID=param_RequestProfileID);
--					SET var_Right=(select AttachID from losp_BasisClipboard inner join losp_BasisElement_profilecollection_writeauthorisation on ProfileCollectionID=PartOfID
--											where
--	--
--	--											@todo kann aus @performance gründen auch gleich die id 27 bekommen	100402 @f
--	--
--												PartOfObjVarID=(select PartOfObjVarID from losp_BasisClipboard_objvar where PartOfObjVar='MemberProfileBC' )
--													and PCListID=param_PCListID and AttachID=param_RequestProfileID
--					);
--
--					IF var_Right=param_RequestProfileID THEN


					-- insert tmp 0 in writelist
					INSERT INTO losp_BasisElement_profilecollection_writeauthorisation (PCListID, ProfileCollectionID) VALUES (param_PCListID, 0);
					-- delete all entrys (without tmp entry)
					DELETE FROM losp_BasisElement_profilecollection_writeauthorisation where PCListID=param_PCListID and ProfileCollectionID!=0;
					-- insert the param_ProfileCollectionID
					INSERT INTO losp_BasisElement_profilecollection_writeauthorisation (PCListID, ProfileCollectionID) VALUES (param_PCListID, param_ProfileCollectionID);
					-- delete tmp 0 from writelist
					DELETE FROM losp_BasisElement_profilecollection_writeauthorisation where PCListID=param_PCListID and ProfileCollectionID=0;

					return param_PCListID;
--					ELSE
--						return 0;
--					END IF;

			-- Liste ist nicht vorhanden
			ELSE
				set param_PCListID=(select max(PCListID) as PCListID from losp_BasisElement_profilecollection_writeauthorisation)+1;
				INSERT INTO losp_BasisElement_profilecollection_writeauthorisation (PCListID, ProfileCollectionID) VALUES (param_PCListID, param_ProfileCollectionID);
				return param_PCListID;
			END IF;

		return 0;
 	END;
$
DELIMITER  ;


--	select 'CREATE FUNCTION resetAndInsertFirstRightsForBasisElement(...) RETURNS INT';
--	DROP FUNCTION IF EXISTS resetAndInsertFirstRightsForBasisElement;
--	DELIMITER '$';
--		CREATE FUNCTION resetAndInsertFirstRightsForBasisElement(param_RequestProfileID int, param_BEID int, param_FirstAuthReadPID int, param_FirstAuthWritePID int, param_FirstAuthReadPCID int, param_FirstAuthWritePCID int )
--		RETURNS INT
--		DETERMINISTIC
--		BEGIN
--			DECLARE var_Right INT;
--			SET var_Right=0;
--
--			-- BasisElement ist vorhanden
--			IF param_BEID>0 THEN
--
--			-- BasisElement ist nicht vorhanden
--			ELSE
--
--			END IF;
--
--			return 0;
--		END;
--	$
--	DELIMITER  ;