diff --git a/CHANGELOG.md b/CHANGELOG.md index 56256ce4d..66824ed8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ # Changelog All notable changes to this project will be documented in this file. +## 0.9.2 +### Added +- Support for color schemas (Dark Mode with unrounded corners included) +### Fixed +- Login of deactivated users +- Remove references to removed `extensions` preference + +## 0.9.1 +### Fixed +- Incompatible version of `ol-ext` to match updated `ol` + ## 0.9 - Isfahan ### Added - Global State for shared information (Vuex) diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 071da9b1b..0b0852f53 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -52,6 +52,7 @@ public function getGlobalData() { 'preferences' => $preferenceValues, 'concepts' => $concepts, 'entityTypes' => $entityTypeMap, + 'colorsets' => sp_get_themes(), ]); } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 784375290..05c3b6972 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -159,8 +159,18 @@ public function login(Request $request) { $creds = ['password']; if($request->has('nickname')) { $creds[] = 'nickname'; + if(!User::where('nickname', $request->get('nickname'))->withoutTrashed()->exists()) { + return response()->json([ + 'error' => __('Invalid Credentials') + ], 400); + } } else { $creds[] = 'email'; + if(!User::where('email', $request->get('email'))->withoutTrashed()->exists()) { + return response()->json([ + 'error' => __('Invalid Credentials') + ], 400); + } } $credentials = request($creds); diff --git a/app/Preference.php b/app/Preference.php index 96ed7e8d3..036fd4563 100644 --- a/app/Preference.php +++ b/app/Preference.php @@ -58,6 +58,8 @@ public static function decodePreference($label, $value) { switch($label) { case 'prefs.gui-language': return $value->language_key; + case 'prefs.color': + return $value->color_key; case 'prefs.enable-password-reset-link': return $value->use; case 'prefs.columns': @@ -66,8 +68,6 @@ public static function decodePreference($label, $value) { return $value->show; case 'prefs.tag-root': return $value->uri; - case 'prefs.load-extensions': - return $value; case 'prefs.link-to-thesaurex': return $value->url; case 'prefs.project-name': @@ -92,6 +92,9 @@ public static function encodePreference($label, $decodedValue) { case 'prefs.gui-language': $value = json_encode(['language_key' => $decodedValue]); break; + case 'prefs.color': + $value = json_encode(['color_key' => $decodedValue]); + break; case 'prefs.enable-password-reset-link': $value = json_encode(['use' => $decodedValue]); break; @@ -104,9 +107,6 @@ public static function encodePreference($label, $decodedValue) { case 'prefs.tag-root': $value = json_encode(['uri' => $decodedValue]); break; - case 'prefs.load-extensions': - $value = $decodedValue; - break; case 'prefs.link-to-thesaurex': $value = json_encode(['url' => $decodedValue]); break; diff --git a/app/helpers.php b/app/helpers.php index 47a8199ef..05bdd10e5 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -41,6 +41,30 @@ function sp_get_permission_groups($onlyGroups = false) { } } +if(!function_exists('sp_get_themes')) { + function sp_get_themes() { + $themeDir = base_path("resources/sass/"); + $fileList = glob("${themeDir}app*.scss"); + $themes = []; + foreach($fileList as $file) { + $theme = []; + // cut off base path and .scss extension + $fileName = substr($file, strlen($themeDir), -5); + // default stylesheet needs special treatment + if($fileName == 'app') { + $theme['id'] = 'default'; + $theme['key'] = ''; + } else { + $extName = substr($fileName, 3); + $theme['id'] = substr($extName, 1); + $theme['key'] = $extName; + } + $themes[] = $theme; + } + return $themes; + } +} + if(!function_exists('sp_loggable_models')) { function sp_loggable_models() { $loggableModels = []; diff --git a/database/migrations/2022_09_23_074139_add_color_preference.php b/database/migrations/2022_09_23_074139_add_color_preference.php new file mode 100644 index 000000000..f89618d9c --- /dev/null +++ b/database/migrations/2022_09_23_074139_add_color_preference.php @@ -0,0 +1,39 @@ + '']); + $override = false; + + $preference = new Preference(); + $preference->label = $label; + $preference->default_value = $value; + $preference->allow_override = $override; + $preference->save(); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // Remove Color Preference + Preference::where('label', 'prefs.color')->delete(); + } +}; diff --git a/resources/js/App.vue b/resources/js/App.vue index 38e1e4f13..39671ae4c 100644 --- a/resources/js/App.vue +++ b/resources/js/App.vue @@ -104,7 +104,7 @@ {{ t(plugin.label) }} -