예제 #1
0
Usuario* ControladorSesion::pedirIdentificacion()
{
	string ci;

	cout << "Ingrese su CI (hasta 7 números, sin dígito de verificación) ";
	cout << "(o presione Enter para volver atrás):\n";
	cin >> ci;

	// Mientras la cédula ingresada no sea un entero, que vuelva a intentar
	while ((ci != "") && !this->esValidaCi(ci))
	{
		cout << "La cédula ingresada no es válida. Inténtelo nuevamente ";
		cout << "(o presione Enter para volver atrás):\n";
		cin >> ci;
	}
	
	if (ci == "")
	{
		return NULL;
	}
	
	// Buscar si existe el usuario con la cédula ingresada
	FabricaControladores* Fabrica = FabricaControladores::instancia();
	IControladorUsuario* cUsuario = Fabrica->getControladorUsuario();

	Usuario* usuario = cUsuario->findUsuario(ci);
	
	if (usuario == NULL)
	{
		cout << "No hay usuarios con esa cédula de identidad en el sistema.\n";
	}

	return usuario;
}
예제 #2
0
void ComandosUsuario::altaReactivacionUsuario()
{
	IControladorUsuario* cUsuario = FabricaControladores::instancia()->controladorUsuario()->instancia();
	bool exito;
	Usuario* newUser;
	
	do
		
	{
		exito = true;
		string ci;
		cout << "Ingrese la Cedula de Identidad del Usuario (o presione q para salir): " << endl;
		cin >> ci;

		if (ci=="q")
			return;

		if (cUsuario->findUsuario(ci) != NULL)
		{
			cout << "El usuario ya existe en el sistema. " << endl;
			Usuario* usuario = cUsuario->findUsuario(ci);
			cout << "Nombre: "   << usuario->getNombre() << endl;
			cout << "Apellido: " << usuario->getApellido() << endl;
			if (usuario->getGenero() == Genero::femenino)
				cout << "Sexo: Femenino" << endl;
			else
			{
				if (usuario->getGenero() == Genero::indeterminado)
					cout << "Sexo: Indeterminado" << endl;
				else
					cout << "Sexo: Masculino" << endl;
			}		

			cout << "Edad: " << usuario->edad() << endl;
			
			vector<Rol> roles;
			for (vector<Rol>::iterator it = usuario->roles().begin(); it != usuario->roles().end(); ++it)
			{
				Rol rol = *it;
			if (rol == Rol::admin)
				cout << "Rol: Admin" << endl;

			if (rol == Rol::medico)
				cout << "Rol: Medico" << endl;

			if (rol == Rol::socio)
				cout << "Rol: Socio" << endl;

			if (rol == Rol::master)
				cout << "Rol: Master" << endl;			
			}
			
			if (usuario->estaActivo())
				cout << "Estado: Activo" << endl;
//				roles.insert(roles.begin(), rol);	
			else
			{
				cout << "Estado: Inactivo" << endl;
				cout << "¿Desea reactivar el usuario? (y/n)?" << endl;
				string reactivar;
				cin >> reactivar;
				if (reactivar=="y")
				{
					usuario->activar();
					cout << "El usuario ha sido reactivado." << endl;
				}
			}	
		}
		else
		{
			string nombre;
			string apellido;
			Fecha fechaNac;
			string gen;
			string r1, r2;
			Genero genero;
			Roles roles {};

			cout << "Ingrese el nombre del Usuario: " << endl;
			cin >> nombre;

			cout << "Ingrese el apellido del Usuario: " << endl;
			cin >> apellido;

			cout << "Ingrese el sexo (M/f): " << endl;
			cin >> gen;

			if (gen=="f")
				genero = Genero::femenino;
			else
				genero = Genero::masculino;

			int dia, mes, anyo;

			cout << "Ingrese el dia del nacimiento: " << endl;
			cin >> dia;
			cout << "Ingrese el mes del nacimiento: " << endl;
			cin >> mes;
			cout << "Ingrese el anyo del nacimiento: " << endl;
			cin >> anyo;

			fechaNac = Fecha(dia, mes, anyo);

			cout << "Ingrese el primer rol [a(dmin), m(edico), s(ocio)]: " << endl;
			cin >> r1;

			cout << "Ingrese el segundo rol (n para omitir): " << endl;
			cin >> r2;
			
			if (r1 == "a")
			{
				roles.push_back(Rol::admin);
			}
			else if (r1 == "m")
			{
				roles.push_back(Rol::medico);
			}
			else // socio por defecto
			{
				roles.push_back(Rol::socio);
			}
			
			if (r2 == "a")
			{
				if (r1 == "m")
				{
					cout << "Error, el usuario no puede ser medico y administrativo a la vez." << endl;
					exito = false;
				}
				else
					roles.push_back(Rol::admin);
			}
			else if (r2 == "m")
			{	if (r1 == "a")
				{
					cout << "Error, el usuario no puede ser medico y administrativo a la vez." << endl;
					exito = false;
				}
				else
					roles.push_back(Rol::medico);
			}
			else if (r2 != "n") // socio por defecto
			{
				roles.push_back(Rol::socio);
			}
			
			if (exito)
			{
				newUser = cUsuario->altaUsuario(ci, nombre, apellido, genero, fechaNac, roles);
				cout << "El usuario fue dado de alta con exito." << endl;
			}
			else
				cout << "Ocurrió un error imprevisto." << endl;
		}
	}