Groups
Groups internal procedures
DROP PROCEDURE Base_Groups_Create;
DELIMITER //
CREATE PROCEDURE Base_Groups_Create
(
$Sid TEXT,
$group_name TEXT,
$group_code TEXT
)
SQL SECURITY INVOKER
COMMENT 'EXPORTABLE'
BEGIN
CALL _Base_Users_Authorise_Sessionid( $Sid, @email, @USER, @idtype );
IF @@read_only THEN
CALL Error( 'READ_ONLY' );
ELSEIF NOT @USER THEN
CALL Notice( 'Base_Groups_Create: INVALID_AUTHORISATION' );
ELSE BEGIN
DECLARE $GROUP_ID INT DEFAULT 0;
CALL spgen_base_groups_replace
(
@USER,
$GROUP_ID,
$group_name,
$group_code
);
END; END IF;
END
//
DELIMITER ;
Groups members internal
DROP PROCEDURE Base_Groups_Members_Add;
DELIMITER //
CREATE PROCEDURE Base_Groups_Members_Add
(
$Sid CHAR(64),
$GROUP_ID INT,
$USER INT,
$group_admin BOOL
)
SQL SECURITY INVOKER
BEGIN
CALL _Base_Users_Authorise_Sessionid( $Sid, @email, @USER, @idtype );
IF @@read_only THEN
CALL Error( 'READ_ONLY' );
ELSEIF NOT @USER THEN
CALL Notice( 'Base_Groups_Members_Add: INVALID_AUTHORISATION' );
ELSEIF "ADMIN" != @idtype AND NOT EXISTS
(
SELECT *
FROM base_groups
WHERE GROUP_ID = $GROUP_ID
AND GROUP_OWNER = @USER
)
THEN
CALL Notice( 'Base_Groups_Members_Add: INVALID_PARAMETERS' );
ELSE BEGIN
DECLARE $GROUP_MEMBER_ID INT DEFAULT 0;
CALL spgen_base_groups_members_replace
(
$USER,
$GROUP_ID,
$GROUP_MEMBER_ID,
$group_admin
);
END; END IF;
END
//
DELIMITER ;