1//
2//  Copyright (c) 2012 Apple. All rights reserved.
3//
4
5#import "Authority.h"
6
7#import <Security/SecAssessment.h>
8
9@implementation Authority
10
11
12- (Authority *)initWithAssessment:(NSDictionary *)assessment
13{
14    [self updateWithAssessment:assessment];
15    return self;
16}
17
18- (void)updateWithAssessment:(NSDictionary *)assessment
19{
20    self.identity = [assessment objectForKey:(__bridge id)kSecAssessmentRuleKeyID];
21    self.remarks = [assessment objectForKey:(__bridge id)kSecAssessmentRuleKeyRemarks];
22    self.disabled = [assessment objectForKey:(__bridge id)kSecAssessmentRuleKeyDisabled];
23    self.codeRequirement = [assessment objectForKey:(__bridge id)kSecAssessmentRuleKeyRequirement];
24    self.bookmark = [assessment objectForKey:(__bridge id)kSecAssessmentRuleKeyBookmark];
25}
26
27- (NSString *)description
28{
29    if (self.remarks)
30	return self.remarks;
31    return @"description here";
32}
33
34- (NSImage *)icon
35{
36    if (self.bookmark == NULL)
37	return NULL;
38    
39    NSURL *url = [NSURL URLByResolvingBookmarkData:self.bookmark options:0 relativeToURL:NULL bookmarkDataIsStale:NULL error:NULL];
40 
41    NSDictionary *icons = [url resourceValuesForKeys:@[ NSURLEffectiveIconKey, NSURLCustomIconKey ] error:NULL];
42    
43    NSImage *image = [icons objectForKey: NSURLCustomIconKey];
44    if (image)
45	return image;
46
47    return [icons objectForKey: NSURLEffectiveIconKey];
48}
49
50@end
51