mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 00:02:28 +00:00
76 lines
1.8 KiB
Objective-C
76 lines
1.8 KiB
Objective-C
//
|
|
// MPDocumentQueryService.m
|
|
// MacPass
|
|
//
|
|
// Created by Michael Starke on 17.06.13.
|
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
//
|
|
|
|
#import "MPDocumentQueryService.h"
|
|
#import "MPDocumentWindowController.h"
|
|
#import "MPDocument.h"
|
|
#import "KPKEntry.h"
|
|
|
|
#import "NSUUID+KeePassKit.h"
|
|
|
|
static NSUUID *_rootUuid = nil;
|
|
|
|
@interface MPDocumentQueryService ()
|
|
|
|
@property (weak) MPDocument *queryDocument;
|
|
@property (nonatomic, weak) KPKEntry *configurationEntry;
|
|
|
|
@end
|
|
|
|
@implementation MPDocumentQueryService
|
|
|
|
+ (MPDocumentQueryService *)sharedService {
|
|
static id instance;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
instance = [[MPDocumentQueryService alloc] init];
|
|
});
|
|
return instance;
|
|
}
|
|
|
|
- (id)init {
|
|
self = [super init];
|
|
if (self) {
|
|
static const uuid_t uuidBytes = {
|
|
0x34, 0x69, 0x7a, 0x40, 0x8a, 0x5b, 0x41, 0xc0,
|
|
0x9f, 0x36, 0x89, 0x7d, 0x62, 0x3e, 0xcb, 0x31
|
|
};
|
|
_rootUuid = [[NSUUID alloc] initWithUUIDBytes:uuidBytes];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (KPKEntry *)configurationEntry {
|
|
/* TODO: lazy getter or do something different like init at first call? */
|
|
if(nil != _configurationEntry) {
|
|
return _configurationEntry;
|
|
}
|
|
/* no config entry there, start looking for it */
|
|
NSArray *documents = [[NSDocumentController sharedDocumentController] documents];
|
|
for(MPDocument *document in documents) {
|
|
if(document.encrypted) {
|
|
NSLog(@"Skipping locked Database: %@", [document displayName]);
|
|
/* TODO: Show input window and open db with window */
|
|
continue;
|
|
}
|
|
KPKEntry *configEntry = [document findEntry:_rootUuid];
|
|
if(nil != configEntry) {
|
|
self.configurationEntry = configEntry;
|
|
self.queryDocument = document;
|
|
return _configurationEntry;
|
|
}
|
|
}
|
|
return nil;
|
|
}
|
|
|
|
- (KPKEntry *)createConfigurationEntry {
|
|
return nil;
|
|
}
|
|
|
|
@end
|