Files
Avtex/lib/core/admin_access_service.dart
T
Alexyz f1e0f6b5ef feat: Add Nanaxe server with Docker, GitHub Actions CI/CD, and auto-deployment
- Add complete server infrastructure with Gitea, API, PostgreSQL
- Implement Obsidian-compatible markdown mindmap converter
- Add Flutter service for server synchronization
- Configure GitHub Actions for automated build and deploy
- Add production docker-compose with health checks
- Include VPS setup and deployment scripts
- Add comprehensive deployment documentation
2026-04-19 22:18:25 +05:00

51 lines
1.7 KiB
Dart

import 'package:cloud_firestore/cloud_firestore.dart';
/// Сервис для проверки прав доступа администраторов
class AdminAccessService {
// Список email'ов администраторов
static const List<String> adminEmails = [
'ormix16@gmail.com',
'almalexyz@gmail.com',
];
/// Проверка является ли пользователь администратором
static Future<bool> isAdmin(String userEmail) async {
return adminEmails.contains(userEmail.toLowerCase());
}
/// Получить список всех администраторов
static List<String> getAdminEmails() {
return List.from(adminEmails);
}
/// Добавить администратора (только для Firestore)
static Future<void> addAdmin(String email) async {
if (!adminEmails.contains(email.toLowerCase())) {
await FirebaseFirestore.instance
.collection('admin_access')
.doc(email.toLowerCase())
.set({
'email': email.toLowerCase(),
'addedAt': Timestamp.now(),
'role': 'admin',
});
}
}
/// Удалить администратора
static Future<void> removeAdmin(String email) async {
await FirebaseFirestore.instance
.collection('admin_access')
.doc(email.toLowerCase())
.delete();
}
/// Получить список администраторов из Firestore
static Future<List<String>> getAdminsFromFirestore() async {
final snapshot =
await FirebaseFirestore.instance.collection('admin_access').get();
return snapshot.docs.map((doc) => doc.id).toList();
}
}