From 2e126692f20577eab89252f26e28503c2603381e Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Mon, 16 Jan 2023 11:38:24 +0100 Subject: [PATCH] MyLv: Permissions & notFound fallback --- application/controllers/Cis/MyLv.php | 2 +- .../controllers/components/Cis/Mylv.php | 10 +++++----- public/js/components/Cis/Mylv/Student.js | 14 ++++++++----- system/phrasesupdate.php | 20 +++++++++++++++++++ 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/application/controllers/Cis/MyLv.php b/application/controllers/Cis/MyLv.php index eae0a3a39..fe7eb298c 100644 --- a/application/controllers/Cis/MyLv.php +++ b/application/controllers/Cis/MyLv.php @@ -13,7 +13,7 @@ class MyLv extends Auth_Controller public function __construct() { parent::__construct([ - 'index' => 'student/anrechnung_beantragen:r' // TODO(chris): permissions? + 'index' => ['student/anrechnung_beantragen:r','user:r'] // TODO(chris): permissions? ]); } diff --git a/application/controllers/components/Cis/Mylv.php b/application/controllers/components/Cis/Mylv.php index b911b5357..f357b17cb 100644 --- a/application/controllers/components/Cis/Mylv.php +++ b/application/controllers/components/Cis/Mylv.php @@ -19,11 +19,11 @@ class Mylv extends Auth_Controller public function __construct() { parent::__construct([ - 'Student' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions? - 'Studiensemester' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions? - 'Lvs' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions? - 'Info' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions? - 'Pruefungen' => 'student/anrechnung_beantragen:r' // TODO(chris): permissions? + 'Student' => ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions? + 'Studiensemester' => ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions? + 'Lvs' => ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions? + 'Info' => ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions? + 'Pruefungen' => ['student/anrechnung_beantragen:r','user:r'] // TODO(chris): permissions? ]); } diff --git a/public/js/components/Cis/Mylv/Student.js b/public/js/components/Cis/Mylv/Student.js index 125422b01..ffe5c05cf 100644 --- a/public/js/components/Cis/Mylv/Student.js +++ b/public/js/components/Cis/Mylv/Student.js @@ -25,14 +25,14 @@ export default { }, current() { if (this.currentSemester === null) - return { semester: null, lvs: null }; + return { semester: null, lvs: [] }; if (this.lvs[this.currentSemester] === undefined) { this.lvs[this.currentSemester] = { semester: this.currentSemester, lvs: null }; axios.get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Cis/Mylv/Lvs/' + this.currentSemester).then(res => { - this.lvs[this.currentSemester].lvs = res.data.retval; + this.lvs[this.currentSemester].lvs = res.data.retval || []; this.firstLoad = false; }); } @@ -81,7 +81,7 @@ export default { }, created() { axios.get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Cis/Mylv/Studiensemester').then(res => { - this.studiensemester = res.data.retval; + this.studiensemester = res.data.retval || []; const hash = location.hash.substring(1); if (hash && this.studiensemester.filter(s => s.studiensemester_kurzbz == hash).length) this.currentSemester = hash; @@ -89,8 +89,9 @@ export default { this.currentSemester = this.nearestSem; }); }, - template: `
-
+ template: ` +
+
@@ -108,6 +109,9 @@ export default {
+
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 624aee0bd..16a5c77ab 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -17238,6 +17238,26 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'noLvFound', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => "Keine Lehrveranstaltungen gefunden", + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => "No LVs found", + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'global',