Meeskond "Liivimaa keskmised": Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mvellama (talk | contribs)
Mvellama (talk | contribs)
Line 39: Line 39:
===Kasutajate ja nende rollide haldus/kontroll===
===Kasutajate ja nende rollide haldus/kontroll===
Teenuse iga meetod, välja arvatud sisselogimine ja uue kasutaja loomine, tahavad saada kaasa kasutaja sessiooni ID. Selle sessiooni ID järgi saadakse teada kasutajanimi ning siis tehakse vastavad päringud andmebaasi, et saaks teada, millistes rollides kasutaja on (kontrollitakse ka rollide aegumist). Iga meetodi jaoks on seatud nõuded, millises rollis kasutaja olema peab (rollide kohta on tehtud ka enum). Kui kasutaja ei ole nõutud rollis, visatakse Exception:
Teenuse iga meetod, välja arvatud sisselogimine ja uue kasutaja loomine, tahavad saada kaasa kasutaja sessiooni ID. Selle sessiooni ID järgi saadakse teada kasutajanimi ning siis tehakse vastavad päringud andmebaasi, et saaks teada, millistes rollides kasutaja on (kontrollitakse ka rollide aegumist). Iga meetodi jaoks on seatud nõuded, millises rollis kasutaja olema peab (rollide kohta on tehtud ka enum). Kui kasutaja ei ole nõutud rollis, visatakse Exception:
''throw VeaHaldus.RaiseException("meetod", "http://tempuri.org/", "NOT AUTHORIZED: Ei ole vajalikke õigusi", "1",
      ''throw VeaHaldus.RaiseException("meetod", "http://tempuri.org/", "NOT AUTHORIZED: Ei ole vajalikke õigusi", "1",
                     "klass", VeaHaldus.FaultCode.Client);''
                     "klass", VeaHaldus.FaultCode.Client);''
Antud kood peaks välja andma korraliku nõuetele vastava SoapExceptioni (XML node jms).
Antud kood peaks välja andma korraliku nõuetele vastava SoapExceptioni (XML node jms).
Samuti kontrollib iga meetod, ega kasutaja sessioon ei ole aegunud, kui on, visatakse Exception:
Samuti kontrollib iga meetod, ega kasutaja sessioon ei ole aegunud, kui on, visatakse Exception:
''throw VeaHaldus.RaiseException("", "http://tempuri.org/", "SESSION EXPIRED: Kasutaja sessioon on aegunud", "1",
      ''throw VeaHaldus.RaiseException("", "http://tempuri.org/", "SESSION EXPIRED: Kasutaja sessioon on aegunud", "1",
               "", VeaHaldus.FaultCode.Client);''
               "", VeaHaldus.FaultCode.Client);''
Iga meetodi väljakutsumisega kaasneb kasutaja sessiooni pikendamine: hetkeaeg + 15 minutit.
Iga meetodi väljakutsumisega kaasneb kasutaja sessiooni pikendamine: hetkeaeg + 15 minutit.

Revision as of 00:07, 13 May 2010

Meeskonna liikmed

  • Indrek Ots
  • Mait Poska
  • Madis Vellamäe
  • Joosep Püüa
  • Toomas Talviste

Projekti ülesande püstitus

Lahenduseks on teenus, mis võimaldab vaadata/muuta/hallata valitud kohviku menüüd. Kõigele lisaks peab valmima seda teenust kasutav rakendus, mis töötab Windows Phone 7 Series platvormil. Lisaks menüüde haldamine teostatuna WPF rakendusena.

Teenuse funktsionaalsed nõuded

  • Vaadata menüüd valitud kohvikus
  • Luua uus menüü
  • Kustutada menüü
  • Lisada toode menüüsse
  • Eemaldada toode menüüst
  • Lisada uus toode baasi
  • Lisada uus toote liik baasi
  • Muuta toote staatust menüüs ("otsas" / "ei ole otsas")

Tööjaotus

Indrek Ots begin_of_the_skype_highlighting     end_of_the_skype_highlighting

Mait Poska

Madis Vellamäe

Mina tegin teenusele kasutajate halduse, sessiooni ja rollihalduse. Rakendusele treisin valikuaknad, kohviku kasutajatehalduse ning kohviku halduse, samuti ka teenuse administreerimisliidese. --Mvellama 00:36, 13 May 2010 (EEST)

Joosep Püüa

Toomas Talviste

Teenusest

Kasutajate ja nende rollide haldus/kontroll

Teenuse iga meetod, välja arvatud sisselogimine ja uue kasutaja loomine, tahavad saada kaasa kasutaja sessiooni ID. Selle sessiooni ID järgi saadakse teada kasutajanimi ning siis tehakse vastavad päringud andmebaasi, et saaks teada, millistes rollides kasutaja on (kontrollitakse ka rollide aegumist). Iga meetodi jaoks on seatud nõuded, millises rollis kasutaja olema peab (rollide kohta on tehtud ka enum). Kui kasutaja ei ole nõutud rollis, visatakse Exception:

      throw VeaHaldus.RaiseException("meetod", "http://tempuri.org/", "NOT AUTHORIZED: Ei ole vajalikke õigusi", "1",
                   "klass", VeaHaldus.FaultCode.Client);

Antud kood peaks välja andma korraliku nõuetele vastava SoapExceptioni (XML node jms). Samuti kontrollib iga meetod, ega kasutaja sessioon ei ole aegunud, kui on, visatakse Exception:

      throw VeaHaldus.RaiseException("", "http://tempuri.org/", "SESSION EXPIRED: Kasutaja sessioon on aegunud", "1",
              "", VeaHaldus.FaultCode.Client);

Iga meetodi väljakutsumisega kaasneb kasutaja sessiooni pikendamine: hetkeaeg + 15 minutit.

Log In

    public string logIn(string username, string password)
      {  }

Sisselogimiseks küsitakse kasutajanime ja parooli. Süsteem teeb vahet suurtel ja väikestel tähtedel. Antud meetod genereerib kasutajale unikaalse sessiooni ID (aluseks on võetud VR2 praktikum 9). Kõigepealt kasutaja autenditakse, selleks kontrollitakse vastu andmebaasi, kas kasutajanimi ning parool klapivad. Kusjuures, parool on andmebaasis SHA1 räsina, kuhu on visatud ka soola. Ühtlasi kontrollitakse ka, kas kasutaja on aktiivne - st ei ole kustutatud. Visatakse exception, kui kasutaja on aegunud või kui parool ja kasutajanimi ei klapi. Seejärel genereeritakse sessiooni ID RNGCryptoServiceProvider objekti poolt loodud 16 baidisele jadale toetudes.

     RNGCryptoServiceProvider random = new RNGCryptoServiceProvider();
       byte[] byteMassiiv = new byte[16];
       random.GetNonZeroBytes(byteMassiiv);
       Guid sessID = new Guid(byteMassiiv);

Kui see tehtud, siis salvestatakse sessioonide XML faili App_Data kaustas. Kirja pannakse sessiooni ID, kasutajanimi, kellele see kuulub, tema IP ja sessiooni aegumise aeg.