handelled permission controller
This commit is contained in:
parent
5a86f242f9
commit
48255f0d72
@ -12,51 +12,12 @@ class PermissionController extends GetxController {
|
||||
Timer? _refreshTimer;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
_loadStoredData(); // Load both permissions and employee info
|
||||
_startAutoRefresh(); // Schedule auto-refresh every 30 minutes
|
||||
}
|
||||
|
||||
// Load permissions and employee info from SharedPreferences
|
||||
Future<void> _loadStoredData() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
|
||||
// Load stored permissions
|
||||
final storedPermissionsJson = prefs.getString('user_permissions');
|
||||
if (storedPermissionsJson != null) {
|
||||
print("Loaded Permissions from SharedPreferences: $storedPermissionsJson");
|
||||
try {
|
||||
final List<dynamic> parsedList = jsonDecode(storedPermissionsJson);
|
||||
permissions.assignAll(
|
||||
parsedList
|
||||
.map((e) => UserPermission.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
);
|
||||
} catch (e) {
|
||||
print("Error decoding stored permissions: $e");
|
||||
await prefs.remove('user_permissions');
|
||||
}
|
||||
}
|
||||
|
||||
// Load stored employee info
|
||||
final storedEmployeeInfoJson = prefs.getString('employee_info');
|
||||
if (storedEmployeeInfoJson != null) {
|
||||
print("Loaded Employee Info from SharedPreferences: $storedEmployeeInfoJson");
|
||||
try {
|
||||
final decodedEmployeeInfo = jsonDecode(storedEmployeeInfoJson);
|
||||
employeeInfo.value = EmployeeInfo.fromJson(decodedEmployeeInfo);
|
||||
} catch (e) {
|
||||
print("Error decoding stored employee info: $e");
|
||||
await prefs.remove('employee_info');
|
||||
}
|
||||
}
|
||||
|
||||
// If permissions or employee info are missing, fallback to API
|
||||
if (storedPermissionsJson == null || storedEmployeeInfoJson == null) {
|
||||
await _loadDataFromAPI();
|
||||
}
|
||||
}
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
_loadDataFromAPI(); // Always fetch from API at start
|
||||
_startAutoRefresh(); // Schedule auto-refresh
|
||||
}
|
||||
|
||||
// Save permissions and employee info to SharedPreferences
|
||||
Future<void> _storeData() async {
|
||||
|
Loading…
x
Reference in New Issue
Block a user