Changed initial empty database layout to conform to KeePass standards

This commit is contained in:
michael starke
2013-06-21 18:26:08 +02:00
parent dd14bae24f
commit 650103b52d
5 changed files with 166 additions and 5 deletions

View File

@@ -0,0 +1,15 @@
//
// Kdb3Tree+NewTree.h
// MacPass
//
// Created by Michael Starke on 21.06.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "Kdb3Node.h"
@interface Kdb3Tree (NewTree)
+ (Kdb3Tree *)newTemplateTree;
@end

View File

@@ -0,0 +1,55 @@
//
// Kdb3Tree+NewTree.m
// MacPass
//
// Created by Michael Starke on 21.06.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "Kdb3Tree+NewTree.h"
@implementation Kdb3Tree (NewTree)
+ (Kdb3Tree *)newTemplateTree {
Kdb3Tree *tree = [[Kdb3Tree alloc] init];
Kdb3Group *rootGroup = [[Kdb3Group alloc] init];
rootGroup.name = @"%ROOT%";
tree.root = rootGroup;
KdbGroup *parentGroup = [tree createGroup:rootGroup];
parentGroup.name = @"General";
parentGroup.image = 48;
[rootGroup addGroup:parentGroup];
KdbGroup *group = [tree createGroup:parentGroup];
group.name = @"Windows";
group.image = 38;
[parentGroup addGroup:group];
group = [tree createGroup:parentGroup];
group.name = @"Network";
group.image = 3;
[parentGroup addGroup:group];
group = [tree createGroup:parentGroup];
group.name = @"Internet";
group.image = 1;
[parentGroup addGroup:group];
group = [tree createGroup:parentGroup];
group.name = @"eMail";
group.image = 19;
[parentGroup addGroup:group];
group = [tree createGroup:parentGroup];
group.name = @"Homebanking";
group.image = 37;
[parentGroup addGroup:group];
[rootGroup release];
return tree;
}
@end

View File

@@ -0,0 +1,15 @@
//
// Kdb4Tree+NewTree.h
// MacPass
//
// Created by Michael Starke on 21.06.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "Kdb4Node.h"
@interface Kdb4Tree (NewTree)
+(Kdb4Tree *)newTemplateTree;
@end

View File

@@ -0,0 +1,77 @@
//
// Kdb4Tree+NewTree.m
// MacPass
//
// Created by Michael Starke on 21.06.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "Kdb4Tree+NewTree.h"
@implementation Kdb4Tree (NewTree)
+ (Kdb4Tree *)newTemplateTree {
NSDate *currentTime = [NSDate date];
Kdb4Tree *tree = [[Kdb4Tree alloc] init];
tree.generator = @"MiniKeePass";
tree.databaseName = @"";
tree.databaseNameChanged = currentTime;
tree.databaseDescription = @"";
tree.databaseDescriptionChanged = currentTime;
tree.defaultUserName = @"";
tree.defaultUserNameChanged = currentTime;
tree.maintenanceHistoryDays = 365;
tree.color = @"";
tree.masterKeyChanged = currentTime;
tree.masterKeyChangeRec = -1;
tree.masterKeyChangeForce = -1;
tree.protectTitle = NO;
tree.protectUserName = NO;
tree.protectPassword = YES;
tree.protectUrl = NO;
tree.protectNotes = NO;
tree.recycleBinEnabled = YES;
tree.recycleBinUuid = [UUID nullUuid];
tree.recycleBinChanged = currentTime;
tree.entryTemplatesGroup = [UUID nullUuid];
tree.entryTemplatesGroupChanged = currentTime;
tree.historyMaxItems = 10;
tree.historyMaxSize = 6 * 1024 * 1024; // 6 MB
tree.lastSelectedGroup = [UUID nullUuid];
tree.lastTopVisibleGroup = [UUID nullUuid];
KdbGroup *parentGroup = [tree createGroup:nil];
parentGroup.name = @"General";
parentGroup.image = 48;
tree.root = parentGroup;
KdbGroup *group = [tree createGroup:parentGroup];
group.name = @"Windows";
group.image = 38;
[parentGroup addGroup:group];
group = [tree createGroup:parentGroup];
group.name = @"Network";
group.image = 3;
[parentGroup addGroup:group];
group = [tree createGroup:parentGroup];
group.name = @"Internet";
group.image = 1;
[parentGroup addGroup:group];
group = [tree createGroup:parentGroup];
group.name = @"eMail";
group.image = 19;
[parentGroup addGroup:group];
group = [tree createGroup:parentGroup];
group.name = @"Homebanking";
group.image = 37;
[parentGroup addGroup:group];
return tree;
}
@end

View File

@@ -17,6 +17,8 @@
#import "KdbGroup+KVOAdditions.h"
#import "KdbGroup+MPTreeTools.h"
#import "KdbEntry+Undo.h"
#import "Kdb3Tree+NewTree.h"
#import "Kdb4Tree+NewTree.h"
NSString *const MPDocumentDidAddGroupNotification = @"MPDocumentDidAddGroupNotification";
NSString *const MPDocumentWillDelteGroupNotification = @"MPDocumentDidDelteGroupNotification";
@@ -52,18 +54,15 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
_isProtected = NO;
switch(version) {
case MPDatabaseVersion3:
self.tree = [[[Kdb3Tree alloc] init] autorelease];
_tree = [Kdb3Tree newTemplateTree];
break;
case MPDatabaseVersion4:
self.tree = [[[Kdb4Tree alloc] init] autorelease];
_tree = [Kdb4Tree newTemplateTree];
break;
default:
[self release];
return nil;
}
KdbGroup *newGroup = [self.tree createGroup:self.tree.root];
newGroup.name = @"Default";
self.tree.root = newGroup;
}
return self;
}