/** * 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; }
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; }