Yleistä

Tämä ohje ei pyri olemaan kattava, vaan paremminkin tajunnanvirtaa kehitysosastolta ;)

ViHassa käytettyjä termejä:
TermiMerkitys
AlueMaantieteellinen alue, johon voi kuulua esimerkiksi operaatioita, kalustoa jne.
HenkilöLuonnollinen henkilö, joka ottaa osaa toimintaan. Henkilö voi kuulua korkeintaan yhteen ryhmään.
HälytysryhmäYhteen järjestöön kuuluvista henkilöistä koostuva ryhmä, joka ottaa osaa operaatioon.
JärjestöJokainen henkilö kuuluu yhteen järjestöön. Järjestöt saapuvat operaatioihin yksitellen.
OperaatioEtsintä, ensiapupäivystys tai vastaava tapahtuma. Operaatiossa voi olla mukana useita ryhmiä ja henkilöitä.
SijaintiRyhmä on aina jossakin paikassa, jota kuvataan termillä sijainti.
RyhmäOperaatiossa toimiva yksikkö, toimintaryhmä. Ryhmä kuuluu yhteen operaatioon.
TilaRyhmä ja henkilö ovat aina jossakin tilassa, joka kuvaa kulloinkin tapahtuvaa toimintaa. Ks. Tilat
KalustoViestivälineet ja tavarat (muu kalusto). Keskenään samanlaiset on eriteltävä tunnisteella (juokseva numero tms).
ViestivälineetRadiolaitteet ja muu sellainen kalusto, joka toimii pääasiallisesti yhdessä tietyssä viestiverkossa (esim. antennit)
TavaratKalusto, joka ei ole viestivälineitä.

Tekniikkaa

Tuotantoympäristössä ViHaa käytetään normaalisti SSL-suojatulla yhteydellä. Testiympäristössä ja tilanteen niin vaatiessa voidaan käyttää salaamatontakin yhteyttä.

Käyttäjätunnuksia ei välttämättä tarvita kuin yksi, mutta jäljitettävyyden takia olisi suotavaa että ne olisivat henkilö- tai roolikohtaisia. Sama käyttäjä voi ongelmitta käyttää järjestelmää monesta eri paikasta.

Ohjelmistoa on kehittänyt vuodesta 2003 saakka Riku Kalinen, OH2RK. Arvokasta palautetta on tullut kaikilta käyttäjiltä.

Ohjelmisto on palvelin-asiakaspohjainen. Asiakasohjelmistona voi toimia lähes mikä hyvänsä WWW-selain millä hyvänsä alustalla.

Käytettävän selaimen on tuettava evästeitä (cookies) ja taulukoita. Taulukoiden suhteen riittää, jos niiden sisältö pystytään näyttämään. Lähes kaikki markkinoilla olevat selaimet täyttävät nämä ehdot.

Palvelimessa käytetään Open Source - ratkaisuja (OpenBSD, Linux, MySQL, Apache, PHP).

CVS-jakelussa tagilla rel-* varustetut versiot ovat tuotantokelpoisia.

Tietokannan ja ohjelmaversion yhteensopivuus varmistetaan ja mikäli versiot eivät ole keskenään yhteensopivia, tulee tästä joko selkeä tai kryptinen virheilmoitus.

Jakelupaketissa tulevaa alusta - skriptiä käytetään kannan alustamiseen. Se osaa alustaa sekä tuotanto- että harjoitusympäristöt perusasetuksiin tai mallitiedoilla.

Turvallisuudesta

Järjestelmää ei ole rakennettu vihamielistä ympäristöä silmällä pitäen, eli kaikkien käyttäjien tulee olla luotettavia.

Erityisesti operaatiokohtaisia lisämateriaaleja ei ole pakotettu vain tietyn operaation käyttöön.

Järjestelmä pystyy huolehtimaan omin päin käyttäjätunnusten hallinnasta. On huomioitava että käyttäjänhallintakoodi on ajettava joka PHP-tiedoston alussa, esimerkiksi common.php:sta. Ainoa poikkeus tästä on logoff.php.

Salasanat talletetaan kantaan crypt()attuina. Salasana eikä salasanatiiviste ei voi olla tyhjä.

Käyttöoikeuksista

Käyttäjän käyttöoikeus operaatioon, kalustoon, henkilöstöön jne selvitetään seuraavassa järjestyksessä. Kun yhteen kohtaan tulee osuma, ei seuraavia enää tutkita:

  1. Jos käyttäjällä on pääkäyttäjän oikeudet (kayttaja.root), hänellä on pääsy.
  2. Jos käyttäjä on aluevastaava (paivystys.alue_id, kayttaja_alue), hänellä on pääsy.
  3. Jos käyttäjällä on oikeus operaatioon (kayttaja_paivystys), hänellä on pääsy.
  4. Muutoin käyttäjällä ei ole pääsyä.

Tämän tarkastuksen ja eräitä muita yleisiä tarkastuksia toteuttavat funktiot permission_ids(alue_id,paivystys_id) ja permission_tab(taulu,id), joiden paluuarvot ovat linjassa muiden tarkastusfunktioiden kanssa.

Käyttöoikeuksia voidaan määritellä kolmella tasolla:

  1. Käyttäjä voidaan määritellä pääkäyttäjäksi jolloin hänellä on pääsy kaikkialle ja oikeus jakaa kaikkia oikeuksia edelleen sekä oikeus perustaa ja muokata käyttäjätunnuksia.
  2. Ellei käyttäjä ole pääkäyttäjä, hän voi olla yhden tai useamman alueen aluevastaava. Aluevastaavalla on oikeus asettaa oikeuksia oman alueensa operaatioihin, mutta ei oikeutta jakaa aluevastaava- eikä pääkäyttäjäoikeuksia. Lisäksi hänellä on automaattisesti pääsy kaikkiin alueensa operaatioihin.
  3. Lisäksi käyttäjällä voi olla pääsy operaatioon. Tätä oikeutta ei voi luovuttaa edelleen.

Tietokantarivien oikeuksia tarkastellaan normaalikäyttäjälle seuraavasti:

  1. Jos alue_id == 2 (kaikki), rivi näkyy.
  2. Jos alue_id == oma ja paivystys_id == 2, rivi näkyy.
  3. Jos alue_id == oma ja paivystys_id == oma, rivi näkyy.
  4. Muuten rivi ei näy.

Sellaisissa näytöissä, joissa käsitellään vain yhteen operaatioon kuuluvia tietoja, näytetään vain kyseiseen operaatioon kuuluvat tiedot.

Alueiden olisi hyvä olla selvyyden vuoksi sellaisia, että ne eivät mene päällekkäin. Pakkoa tähän ei ole, mutta päällekkäin osuvat alueet vaikeuttavat käyttöoikeuksien hahmottamista.

Omien tila- ja sijaintikoodien valinnasta

Mikäli omia tila- ja/tai sijaintikoodeja luodaan, kannattaa muistaa seuraavat nyrkkisäännöt:

Monen operaation tuki

ViHa tukee useita operaatioita yhtä aikaa. Käyttäjän oikeuksista riippuu, mitä operaatioita hän näkee. Mikäli käyttäjällä on oikeus useampaan operaatioon, hän voi siirrellä lähes kaikkea tietoa näiden operaatioiden välillä. Oikeus käsitellä useampaa operaatiota tuo käyttäjälle laajemman päävalikon.

Operaatioista yksi on kulloinkin valittuna ja perustoiminnot kohdistuvat siihen.

Operaatiokohtaista materiaalia voidaan tallettaa sovelluksen juurihakemiston alla olevaan hakemistoon operaatio/id, missä id on operaation numerokoodi (paivystys.id). Jos tällainen hakemisto on olemassa, siellä olevat tiedostot näytetään päävalikossa. Näihin tiedostoihin ei ole tehty operaatiokohtaisia pääsyrajoituksia, eli sinne ei saa tallettaa tietoa jonka tulee pysyä vain yhden operaation tiedossa.

Ohjelman sisäisestä rakenteesta

Tietojen peruskäsittely

Tietojen peruskäsittelyä voidaan tehdä kahdella tasolla: taulu.php olettaa operaatioksi valitun ja alueeksi valitun operaation alueen. taulu0.php antaa mahdollisuuden käsitellä myös operaatiota ja aluetta. Tarkastusfunktiot huolehtivat siitä, että operaatio ja alue pysyvät keskenään synkronoituina.

Valintalistat

Valintalistat järjestetään normaalisti valittavan kohteen mukaan aakkosjärjestykseen. Jos listalla näytetään muutakin tietoa (alue, operaatio), järjestetään lista ensisijassa alueen, toissijaisesti operaation ja kolmanneksi valittavan kohteen mukaan.

Henkilön asemakoodit lajitellaan kuitenkin aina prioriteetin (=arvoasema) mukaan.

Päivityksistä

Päivitettäessä ViHaa versioon, joka aiheuttaa tietokannan muutoksen, tulee samalla ajaa kerran päivitysskripti, joka tekee kantaan vastaavat muutokset. Päivitysskriptit on nimetty kanta-v.vv.mysql. Vaihtoehtoisesti kannan voi alustaa kokonaan uudelleen mutta tällöin syötetyt tiedot häviävät.

Kantamuutosskriptejä ei voi jättää väliin vaan kaikki tarvittavat on ajettava järjestyksessä.

5.00

Päivitettäessä ViHaa aiemmista versioista 5.00:aan ja sen jälkeisiin versioihin on huomattava, että käyttäjätunnusten hallinta muuttuu kokonaan sovelluksen vastuulle. Www-palvelimesta on avattava pääsy ViHa-hakemistoon.

Päivitysskripti asettaa kaikille saman salasanan, joka käy ilmi itse skriptistä. Salasanat on syytä muuttaa mitä pikimmin.

Myös käyttöoikeuksien hallinta muuttuu. Oikeudet on syytä tarkastaa päivityksen jälkeen.

Päivitysskripti perustaa uuden alueen, "Määrittelemätön alue", johon sijoitellaan kaikki objektit jotka vaativat tietyn alueen. Tämä alue on tarkoitettu käytettäväksi siirtymäkaudella.

Tapahtumakirjaukset tulee käsin tai SQL:llä sijoittaa oikeisiin operaatioihin (ryhmän mukaan), mikäli ne kuuluvat operaatioihin, joiden ID-numero (4.14 version kannassa) on > 9. Pienemmillä ID-numeroilla varustetut operaatiot käsittelee päivitysskripti.

Käännöksestä

Tähän taulukkoon on koottu ViHan keskeisimpiä termejä eri kielillä.
SuomeksiIn English
AlueArea
HenkilöPerson
HälytysryhmäTeam
JärjestöOrganisation
OperaatioOperation
SijaintiLocation
RyhmäSquad
TilaStatus
KalustoEquipment
ViestivälineetRadio equipment
TavaratOther equipment

Monikulttuuristamisessa käytetään työkaluna gettext - kirjastoa.