import '../session/session.dart'; /// Backend identity a feature needs. Modules and settings sections declare /// these; anything whose requirements the session does not meet is hidden. enum AccessRequirement { nextcloud, guardian; bool isMetBy(Session? session) => switch (this) { AccessRequirement.nextcloud => session?.nextcloud != null, AccessRequirement.guardian => session is GuardianSession, }; } extension AccessRequirements on Set { bool areMetBy(Session? session) => every((r) => r.isMetBy(session)); }