public function toteuta_nayta_lisavaltuuslomake(&$palaute) { $tietokantaolio = $this->get_tietokantaolio(); $parametriolio = $this->get_parametriolio(); $omistaja = new Henkilo($parametriolio->lv_omistaja_id, $tietokantaolio); $omistajan_nimi = $omistaja->get_arvo(Henkilo::$sarakenimi_etunimi) . " " . $omistaja->get_arvo(Henkilo::$sarakenimi_sukunimi); // Luodaan ensin valikot: // Henkilövalikko: ===================================================== $name_arvo = Kayttajakontrolleri::$lv_name_kohdehenkilo_id; $minimivaltuus = Valtuudet::$TEHTAVA_LISAYS; $taulunimi = Henkilo::$taulunimi; $henkilot = Henkilo::hae_valtuutetut_henkilot($minimivaltuus, $taulunimi, $tietokantaolio); $arvot = array(); // Henkilön id-arvot. $nimet = array(); // Henkilöiden nimet // haetaan arvot ja nimet henkilöiltä, muttei omistajalta: foreach ($henkilot as $henkilo) { if ($henkilo instanceof Henkilo && $henkilo->get_id() != $omistaja->get_id()) { $nimi = $henkilo->get_arvo(Henkilo::$sarakenimi_etunimi) . " " . $henkilo->get_arvo(Henkilo::$sarakenimi_sukunimi); array_push($nimet, $nimi); array_push($arvot, $henkilo->get_arvo(Henkilo::$SARAKENIMI_ID)); } } $select_maaritteet = array(Attr::name($name_arvo)); $option_maaritteet = array(); $oletusvalinta_arvo = ""; $otsikko = ""; $henkilovalikko = Html::luo_pudotusvalikko_uusi($arvot, $nimet, $select_maaritteet, $option_maaritteet, $oletusvalinta_arvo, $otsikko); //====================================================================== // Kohdevalikko: $name_arvo = Kayttajakontrolleri::$lv_name_vaikutusalue; $arvot = Lisavaltuudet::hae_vaikutusaluearvot(); $nimet = Lisavaltuudet::hae_vaikutusaluekuvaukset(); $select_maaritteet = array(Attr::name($name_arvo)); $option_maaritteet = array(); $oletusvalinta_arvo = Lisavaltuudet::$vain_nykyinen_olio; $otsikko = ""; $kohdevalikko = Html::luo_pudotusvalikko_uusi($arvot, $nimet, $select_maaritteet, $option_maaritteet, $oletusvalinta_arvo, $otsikko); //====================================================================== // Oikeusvalikko: $name_arvo = Kayttajakontrolleri::$lv_name_oikeudet; $arvot = Lisavaltuudet::hae_lisavaltuusarvot(); $nimet = Lisavaltuudet::hae_lisavaltuuskuvaukset(); $select_maaritteet = array(Attr::name($name_arvo)); $option_maaritteet = array(); $oletusvalinta_arvo = Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA; $otsikko = ""; $oikeusvalikko = Html::luo_pudotusvalikko_uusi($arvot, $nimet, $select_maaritteet, $option_maaritteet, $oletusvalinta_arvo, $otsikko); //===================== painikkeet ==================================== $submit_painike = Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$lv_toiminto), Attr::value(Kayttajatekstit::$lisavaltuudet_lomaketeksti_painike_tallenna))); $paluupainike = Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$lv_toiminto), Attr::value(Kayttajatekstit::$lisavaltuudet_lomaketeksti_painike_takaisin))); //===================== painikkeet ==================================== // Actionkyselymuuttujien arvot. Näin saadaan tiedot kulkemaan // lomakkeeseen ja siitä eteenpäin. $actionkyselyarvot = array($parametriolio->id_kokon, $parametriolio->oppiaine_kokon, $parametriolio->kieli_id, $parametriolio->lv_kohde_id, $parametriolio->lv_kohdetyyppi, $parametriolio->lv_omistaja_id); $palaute->set_sisalto($this->kayttajanakymat->nayta_lisavaltuuslomake($omistajan_nimi, $henkilovalikko, $kohdevalikko, $oikeusvalikko, $submit_painike, $paluupainike, $actionkyselyarvot)); return $palaute; }
/** * Palauttaa käyttöoikeusarvoja vastaavat (samassa järjestyksessä) * kuvaukset taulukkona paitsi ei ei_lisavaltuuksia-kuvausta. * Tarkastaa myös sen, onko * nimiä ja arvoja yhtä monta ja kielteisessä tapauksessa heittää * poikkeuksen vastaanottavalle ohjelmanosalle. * @return <type> Palauttaa taulukon, joka sisältää suojausasetusten kuvauksen. */ public static function hae_lisavaltuuskuvaukset() { $kuvaukset = array(Kayttajatekstit::$lisavaltuudet_katseluoikeus, Kayttajatekstit::$lisavaltuudet_vain_muokkaus, Kayttajatekstit::$lisavaltuudet_muokkaus_ja_poisto, Kayttajatekstit::$lisavaltuudet_kaikki_oikeudet); // Tarkistetaan täällä, että arvoja ja nimiä on yhtä monta. Ellei ole, // heitetään poikkeus. if (sizeof(Lisavaltuudet::hae_lisavaltuusarvot()) != sizeof($kuvaukset)) { throw new Exception("Virhe luokassa 'lisavaltuudet': tarkista nimien\n ja arvojen lukumäärät!"); } return $kuvaukset; }