bcom/sql/getPublicProjectsForPresentation.sql

20 lines
753 B
SQL

DROP PROCEDURE IF EXISTS GetPublicProjectsForPresentation;
DELIMITER //
CREATE PROCEDURE GetPublicProjectsForPresentation
(
IN p_sid TEXT,
IN p_password TEXT,
OUT outputCode INT(11)
)
MODIFIES SQL DATA
BEGIN
CALL `CheckIdLogin`(p_sid,p_password, outputCode);
IF outputCode = 42 OR outputCode = 2005 THEN
SET outputCode = 42;
INSERT INTO projects SELECT p.ID AS projectID, p.name AS projectName, v.ID AS versionID , v.name AS versionName FROM projets AS p LEFT JOIN versions AS v ON p.ID = v.projectID WHERE (p.ownerID = 1 OR CheckInGroup(1,p.secondaryOwnersGroupID) = 42 OR CheckInGroup(1,p.authorizedGroupID) = 42) AND (v.ID IS NULL OR v.versionAbs = (SELECT MAX(versionAbs) FROM versions WHERE projectID = p.ID));
END IF;
END//
DELIMITER ;