35 lines
1.3 KiB
SQL
35 lines
1.3 KiB
SQL
DROP PROCEDURE IF EXISTS PresentVersion;
|
|
DELIMITER //
|
|
CREATE PROCEDURE PresentVersion
|
|
(
|
|
IN p_sid INT,
|
|
IN p_password TEXT,
|
|
IN p_vid INT,
|
|
OUT outputCode INT(11),
|
|
OUT o_su INT(1),
|
|
OUT o_ssu INT(1),
|
|
OUT o_langageID INT,
|
|
OUT o_projectName VARCHAR(255),
|
|
OUT o_name VARCHAR(255),
|
|
OUT o_fileAccessibility INT,
|
|
OUT o_projectID INT,
|
|
OUT o_tags INT
|
|
|
|
)
|
|
MODIFIES SQL DATA
|
|
BEGIN
|
|
|
|
CALL `CheckIdLogin`(p_sid,p_password, outputCode);
|
|
IF outputCode = 42 OR outputCode = 2005 THEN
|
|
SET outputCode := (SELECT (CASE WHEN (SELECT CheckInGroup(p_sid,authorizedGroupId) = 42 OR CheckInGroup(p_sid,secondaryOwnersGroupId) = 42 OR p_sid = ownerID FROM projets INNER JOIN versions ON versions.projectID = projets.ID WHERE versions.ID = p_vid) THEN 42 ELSE 2018 END));
|
|
IF outputCode = 42 THEN
|
|
|
|
SELECT CheckInGroup(p_sid,projets.secondaryOwnersGroupId) = 42 OR projets.ownerID = p_sid, projets.ownerID = p_sid, versions.languageID, projets.name,versions.name,versions.fileAccessibility,projets.ID,versions.tags INTO o_su,o_ssu,o_langageID,o_projectName,o_name,o_fileAccessibility,o_projectID,o_tags FROM projets INNER JOIN versions ON versions.projectID = projets.ID WHERE versions.ID = p_vid;
|
|
INSERT INTO verzions SELECT languageID AS language, ID, name FROM versions WHERE projectID = o_projectID;
|
|
|
|
END IF;
|
|
END IF;
|
|
|
|
END//
|
|
DELIMITER ;
|