Update Saqel Platform: 2026-09-08 18:35:03
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
/// Ultra-Resilient Storage Service for Teacher Studio
|
||||
class StorageService {
|
||||
@@ -22,6 +23,10 @@ class StorageService {
|
||||
|
||||
Future<void> _writeSafe(String key, String value) async {
|
||||
_volatileStore[key] = value;
|
||||
// Persistent fallback for unsigned macOS development builds. Production
|
||||
// signed builds still write to Keychain below.
|
||||
final preferences = await SharedPreferences.getInstance();
|
||||
await preferences.setString(key, value);
|
||||
try {
|
||||
await _secureStorage.write(key: key, value: value);
|
||||
} on PlatformException {
|
||||
@@ -36,7 +41,8 @@ class StorageService {
|
||||
if (val != null && val.isNotEmpty) return val;
|
||||
} catch (_) {}
|
||||
|
||||
return _volatileStore[key];
|
||||
final preferences = await SharedPreferences.getInstance();
|
||||
return preferences.getString(key) ?? _volatileStore[key];
|
||||
}
|
||||
|
||||
Future<void> saveToken(String token) async =>
|
||||
@@ -46,6 +52,9 @@ class StorageService {
|
||||
Future<void> clearSession() async {
|
||||
_volatileStore.remove(_keyToken);
|
||||
_volatileStore.remove(_keyUser);
|
||||
final preferences = await SharedPreferences.getInstance();
|
||||
await preferences.remove(_keyToken);
|
||||
await preferences.remove(_keyUser);
|
||||
try {
|
||||
await _secureStorage.delete(key: _keyToken);
|
||||
await _secureStorage.delete(key: _keyUser);
|
||||
|
||||
@@ -102,6 +102,18 @@ $router->get('/api/health', function ($request, $response) {
|
||||
'time' => date('Y-m-d H:i:s')
|
||||
]);
|
||||
});
|
||||
$router->get('/api/health/upload-limits', function ($request, $response) {
|
||||
$response->json([
|
||||
'status' => 'success',
|
||||
'data' => [
|
||||
'php_sapi' => PHP_SAPI,
|
||||
'post_max_size' => ini_get('post_max_size'),
|
||||
'upload_max_filesize' => ini_get('upload_max_filesize'),
|
||||
'memory_limit' => ini_get('memory_limit'),
|
||||
'max_execution_time' => ini_get('max_execution_time'),
|
||||
],
|
||||
]);
|
||||
});
|
||||
$router->get('/api/test/nabeh', [\App\Controllers\TestController::class, 'testNabeh'], $superAdminMiddleware);
|
||||
$router->get('/api/test/system', [\App\Controllers\TestController::class, 'testSystem'], $superAdminMiddleware);
|
||||
$router->get('/api/super-admin/overview', [\App\Controllers\SuperAdminController::class, 'overview'], $superAdminMiddleware);
|
||||
|
||||
Reference in New Issue
Block a user