handelled permission controller

This commit is contained in:
Vaibhav Surve 2025-05-03 11:21:25 +05:30
parent 5a86f242f9
commit 48255f0d72

View File

@ -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 {