Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created September 9, 2022 16:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/0a9e91fb45cbd36aac593689083e42a0 to your computer and use it in GitHub Desktop.
Save parzibyte/0a9e91fb45cbd36aac593689083e42a0 to your computer and use it in GitHub Desktop.
/*
Recibe un apuntador a un apuntador de un NodoDeCliente en donde se desea colocar el usuario logueado, el inicio de la lista de clientes, el correo y la contraseña
Regresa 1 o 0 indicando si el correo y la contraseña coinciden.
Además, en caso de que el inicio de sesión sea correcto pondrá el usuario logueado en usuarioLogueado
*/
int iniciarSesionUsuario(struct NodoDeCliente **usuarioLogueado, struct NodoDeCliente *nodo, char *correoElectronico, char *palabraSecreta)
{
while (nodo != NULL)
{
if (strcmp(nodo->correoElectronico, correoElectronico) == 0 && strcmp(nodo->palabraSecreta, palabraSecreta) == 0)
{
if (nodo->habilitado == ESTADO_DESHABILITADO)
{
printf("Credenciales correctas, pero el usuario esta deshabilitado\n");
return 0;
}
*usuarioLogueado = nodo;
return 1;
}
nodo = nodo->siguiente;
}
return 0;
}
int menuIngresarUsuario(struct NodoDeCliente **apuntadorListaClientes, struct NodoDeCliente *clienteLogueado)
{
char palabraSecreta[MAXIMA_LONGITUD_CADENA] = "";
char correoElectronico[MAXIMA_LONGITUD_CADENA] = "";
leerCorreoElectronico(correoElectronico);
leerPalabraSecreta(palabraSecreta);
int ok = iniciarSesionUsuario(&clienteLogueado, *apuntadorListaClientes, correoElectronico, palabraSecreta);
if (!ok)
{
printf("Correo o palabra secreta incorrectos\n");
}
else
{
printf("Bienvenido, %s\n", clienteLogueado->nombre);
menuUsuario(apuntadorListaClientes, clienteLogueado);
}
return ok;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment