int menu_principal(Usuario sesion){ /* Menu pricipal según perfil de usuario */ int opcion = 1; list<Permiso> mis_permisos = sesion.permisos; list<Permiso>::iterator it; while (opcion!=0){ it = mis_permisos.begin(); //Mostrando la lista de modulos segun permisos cout << "+---------------------+"<< endl; cout << "|---MENU PRINCIPAL----|"<< endl; cout << "+---------------------+"<< endl; cout << "|" + pull_left(" 0 SALIR.",21)+ "|"<< endl; while(it != mis_permisos.end()){ cout << "| " << pull_left(it->codigo + " " + it->descripcion + ".",20) << "|"<< endl; it++; } cout << "+---------------------+"<< endl; cout << "Seleccionar:"; cin >> opcion; if (sesion.tiene_permiso(opcion)){ switch(opcion){ case 0 : salir(); break; case 1 : inicio(); break; case 2 : pedidos(); break; case 3 : pagos(); break; case 4 : stock(); break; case 5 : finanzas(); break; case 6 : cout << "Modulo de mantenimiento" << endl; mantenimiento(sesion); break; case 7 : miscelaneos(); break; default: cout << "Opcion inválida." << endl; } }else{ if (opcion!=0){ cout << "Ingrese una opción válida." << endl; }else{ salir(); } } } return 1; };