diff --git a/include/studiengang.class.php b/include/studiengang.class.php index 676ee97f3..843542a8a 100644 --- a/include/studiengang.class.php +++ b/include/studiengang.class.php @@ -57,6 +57,7 @@ class studiengang extends basis_db public $foerderrelevant; // boolean public $standort_code; // integer public $melde_studiengang_kz; // varchar(32) + public $account_creation; // boolean public $kuerzel; // = typ + kurzbz (Bsp: BBE) public $kuerzel_arr = array(); // Array mit allen Kurzeln Index=studiengangs_kz @@ -76,6 +77,8 @@ class studiengang extends basis_db { parent::__construct(); + $this->account_creation = true; // default value + if(!is_null($studiengang_kz)) $this->load($studiengang_kz); } @@ -136,6 +139,7 @@ class studiengang extends basis_db $this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $this->standort_code = $row->standort_code; $this->melde_studiengang_kz = $row->melde_studiengang_kz; + $this->account_creation = $this->db_parse_bool($row->account_creation); $this->bezeichnung_arr['German'] = $this->bezeichnung; $this->bezeichnung_arr['English'] = $this->english; @@ -213,6 +217,7 @@ class studiengang extends basis_db $stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $stg_obj->standort_code = $row->standort_code; $stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz; + $stg_obj->account_creation = $this->db_parse_bool($row->account_creation); $stg_obj->bezeichnung_arr['German'] = $row->bezeichnung; $stg_obj->bezeichnung_arr['English'] = $row->english; @@ -435,6 +440,7 @@ class studiengang extends basis_db $stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $stg_obj->standort_code = $row->standort_code; $stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz; + $stg_obj->account_creation = $this->db_parse_bool($row->account_creation); $stg_obj->bezeichnung_arr['German'] = $row->bezeichnung; $stg_obj->bezeichnung_arr['English'] = $row->english; @@ -510,7 +516,7 @@ class studiengang extends basis_db typ, farbe, email, telefon, max_verband, max_semester, max_gruppe, erhalter_kz, bescheid, bescheidbgbl1, bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, aktiv, onlinebewerbung, orgform_kurzbz, zusatzinfo_html, oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode, mischform,projektarbeit_note_anzeige, - melderelevant, foerderrelevant, standort_code, melde_studiengang_kz) VALUES ('. + melderelevant, foerderrelevant, standort_code, melde_studiengang_kz, account_creation) VALUES ('. $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. $this->db_add_param($this->kurzbz).', '. $this->db_add_param($this->kurzbzlang).', '. @@ -545,7 +551,8 @@ class studiengang extends basis_db $this->db_add_param($this->melderelevant, FHC_BOOLEAN).','. $this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).','. $this->db_add_param($this->standort_code).','. - $this->db_add_param($this->melde_studiengang_kz).');'; + $this->db_add_param($this->melde_studiengang_kz).','. + $this->db_add_param($this->account_creation, FHC_BOOLEAN).');'; } else { @@ -586,7 +593,8 @@ class studiengang extends basis_db 'melderelevant='.$this->db_add_param($this->melderelevant, FHC_BOOLEAN).', '. 'foerderrelevant='.$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).', '. 'standort_code='.$this->db_add_param($this->standort_code).', '. - 'melde_studiengang_kz='.$this->db_add_param($this->melde_studiengang_kz).' '. + 'melde_studiengang_kz='.$this->db_add_param($this->melde_studiengang_kz).', '. + 'account_creation='.$this->db_add_param($this->account_creation, FHC_BOOLEAN).' '. 'WHERE studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER, false).';'; } @@ -627,6 +635,27 @@ class studiengang extends basis_db } + /** + * Toggle the IDAM flag account_creation + */ + public function toggleAccountCreation($studiengang_kz) + { + if( !is_numeric($studiengang_kz)) + { + $this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein'; + return false; + } + + $qry = 'UPDATE public.tbl_studiengang SET account_creation = NOT account_creation WHERE studiengang_kz = '.$this->db_add_param($studiengang_kz, FHC_INTEGER); + if (!$this->db_query($qry)) + { + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; + return false; + } + + return true; + } + /** * Liefert die UIDs der Studiengangsleiter * @@ -713,6 +742,7 @@ class studiengang extends basis_db $this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $this->standort_code = $row->standort_code; $this->melde_studiengang_kz = $row->melde_studiengang_kz; + $this->account_creation = $this->db_parse_bool($row->account_creation); $this->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige); $this->bezeichnung_arr['German'] = $this->bezeichnung; @@ -857,6 +887,7 @@ class studiengang extends basis_db $obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $obj->standort_code = $row->standort_code; $obj->melde_studiengang_kz = $row->melde_studiengang_kz; + $obj->account_creation = $this->db_parse_bool($row->account_creation); $obj->aktiv = $this->db_parse_bool($row->aktiv); $this->result[] = $obj; @@ -1038,6 +1069,7 @@ class studiengang extends basis_db $obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $obj->standort_code = $row->standort_code; $obj->melde_studiengang_kz = $row->melde_studiengang_kz; + $obj->account_creation = $this->db_parse_bool($row->account_creation); $obj->bezeichnung_arr['German'] = $obj->bezeichnung; $obj->bezeichnung_arr['English'] = $obj->english; @@ -1176,6 +1208,7 @@ class studiengang extends basis_db $obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $obj->standort_code = $row->standort_code; $obj->melde_studiengang_kz = $row->melde_studiengang_kz; + $obj->account_creation = $this->db_parse_bool($row->account_creation); $obj->bezeichnung_arr['German'] = $obj->bezeichnung; $obj->bezeichnung_arr['English'] = $obj->english; diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index bf7f5202a..b20389bd6 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -104,6 +104,7 @@ require_once('dbupdate_3.4/77080_tabulator_presets_table.php'); require_once('dbupdate_3.4/78292_gehaltsanpassungtyp.php'); require_once('dbupdate_3.4/54225_reihungstest_ablauf_fuer_quereinsteiger.php'); require_once('dbupdate_3.4/77757_widgets_berechtigungen.php'); +require_once('dbupdate_3.4/83575_IDAM_Exclude_Degree_Program_from_Student_Sync.php'); // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -397,7 +398,7 @@ $tabellen=array( "public.tbl_statistik" => array("statistik_kurzbz","bezeichnung","url","gruppe","sql","content_id","insertamum","insertvon","updateamum","updatevon","berechtigung_kurzbz","publish","preferences"), "public.tbl_student" => array("student_uid","matrikelnr","prestudent_id","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), "public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), - "public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige", "onlinebewerbung","melderelevant","foerderrelevant","standort_code","melde_studiengang_kz"), + "public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige", "onlinebewerbung","melderelevant","foerderrelevant","standort_code","melde_studiengang_kz", "account_creation"), "public.tbl_studiengangstyp" => array("typ","bezeichnung","beschreibung","bezeichnung_mehrsprachig"), "public.tbl_studienjahr" => array("studienjahr_kurzbz","bezeichnung"), "public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","studienjahr_kurzbz","ext_id","beschreibung","onlinebewerbung"), diff --git a/system/dbupdate_3.4/83575_IDAM_Exclude_Degree_Program_from_Student_Sync.php b/system/dbupdate_3.4/83575_IDAM_Exclude_Degree_Program_from_Student_Sync.php new file mode 100644 index 000000000..cd1c3036f --- /dev/null +++ b/system/dbupdate_3.4/83575_IDAM_Exclude_Degree_Program_from_Student_Sync.php @@ -0,0 +1,17 @@ +db_query('SELECT account_creation FROM public.tbl_studiengang LIMIT 1')) +{ + $qry = 'ALTER TABLE public.tbl_studiengang ADD COLUMN IF NOT EXISTS account_creation BOOLEAN NOT NULL DEFAULT TRUE;'; + + $qry .= "COMMENT ON COLUMN public.tbl_studiengang.account_creation IS 'Flag for the student accounts creation on IDAM';"; + + if (!$db->db_query($qry)) + echo 'public.tbl_studiengang.account_creation: '.$db->db_last_error().'
'; + else + echo '
public.tbl_studiengang.account_creation: Neue Spalte hinzugefügt'; +} + diff --git a/vilesci/stammdaten/studiengang_details.php b/vilesci/stammdaten/studiengang_details.php index 0d08accd9..d06ab41f2 100644 --- a/vilesci/stammdaten/studiengang_details.php +++ b/vilesci/stammdaten/studiengang_details.php @@ -93,6 +93,7 @@ $melderelevant = false; $foerderrelevant = false; $standort_code=''; $melde_studiengang_kz = ''; +$account_creation = true; $schick = filter_input(INPUT_POST, 'schick'); $onlinebewerbung = false; @@ -157,6 +158,7 @@ if($schick) $foerderrelevant = filter_input(INPUT_POST, 'foerderrelevant', FILTER_VALIDATE_BOOLEAN); $standort_code = filter_input(INPUT_POST, 'standort_code'); $melde_studiengang_kz = filter_input(INPUT_POST, 'melde_studiengang_kz'); + $account_creation = filter_input(INPUT_POST, 'account_creation', FILTER_VALIDATE_BOOLEAN); $ext_id = filter_input(INPUT_POST, 'ext_id'); @@ -226,6 +228,7 @@ if($schick) $sg_update->foerderrelevant = $foerderrelevant; $sg_update->standort_code = $standort_code; $sg_update->melde_studiengang_kz = $melde_studiengang_kz; + $sg_update->account_creation = $account_creation; $sg_update->bescheidvom=$date->formatDatum($sg_update->bescheidvom,'Y-m-d'); $sg_update->titelbescheidvom=$date->formatDatum($sg_update->titelbescheidvom,'Y-m-d'); @@ -296,6 +299,7 @@ if ((isset($_REQUEST['studiengang_kz'])) && ((!isset($_REQUEST['neu'])) || ($_RE $foerderrelevant = $sg->foerderrelevant; $standort_code = $sg->standort_code; $melde_studiengang_kz = $sg->melde_studiengang_kz; + $account_creation = $sg->account_creation; } $erh = new erhalter(); @@ -446,6 +450,13 @@ if (!$erh->getAll('kurzbz')) onchange="submitable()"> + + IDAM student accounts creation + + + onchange="submitable()"> + + diff --git a/vilesci/stammdaten/studiengang_uebersicht.php b/vilesci/stammdaten/studiengang_uebersicht.php index c81e1e35b..17cc8c530 100644 --- a/vilesci/stammdaten/studiengang_uebersicht.php +++ b/vilesci/stammdaten/studiengang_uebersicht.php @@ -49,6 +49,23 @@ require_once('../../include/benutzerberechtigung.class.php'); else die('Sie haben keine Rechte fuer diese Aktion'); } + + if (isset($_GET["toggleAC"]) && ($_GET["kz"] != "")) + { + $kennzahl = intval($_GET["kz"]); + $stg_hlp = new studiengang(); + if(!$stg_hlp->load($kennzahl)) + die('Studiengang nicht gefunden'); + + if ($rechte->isBerechtigt('basis/studiengang', $stg_hlp->oe_kurzbz, 'suid')) + { + $sg_update = new studiengang(); + if (!$sg_update->toggleAccountCreation($kennzahl)) + die($sg_update->errormsg); + } + else + die('Sie haben keine Rechte fuer diese Aktion'); + } $sg = new studiengang(); if (!$sg->loadArray($rechte->getStgKz('basis/studiengang'),'kurzbzlang',false)) @@ -67,6 +84,7 @@ require_once('../../include/benutzerberechtigung.class.php'); Englisch Lehrgangsart Aktiv + IDAM Email '; @@ -93,6 +111,16 @@ require_once('../../include/benutzerberechtigung.class.php'); $aktivlink = "?toggle=true&kz=".$stg->studiengang_kz; $htmlstr .= " ".$aktivbild."\n"; + + // IDAM account activation + if($stg->account_creation) + $acbild = "true.png"; + else + $acbild = "false.png"; + + $aclink = "?toggleAC=true&kz=".$stg->studiengang_kz; + $htmlstr .= " ".$acbild."\n"; + $htmlstr .= " ".$stg->email."\n"; $htmlstr .= " \n"; $i++;