/**
  * Hakee aktiiviseen kokonaisuuteen liittyvät tehtävät ja palauttaa niistä
  * soveliaat (eli joihin käyttäjälle oikeudet) taulukossa. Voi palauttaa
  * tyhjän taulukon, mutta aina taulukon.
  * 
  */
 function hae_tehtavat()
 {
     $soveliaat = array();
     $tietokantaolio = $this->get_tietokantaolio();
     $id_kokon = $this->get_parametriolio()->id_kokon;
     // Ellei käyttäjä ole kirjautunut, haetaan vain julkiset tehtävät.
     // Kirjautuneelle tehdään monimutkaisempi ja raskaampi haku, jossa
     // jokaisen tehtävän kohdalla tarkistetaan oikeudet:
     $omaid = $this->get_parametriolio()->get_omaid();
     if (Henkilo::on_kirjautunut($omaid, $tietokantaolio)) {
         $tehtavat = Tehtava::hae_kokonaisuuden_tehtavat($id_kokon, $tietokantaolio);
         $soveliaat = $this->poimi_tehtavat($tehtavat);
     } else {
         // Kun käyttäjä ole kirjautunut:
         $soveliaat = Tehtava::hae_kokonaisuuden_julkiset_tehtavat($id_kokon, $tietokantaolio);
     }
     return $soveliaat;
 }
Example #2
0
 static function hae_tehtavat_koostelomake($id_kokon, $tietokantaolio, $omaid)
 {
     $kokon = new Kokonaisuusolio($id_kokon, $tietokantaolio);
     $teht = array();
     $on_kirjautunut = false;
     if (Henkilo::on_kirjautunut($omaid, $tietokantaolio)) {
         $on_kirjautunut = true;
     }
     if (!$on_kirjautunut) {
         $teht = Tehtava::hae_kokonaisuuden_julkiset_tehtavat($id_kokon, $tietokantaolio);
     } else {
         $ehdokkaat = Tehtava::hae_kokonaisuuden_tehtavat($id_kokon, $tietokantaolio);
         foreach ($ehdokkaat as $tehtava) {
             if ($tehtava instanceof Tehtava) {
                 if ($tehtava->getNakyvyys() + 0 === Nakyvyys::$JULKINEN) {
                     array_push($teht, $tehtava);
                 } else {
                     if ($tehtava->getNakyvyys() + 0 === Nakyvyys::$VAIN_KOOSTEESSA || $tehtava->getNakyvyys() + 0 === Nakyvyys::$YKSITYINEN) {
                         // Jos näkyvyys ei ole julkinen, tarkistetaan olion
                         // kohdeoikeudet.
                         /*======================== käyttäjän oikeudet ====*/
                         $kohdeoikeudet = Henkilo::hae_kayttajan_kohdeoikeudet($kokon->getHenkiloId(), $omaid, Oliotyyppi::$TEHTAVA, $kokon->get_id(), $tietokantaolio);
                         /*===============================================*/
                         // Jos on vähintään muokkausoikeudet, näytetään
                         // linkki sopivasti muotoiltuna:
                         if ($kohdeoikeudet >= Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA) {
                             array_push($teht, $tehtava);
                         }
                     } else {
                         // Vain otsikkollisia ei näytetä, koska ei järkeä.
                     }
                 }
             }
         }
     }
     return $teht;
 }