Files
b0esche_cloud/b0esche_cloud/lib/blocs/permission/permission_bloc.dart

45 lines
1.3 KiB
Dart
Raw Normal View History

2025-12-16 18:09:20 +01:00
import 'package:bloc/bloc.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
2025-12-16 18:09:20 +01:00
import 'permission_event.dart';
import 'permission_state.dart';
import '../../services/api_client.dart';
2025-12-16 18:09:20 +01:00
class PermissionBloc extends Bloc<PermissionEvent, PermissionState> {
final ApiClient apiClient;
PermissionBloc(this.apiClient) : super(PermissionInitial()) {
2025-12-16 18:09:20 +01:00
on<LoadPermissions>(_onLoadPermissions);
on<PermissionsReset>(_onPermissionsReset);
}
void _onLoadPermissions(
LoadPermissions event,
Emitter<PermissionState> emit,
) async {
emit(PermissionLoading());
try {
final response = await apiClient.getRaw(
'/orgs/${event.orgId}/permissions',
);
final capabilities = Capabilities(
canRead: response['canRead'] ?? false,
canWrite: response['canWrite'] ?? false,
canShare: response['canShare'] ?? false,
canAdmin: response['canAdmin'] ?? false,
canAnnotate: response['canAnnotate'] ?? false,
canEdit: response['canEdit'] ?? false,
);
emit(PermissionLoaded(capabilities));
} catch (e) {
emit(PermissionDenied(e.toString()));
}
2025-12-16 18:09:20 +01:00
}
void _onPermissionsReset(
PermissionsReset event,
Emitter<PermissionState> emit,
) {
emit(PermissionInitial());
}
}