示例#1
0
 /**
  * Palauttaa taulukossa Henkilo-luokan olioina kaikki käyttäjät, 
  * joiden valtuusarvo on vähintään $minimivaltuus.
  * @param type $minimivaltuus
  * @param type $taulunimi
  * @param type $tietokantaolio 
  */
 public static function hae_valtuutetut_henkilot($minimivaltuus, $taulunimi, $tietokantaolio)
 {
     $henkilot = Henkilo::hae_kaikki_henkilot($taulunimi, $tietokantaolio);
     $valtuutetut = array();
     foreach ($henkilot as $ehdokas) {
         if ($ehdokas instanceof Henkilo) {
             if ($ehdokas->get_arvo(Henkilo::$sarakenimi_valtuudet) >= $minimivaltuus) {
                 array_push($valtuutetut, $ehdokas);
             }
         }
     }
     return $valtuutetut;
 }
 /**
  * Palauttaa suodatinlomakkeen koodin. Vähän täällä on turhan
  * paljon logiikkaa mukana, mutta välillä sitä on kyllä vaikea
  * välttää, tai sitten pitäisi tehdä osittain myös html
  * valmiiksi muualla.
  */
 public function toteuta_nayta_suodatinlomake()
 {
     // Henkilöt: ===========================================================
     $name_arvo = Kayttajakontrolleri::$suodatin_name_omistaja_id;
     $taulunimi = Henkilo::$taulunimi;
     $omistaja = "";
     // Täällä on myös omistaja, mutta se poistetaan myöhemmin.
     $kaikki_henkilot = Henkilo::hae_kaikki_henkilot($this->get_tietokantaolio());
     $kohdehenkilot = array();
     // Erotetaan omistaja & admin ja kohdehenkilöt:
     foreach ($kaikki_henkilot as $henkilo) {
         if ($henkilo instanceof Henkilo) {
             if ($henkilo->get_id() == $this->get_parametriolio()->omaid) {
                 $omistaja = $henkilo;
             } else {
                 if ($henkilo->get_arvo(Henkilo::$sarakenimi_valtuudet) == Valtuudet::$HALLINTA) {
                     // Ei tehdä mitään. Hallitsijaa ei voi suodattaa :)
                 } else {
                     array_push($kohdehenkilot, $henkilo);
                 }
             }
         }
     }
     // Tarkistetaan suodattimet ja lisätään suodatustiedot henkilo-olioihin:
     foreach ($kohdehenkilot as $henkilo) {
         if (Suodatin::on_jo_olemassa($omistaja->get_id(), $henkilo->get_id(), $this->get_tietokantaolio())) {
             $henkilo->setSuodatus_kohde(Henkilo::$suodatus_ON);
         }
         // Ja toisin päin:
         if (Suodatin::on_jo_olemassa($henkilo->get_id(), $omistaja->get_id(), $this->get_tietokantaolio())) {
             $henkilo->setSuodatus_lahde(Henkilo::$suodatus_ON);
         }
     }
     $paluupainike = Html::luo_button(Kayttajatekstit::$suodattimet_lomaketeksti_painike_takaisin, array(Maarite::onclick("piilota_suodatuslomake", array())));
     $this->get_palauteolio()->set_sisalto($this->kayttajanakymat->nayta_suodatinlomake($omistaja, $kohdehenkilot, $paluupainike));
     return $this->get_palauteolio();
 }