handelled permission controller
This commit is contained in:
parent
5a86f242f9
commit
48255f0d72
@ -12,50 +12,11 @@ class PermissionController extends GetxController {
|
|||||||
Timer? _refreshTimer;
|
Timer? _refreshTimer;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
_loadStoredData(); // Load both permissions and employee info
|
_loadDataFromAPI(); // Always fetch from API at start
|
||||||
_startAutoRefresh(); // Schedule auto-refresh every 30 minutes
|
_startAutoRefresh(); // Schedule auto-refresh
|
||||||
}
|
|
||||||
|
|
||||||
// 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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save permissions and employee info to SharedPreferences
|
// Save permissions and employee info to SharedPreferences
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user