mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 20:02:27 +00:00
Unified Validation for Actions more
This commit is contained in:
@@ -630,28 +630,43 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey
|
|||||||
id<MPTargetNodeResolving> entryResolver = [NSApp targetForAction:@selector(currentTargetEntry)];
|
id<MPTargetNodeResolving> entryResolver = [NSApp targetForAction:@selector(currentTargetEntry)];
|
||||||
id<MPTargetNodeResolving> groupResolver = [NSApp targetForAction:@selector(currentTargetGroup)];
|
id<MPTargetNodeResolving> groupResolver = [NSApp targetForAction:@selector(currentTargetGroup)];
|
||||||
id<MPTargetNodeResolving> nodeResolver = [NSApp targetForAction:@selector(currentTargetNode)];
|
id<MPTargetNodeResolving> nodeResolver = [NSApp targetForAction:@selector(currentTargetNode)];
|
||||||
|
|
||||||
|
NSLog(@"entryResolver:%@", [entryResolver class]);
|
||||||
|
NSLog(@"groupResolver:%@", [groupResolver class]);
|
||||||
|
NSLog(@"nodeResolver:%@", [nodeResolver class]);
|
||||||
|
|
||||||
KPKNode *targetNode = [nodeResolver currentTargetNode];
|
KPKNode *targetNode = [nodeResolver currentTargetNode];
|
||||||
KPKEntry *targetEntry = [entryResolver currentTargetEntry];
|
KPKEntry *targetEntry = [entryResolver currentTargetEntry];
|
||||||
KPKGroup *targetGroup = [groupResolver currentTargetGroup];
|
KPKGroup *targetGroup = [groupResolver currentTargetGroup];
|
||||||
|
|
||||||
|
if([targetNode asGroup]) {
|
||||||
|
NSLog(@"targetNode:%@", ((KPKGroup *)targetNode).name);
|
||||||
|
}
|
||||||
|
else if([targetNode asEntry]) {
|
||||||
|
NSLog(@"targetNode:%@", ((KPKEntry *)targetNode).title);
|
||||||
|
}
|
||||||
|
|
||||||
|
NSLog(@"targetGroup:%@", targetGroup.name);
|
||||||
|
NSLog(@"tagetEntry:%@", targetEntry.title );
|
||||||
|
|
||||||
if(self.encrypted || self.isReadOnly) { return NO; }
|
if(self.encrypted || self.isReadOnly) { return NO; }
|
||||||
|
|
||||||
BOOL valid = self.selectedItem ? self.selectedItem.isEditable : YES;
|
BOOL valid = targetNode ? targetNode.isEditable : YES;
|
||||||
switch([MPActionHelper typeForAction:[anItem action]]) {
|
switch([MPActionHelper typeForAction:[anItem action]]) {
|
||||||
case MPActionAddGroup:
|
case MPActionAddGroup:
|
||||||
valid &= (nil != self.selectedGroup);
|
valid &= (nil != targetGroup);
|
||||||
valid &= (self.trash != self.selectedGroup);
|
valid &= (self.trash != targetGroup);
|
||||||
valid &= ![self isItemTrashed:self.selectedGroup];
|
valid &= ![self isItemTrashed:targetGroup];
|
||||||
break;
|
break;
|
||||||
case MPActionAddEntry:
|
case MPActionAddEntry:
|
||||||
valid &= (nil != self.selectedGroup);
|
valid &= (nil != targetGroup);
|
||||||
valid &= (self.trash != self.selectedGroup);
|
valid &= (self.trash != targetGroup);
|
||||||
valid &= ![self isItemTrashed:self.selectedGroup];
|
valid &= ![self isItemTrashed:targetGroup];
|
||||||
break;
|
break;
|
||||||
case MPActionDelete:
|
case MPActionDelete:
|
||||||
valid &= (nil != self.selectedItem);
|
valid &= (nil != targetNode);
|
||||||
valid &= (self.trash != self.selectedItem);
|
valid &= (self.trash != targetNode);
|
||||||
valid &= ![self isItemTrashed:self.selectedItem];
|
valid &= ![self isItemTrashed:targetNode];
|
||||||
break;
|
break;
|
||||||
case MPActionCloneEntry:
|
case MPActionCloneEntry:
|
||||||
valid &= (nil != targetEntry);
|
valid &= (nil != targetEntry);
|
||||||
@@ -667,9 +682,9 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey
|
|||||||
valid &= self.compositeKey.hasPasswordOrKeyFile;
|
valid &= self.compositeKey.hasPasswordOrKeyFile;
|
||||||
break;
|
break;
|
||||||
case MPActionShowHistory:
|
case MPActionShowHistory:
|
||||||
valid &= (self.selectedEntry && (self.selectedItem == (id)self.selectedEntry));
|
valid &= (nil != targetEntry);
|
||||||
break;
|
break;
|
||||||
/* Entry View Actions */
|
/* Entry View Actions */
|
||||||
case MPActionCopyUsername:
|
case MPActionCopyUsername:
|
||||||
valid &= (nil != targetEntry) && ([targetEntry.username length] > 0);
|
valid &= (nil != targetEntry) && ([targetEntry.username length] > 0);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user