DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`user_getMysqlRole`(vUserName VARCHAR(255)) RETURNS varchar(255) CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci DETERMINISTIC BEGIN /** * From a username, it returns the associated MySQL wich should be used when * using external authentication systems. * * @param vUserName The user name * @return The associated MySQL role */ DECLARE vRole VARCHAR(255); SELECT CONCAT(IF(r.hasLogin, c.rolePrefix, ''), r.name) INTO vRole FROM role r JOIN user u ON u.role = r.id JOIN roleConfig c WHERE u.name = vUserName; RETURN vRole; END$$ DELIMITER ;