17 lines
1.2 KiB
Dart
17 lines
1.2 KiB
Dart
/// 124: 저장된 비밀번호 (WebDAV · OpenSubtitles · API 키) 를 쓰기 전에 지나는 문.
|
|
/// 마스터 비밀번호를 정해 두었으면 앱이 [check] 에 "필요하면 묻기" 를 넣는다 (main). 없으면 늘 통과.
|
|
class SecretGate {
|
|
/// [force]: 사용자가 직접 연 것 (마스터 창을 한 번 취소했어도 다시 묻는다). 아니면 자동 · 배경 작업
|
|
static Future<bool> Function(bool force)? check;
|
|
|
|
/// 써도 되면 true
|
|
static Future<bool> pass({bool force = false}) => check?.call(force) ?? Future.value(true);
|
|
|
|
/// 비밀 값이 있을 때만 문을 지나야 한다 ([hasSecret] 가 false 면 묻지 않고 true). 저장된 비밀 값을 쓰기 · 보이기 · 고치기 전에 부른다.
|
|
/// 원격 등록 · 플레이어 · 그림 AI · 서버 · 서비스 설정이 함께 쓴다 (관리자 10/24 - 같은 꼴의 복사를 한 곳으로)
|
|
static Future<bool> passIf(bool hasSecret, {bool force = false}) => hasSecret ? pass(force: force) : Future.value(true);
|
|
}
|
|
|
|
/// 마스터 비밀번호를 넣지 않아 막혔을 때의 안내
|
|
const secretGateMessage = '마스터 비밀번호를 넣어야 저장된 비밀번호를 쓸 수 있습니다';
|