jmueller17 / Aixada

Aixada helps self-managed consumption cooperatives to organize their flow of products, money, and information.
Other
33 stars 37 forks source link

Error MySQL #1260 in GROUP_CONCAT() function #228

Closed davidromani closed 5 years ago

davidromani commented 6 years ago

Hola.

Al hacer clic sobre una UF de la lista que aparece en la URL /manage_ufmember.php me aparece el siguiente error.

error_1260

jorix commented 6 years ago

El el procedimiento get_member_info usa el get_products_of_member, ya reportado en #226 . El dato devuelto por get_products_of_member es de escasa utilidad y puede hacerse un bypass como se comentó.

Por otro lado en todas las pruebas que he hecho no he podido reproducir el error. Sigo perdido, casi estoy tentado de proponer suprimir el dato "Productos del que soy responsable" de manage_ufmember.php que es el único sitio donde se usa.

@jmueller17 : ¿Tiene alguna idea sobre esto?

jmueller17 commented 6 years ago

Por mi sí, si resuelve el problema.

jorix commented 6 years ago

@davidromani

Antes de proponer un PR puedes confirmarnos que ya no te falla después de ejecutar este sql

delimiter |
drop procedure if exists get_member_info|
create procedure get_member_info (in the_member_id int, in the_uf_id int)
begin

    declare wherec varchar(255) default '';
    set wherec = if(the_uf_id>0, concat("uf.id=", the_uf_id),concat("mem.id=",the_member_id)); 

    -- NOTE: It no longer shows the products of a member.
    set @q = concat("select
            mem.*,
            uf.id as uf_id, 
            uf.name as uf_name, 
            uf.mentor_uf,
            u.id as user_id,
            u.login, 
            u.email,
            u.last_login_attempt,
            u.last_successful_login,
            u.language,
            u.gui_theme,
            get_roles_of_member(mem.id) as roles,
            get_providers_of_member(mem.id) as providers,
            null as products
        from 
            aixada_member mem, 
            aixada_user u, 
            aixada_uf uf
        where
            ",wherec,"
            and mem.uf_id = uf.id           
            and u.member_id = mem.id");

    prepare st from @q;
    execute st;
    deallocate prepare st;

end|
jorix commented 5 years ago

@davidromani Esto está arreglado en master con el PR #244