Exemplo n.º 1
0
        /// <summary>
        /// Metoda koja prihvaća username i status korisnika kojem se želi promijeniti status u otključani ili zaključani račun.
        /// Šalje odgovarajuće podatke prema serveru te će se na serveru izvršiti sama promjena statusa.
        /// </summary>
        /// <param name="username"></param>
        /// <param name="status"></param>
        private void PromijeniStatus(string username, string status)
        {
            korisnik          = new Korisnik();
            korisnik.Username = username;
            if (status == "Otključan")
            {
                korisnik.Status = 0;
            }
            else
            {
                korisnik.Status = 1;
            }

            klijent = new TcpKlijent();
            klijent.PosaljiServeru(korisnik, "OtkljucajZakljucaj");
            listaKorisnika = (ListaKorisnika)klijent.PrimiOdServera();


            tablicaKorisnici.Rows.Clear();
            tablicaKorisnici.Refresh();
            for (int i = 0; i < listaKorisnika.Korisnici.Count; i++)
            {
                korisnik = listaKorisnika.Korisnici[i];
                int rowIndex = tablicaKorisnici.Rows.Add(korisnik.Username, korisnik.Ime, korisnik.Prezime, korisnik.DohvatiStatus());
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Event handler koji se aktivira prilikom klika na gumb za registraciju, šalju se uneseni podaci prema serveru, čeka
        /// se na odgovor servera. Postoje 2 slučaja u odgovoru - postojeći korisnik - ostajemo na registracijskoj formi te
        /// neposotojeći korisnik (može se registrirati) - povratak na login formu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gumbRegistracija_Click(object sender, EventArgs e)
        {
            if (ValidateForm() == true)
            {
                Korisnik registrirani = new Korisnik();
                Korisnik trenutni     = new Korisnik();
                PridruziPodatkeKorisniku(trenutni);
                TcpKlijent klijent = new TcpKlijent();
                klijent.PosaljiServeru(trenutni, "REGISTRACIJA");

                UspjehRegistracije uspjeh = new UspjehRegistracije();
                uspjeh = (UspjehRegistracije)klijent.PrimiOdServera();

                if (uspjeh.PotvrdaKorisnika == 0)
                {
                    MessageBox.Show("Korisnik već postoji, odaberite drugo korisničko ime");
                }
                else
                {
                    glavnaForma.NotifyMe(registrirani); //odi na login formu
                }
            }
            else
            {
                MessageBox.Show("Postoje neispravni podaci na formi - provjerite ih!");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Event Handler koji se aktivira prilikom klika na gumb Login - validira se unos i šalju se podaci prema serveru te
        /// se čeka odgovor od strane servera. Postoje 3 slučaja - obavještava se glavna forma sa praznim korisničkim podacima
        /// što znači da su podaci neispravni, obavještava se glavna forma sa ispravnim korisničkim podacima te se korisnik
        /// prijavljuje u aplikaciju, a 3. slučaj odnosi se na otvaranje 2fa forme kako bi se potvrdila prijava unosom 2fa koda.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gumbLogin_Click(object sender, EventArgs e)
        {
            if (Validacija() == false)
            {
                MessageBox.Show(validacijskaPoruka);
                return;
            }

            Korisnik trenutniKorisnik = new Korisnik();

            trenutniKorisnik.Username = unosUsername.Text;
            trenutniKorisnik.Password = unosPassword.Text;

            try
            {
                TcpKlijent klijent = new TcpKlijent();
                klijent.PosaljiServeru(trenutniKorisnik, "PRIJAVA");
                trenutniKorisnik = null;
                trenutniKorisnik = (Korisnik)klijent.PrimiOdServera();
                if (trenutniKorisnik.Kljuc2FA == "DA")
                {
                    Forma2FA forma2FA = new Forma2FA(trenutniKorisnik, glavnaForma);
                    forma2FA.Show();
                }
                else
                {
                    glavnaForma.NotifyMe(trenutniKorisnik);
                }
            }
            catch
            {
                return;
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Event handler koji se aktivira prilikom klika na gumb Enkriptiraj i Pošalji. Poruci se pridružuje primatelj, pošiljatelj
        /// te datum slanja zajedno sa sadrzajem. Sa pomoću javnoga ključa formira se enkripcijski paket poruke te se takva poruka šalje
        /// prema serveru. Čeka se odgovor servera koji predstavlja Uspjeh Slanja Poruke - je li poruka poslana ili nije.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gumbPosalji_Click(object sender, EventArgs e)
        {
            string sadrzaj;
            string javniKljuc;

            klijent = new TcpKlijent();
            Poruka novaPoruka = new Poruka();

            novaPoruka.Posiljatelj = prijavljeniKorisnik.Username;
            novaPoruka.Primatelj   = odabirUsername.Text;
            novaPoruka.DatumSlanja = DateTime.Now;
            sadrzaj    = unosSadrzaj.Text;
            javniKljuc = novaLista.Korisnici.Where(i => i.Username == novaPoruka.Primatelj).Select(p => p.JavniKljuc).First();
            novaPoruka.FormirajEnkripcijskiPaket(sadrzaj, javniKljuc);

            klijent.PosaljiServeru(novaPoruka, "PosaljiPoruku");
            uspjeh = (UspjehSlanjaPoruke)klijent.PrimiOdServera();
            if (uspjeh.PorukaPoslana == "DA")
            {
                prikazLog.Text += "Vrijeme: " + DateTime.Now.ToString() + " - Poruka poslana" + Environment.NewLine;
            }
            else
            {
                prikazLog.Text += "Vrijeme: " + DateTime.Now.ToString() + " - Poruka nije poslana" + Environment.NewLine;
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Metoda koja dohvaća korisnike aplikacije kako bi im se mogla poslati datoteka
 /// </summary>
 private void DohvatiKorisnike()
 {
     listaKorisnika = new ListaKorisnika();
     klijent        = new TcpKlijent();
     klijent.PosaljiServeru(listaKorisnika, "DohvatiKorisnike");
     listaKorisnika                    = (ListaKorisnika)klijent.PrimiOdServera();
     odabirKorisnik.DataSource         = listaKorisnika.IzdvojiKorisnickaImena();
     odabirKorisnik.AutoCompleteSource = AutoCompleteSource.ListItems;
 }
Exemplo n.º 6
0
        /// <summary>
        /// Dohvaća podatke sa forme i šalje ih prema serveru radi ažuriranja podataka
        /// </summary>
        private void DohvatiIPosalji()
        {
            TcpKlijent klijent = new TcpKlijent();

            prijavljeniKorisnik.Ime          = urediIme.Text;
            prijavljeniKorisnik.Prezime      = urediPrezime.Text;
            prijavljeniKorisnik.Email        = urediEmail.Text;
            prijavljeniKorisnik.BrojTelefona = "+385" + urediBrojTelefona.Text;
            klijent.PosaljiServeru(prijavljeniKorisnik, "UrediPodatke");
            prijavljeniKorisnik = (Korisnik)klijent.PrimiOdServera();
        }
Exemplo n.º 7
0
        /// <summary>
        /// Konstruktor forme SlanjePoruka - prilikom inicijalizacije forme dohvaća se lista korisnika aplikacije
        /// </summary>
        /// <param name="glavna"></param>
        /// <param name="korisnik"></param>
        public SlanjePoruka(Form1 glavna, Korisnik korisnik)
        {
            InitializeComponent();
            Dizajner.FormaBezOkna(this);
            glavnaForma         = glavna;
            prijavljeniKorisnik = korisnik;

            klijent   = new TcpKlijent();
            novaLista = new ListaKorisnika();
            klijent.PosaljiServeru(novaLista, "DohvatiKorisnike");
            novaLista = (ListaKorisnika)klijent.PrimiOdServera();
            odabirUsername.DataSource = novaLista.IzdvojiKorisnickaImena();
        }
Exemplo n.º 8
0
        /// <summary>
        /// Metoda koja dohvaća korisnike i prikazuje ih u tablicki korisnika te admin može mijenjati status računa pojedinog korisnika
        /// </summary>
        private void DohvatiKorisnike()
        {
            klijent        = new TcpKlijent();
            listaKorisnika = new ListaKorisnika();
            klijent.PosaljiServeru(listaKorisnika, "DohvatiKorisnike");
            listaKorisnika = (ListaKorisnika)klijent.PrimiOdServera();


            tablicaKorisnici.Rows.Clear();
            tablicaKorisnici.Refresh();
            for (int i = 0; i < listaKorisnika.Korisnici.Count; i++)
            {
                korisnik = listaKorisnika.Korisnici[i];
                int rowIndex = tablicaKorisnici.Rows.Add(korisnik.Username, korisnik.Ime, korisnik.Prezime, korisnik.DohvatiStatus());
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Event Handler koji se kativira klikom na gumb posalji, tj šalje se 2fa kod (koji je
        /// prethodno stigao na mobilni telefon) putem forme prema serveru.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gumbPosalji_Click(object sender, EventArgs e)
        {
            poslanoKorisnik.Kljuc2FA = unosKod.Text;
            TcpKlijent klijent = new TcpKlijent();

            klijent.PosaljiServeru(poslanoKorisnik, "Potvrda2FA");
            primljenoKorisnik = (Korisnik)klijent.PrimiOdServera();
            if (primljenoKorisnik.Username == null)
            {
                MessageBox.Show("Niste unijeli ispravni 2FA Kod. Pokušajte ponovno!");
            }
            else
            {
                glavnaForma.NotifyMe(primljenoKorisnik);
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Event Handler koji se aktivira prilikom klika na određeni tab u formi. Ovisno na koji se tab klikne
        /// šalju se odgovarajući podaci prema serveru na temelju kojih se dohavaćaju poslane ili primljene poruke.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tabKontrola_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (tabKontrola.SelectedIndex == 1)
            {
                dataGridViewPoslano.Rows.Clear();
                dataGridViewPoslano.Refresh();
                klijent              = new TcpKlijent();
                listaPoruka          = new ListaPoruka();
                listaPoruka.Username = prijavljeniKorisnik.Username;
                klijent.PosaljiServeru(listaPoruka, "DohvatiPoslanePoruke");
                listaPoruka        = (ListaPoruka)klijent.PrimiOdServera();
                listaPoruka.Poruke = listaPoruka.Poruke.OrderByDescending(x => x.DatumSlanja).ToList();

                for (int i = 0; i < listaPoruka.Poruke.Count; i++)
                {
                    Poruka            poruka = listaPoruka.Poruke[i];
                    EnkripcijskiPaket paket  = listaPoruka.Poruke[i].Paket;
                    dataGridViewPoslano.Rows.Add(poruka, poruka.Posiljatelj, poruka.Primatelj, poruka.DatumSlanja, paket.EnkriptiraniKljuc, paket.EnkriptiraniPodaci, Convert.ToBase64String(paket.Iv));
                }
            }

            if (tabKontrola.SelectedIndex == 0)
            {
                dataGridViewPrimljeno.Rows.Clear();
                dataGridViewPrimljeno.Refresh();
                klijent              = new TcpKlijent();
                listaPoruka          = new ListaPoruka();
                listaPoruka.Username = prijavljeniKorisnik.Username;
                klijent.PosaljiServeru(listaPoruka, "DohvatiPrimljenePoruke");
                listaPoruka        = (ListaPoruka)klijent.PrimiOdServera();
                listaPoruka.Poruke = listaPoruka.Poruke.OrderByDescending(x => x.DatumSlanja).ToList();

                for (int i = 0; i < listaPoruka.Poruke.Count; i++)
                {
                    Poruka            poruka = listaPoruka.Poruke[i];
                    EnkripcijskiPaket paket  = listaPoruka.Poruke[i].Paket;
                    dataGridViewPrimljeno.Rows.Add("", poruka, poruka.Posiljatelj, poruka.Primatelj, poruka.DatumSlanja, paket.EnkriptiraniKljuc, paket.EnkriptiraniPodaci, Convert.ToBase64String(paket.Iv));
                }
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Konstuktor FormePregled koji inicijalizira formu, oblikuje gridview te odmah dohvaća primljenje poruke korisnika s obzirom
        /// da je tab aktivan prilikom inicijalizacije forme
        /// </summary>
        /// <param name="forma"></param>
        /// <param name="korisnik"></param>
        public FormaPregled(Form1 forma, Korisnik korisnik)
        {
            InitializeComponent();
            Dizajner.FormaBezOkna(this);
            glavnaForma         = forma;
            prijavljeniKorisnik = korisnik;
            FormirajDataGridove();

            klijent              = new TcpKlijent();
            listaPoruka          = new ListaPoruka();
            listaPoruka.Username = prijavljeniKorisnik.Username;
            klijent.PosaljiServeru(listaPoruka, "DohvatiPrimljenePoruke");
            listaPoruka        = (ListaPoruka)klijent.PrimiOdServera();
            listaPoruka.Poruke = listaPoruka.Poruke.OrderByDescending(x => x.DatumSlanja).ToList();

            for (int i = 0; i < listaPoruka.Poruke.Count; i++)
            {
                Poruka            poruka = listaPoruka.Poruke[i];
                EnkripcijskiPaket paket  = listaPoruka.Poruke[i].Paket;
                dataGridViewPrimljeno.Rows.Add("", poruka, poruka.Posiljatelj, poruka.Primatelj, poruka.DatumSlanja, paket.EnkriptiraniKljuc, paket.EnkriptiraniPodaci, Convert.ToBase64String(paket.Iv));
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// Event Handler koji se aktivira kada se klikne na gumb Pošalji, tj. kada se posalje adminska poruka na server
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gumbPosalji_Click(object sender, EventArgs e)
        {
            mail         = new AdminMail();
            mail.Sadrzaj = unosPoruka.Text;
            try
            {
                klijent = new TcpKlijent();
                klijent.PosaljiServeru(mail, "AdminMail");
                mail = (AdminMail)klijent.PrimiOdServera();

                if (mail.Status == 1)
                {
                    prikazLog.Text += "Vrijeme: " + DateTime.Now + " -> Poruka poslana!" + Environment.NewLine;
                }
                else
                {
                    prikazLog.Text += "Vrijeme: " + DateTime.Now + " -> Poruka nije poslana. Pokušajte kasnije!" + Environment.NewLine;
                }
            }
            catch
            {
                return;
            }
        }