diff --git a/application/config/fhcomplete.php b/application/config/fhcomplete.php index 5f28032c3..e5f28acde 100644 --- a/application/config/fhcomplete.php +++ b/application/config/fhcomplete.php @@ -39,6 +39,7 @@ $config['fhc_acl'] = array 'campus.tbl_contentsprache' => 'basis/contentsprache', 'campus.tbl_coodle' => 'basis/coodle', 'campus.tbl_dms' => 'basis/dms', + 'campus.tbl_dms_version' => 'basis/dms_version', 'campus.tbl_erreichbarkeit' => 'basis/erreichbarkeit', 'campus.tbl_feedback' => 'basis/feedback', 'campus.tbl_freebusy' => 'basis/freebusy', @@ -110,9 +111,7 @@ $config['fhc_acl'] = array 'lehre.tbl_studienordnungstatus' => 'basis/studienordnungstatus', 'lehre.tbl_studienplan' => 'basis/studienplan', 'lehre.tbl_studienplatz' => 'basis/studienplatz', - 'lehre.tbl_studienplan_semester' => 'basis/studienplan_semester', - 'lehre.tbl_stunde' => 'basis/stunde', 'lehre.tbl_stundenplan' => 'basis/stundenplan', 'lehre.tbl_stundenplandev' => 'basis/stundenplandev', @@ -122,6 +121,7 @@ $config['fhc_acl'] = array 'lehre.tbl_zeitfenster' => 'basis/zeitfenster', 'lehre.tbl_zeugnis' => 'basis/zeugnis', 'lehre.tbl_zeugnisnote' => 'basis/zeugnisnote', + 'lehre.vw_studienplan' => 'basis/studienplan', 'public.tbl_adresse' => 'basis/adresse', 'public.tbl_akte' => 'basis/akte', 'public.tbl_ampel' => 'basis/ampel', @@ -227,8 +227,6 @@ $config['fhc_acl'] = array 'wawi.tbl_rechnungstyp' => 'basis/rechnungstyp', 'wawi.tbl_zahlungstyp' => 'basis/zahlungstyp', - 'lehre.vw_studienplan' => 'basis/studienplan', - 'public.tbl_sprache' => 'admin', 'public.tbl_msg_thread' => 'admin', 'public.tbl_msg_message' => 'admin' diff --git a/application/controllers/api/v1/content/Dms.php b/application/controllers/api/v1/content/Dms.php index e1891a6b9..59864385a 100644 --- a/application/controllers/api/v1/content/Dms.php +++ b/application/controllers/api/v1/content/Dms.php @@ -74,13 +74,23 @@ class Dms extends APIv1_Controller { if ($this->_validate($this->post())) { - if (isset($this->post()['contentsprache_id'])) + if (isset($this->post()['dms_id'])) { - $result = $this->ContentspracheModel->update($this->post()['contentsprache_id'], $this->post()); + $result = $this->DmsModel->update($this->post()['dms_id'], $this->post()); + + if ($result->error == EXIT_SUCCESS) + { + $result = $this->DmsModel->updateDmsVersion($this->post()['dms_id'], $this->post()); + } } else { - $result = $this->ContentspracheModel->insert($this->post()); + $result = $this->DmsModel->insert($this->post()); + + if ($result->error == EXIT_SUCCESS) + { + $result = $this->DmsModel->insertDmsVersion($this->post()); + } } $this->response($result, REST_Controller::HTTP_OK); diff --git a/application/models/content/Dms_model.php b/application/models/content/Dms_model.php index d5d9106d3..7a27e8b79 100644 --- a/application/models/content/Dms_model.php +++ b/application/models/content/Dms_model.php @@ -1,7 +1,7 @@ dbTable = 'campus.tbl_dms'; $this->pk = 'dms_id'; } -} + + protected function insertDmsVersion($data) + { + $tableName = 'campus.tbl_dms_version'; + + // Check rights + if (! $this->fhc_db_acl->isBerechtigt($this->acl[$tableName], 'i')) + return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl[$tableName], FHC_MODEL_ERROR); + + // DB-INSERT + if ($this->db->insert($tableName, $data)) + return $this->_success($this->db->insert_id()); + else + return $this->_error($this->db->error(), FHC_DB_ERROR); + } + + protected function updateDmsVersion($id, $data) + { + $tableName = 'campus.tbl_dms_version'; + + // Check Class-Attributes + if (is_null($this->pk)) + return $this->_error(lang('fhc_'.FHC_NOPK), FHC_MODEL_ERROR); + + // Check rights + if (! $this->fhc_db_acl->isBerechtigt($this->acl[$tableName], 'u')) + return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl[$tableName], FHC_MODEL_ERROR); + + // DB-UPDATE + $this->db->where('dms_id', $id); + + if ($this->db->update($tableName, $data)) + return $this->_success($id); + else + return $this->_error($this->db->error(), FHC_DB_ERROR); + } +} \ No newline at end of file diff --git a/tests/codeception/_data/dump.sql b/tests/codeception/_data/dump.sql index 327ffdaa2..f59f8c546 100644 --- a/tests/codeception/_data/dump.sql +++ b/tests/codeception/_data/dump.sql @@ -391,7 +391,8 @@ DELETE FROM system.tbl_rolleberechtigung WHERE berechtigung_kurzbz IN ( 'basis/rechnungsbetrag', 'basis/rechnungstyp', 'basis/zahlungstyp', - 'basis/studienplan_semester' + 'basis/studienplan_semester', + 'basis/dms_version' ); DELETE FROM system.tbl_berechtigung WHERE berechtigung_kurzbz IN ( @@ -608,7 +609,8 @@ DELETE FROM system.tbl_berechtigung WHERE berechtigung_kurzbz IN ( 'basis/rechnungsbetrag', 'basis/rechnungstyp', 'basis/zahlungstyp', - 'basis/studienplan_semester' + 'basis/studienplan_semester', + 'basis/dms_version' ); -- Permissions @@ -826,6 +828,7 @@ INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES(' INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('basis/rechnungstyp', 'Tbl_rechnungstyp'); INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('basis/zahlungstyp', 'Tbl_zahlungstyp'); INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('basis/studienplan_semester', 'Tbl_studienplan_semester'); +INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('basis/dms_version', 'Tbl_dms_version'); INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/archiv', 'admin', 'suid'); INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/ausbildung', 'admin', 'suid'); @@ -1040,4 +1043,5 @@ INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/rechnungsbetrag', 'admin', 'suid'); INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/rechnungstyp', 'admin', 'suid'); INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/zahlungstyp', 'admin', 'suid'); -INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/studienplan_semester', 'admin', 'suid'); \ No newline at end of file +INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/studienplan_semester', 'admin', 'suid'); +INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/dms_version', 'admin', 'suid'); \ No newline at end of file