]> err.no Git - sope/blob - sope-mime/samples/imapacl.m
synced with latest additions and bumped framework versions
[sope] / sope-mime / samples / imapacl.m
1 /*
2   Copyright (C) 2000-2005 SKYRIX Software AG
3
4   This file is part of SOPE.
5
6   SOPE is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with SOPE; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21
22 #include <NGImap4/NGImap4Client.h>
23 #include <NGImap4/NGImap4FileManager.h>
24 #include <NGImap4/NGImap4Context.h>
25 #include "ImapQuotaTool.h"
26 #include "common.h"
27
28 int main(int argc, char **argv, char **env) {
29   NSAutoreleasePool *pool;
30   ImapQuotaTool *tool;
31   int res = 0;
32   
33   pool = [NSAutoreleasePool new];
34   
35 #if LIB_FOUNDATION_LIBRARY  
36   [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
37 #endif
38   
39   tool = [[ImapQuotaTool alloc] init];
40
41   {
42     NGImap4Client *client;
43     NSString *mailbox;
44     
45     client = [[[tool fileManager] imapContext] client];
46     
47     mailbox = [[NSUserDefaults standardUserDefaults] objectForKey:@"path"];
48     NSLog(@"acl test on path: %@", mailbox);
49     NSLog(@"  acl %@", [[client getACL:mailbox] valueForKey:@"acl"]);
50     
51     NSLog(@"  set urks 'lr' %@", 
52           [[client setACL:mailbox rights:@"lr" uid:@"urks"] 
53             valueForKey:@"result"]);
54     NSLog(@"  acl %@", [[client getACL:mailbox] valueForKey:@"acl"]);
55     
56     NSLog(@"  rm urks %@", 
57           [[client deleteACL:mailbox uid:@"urks"] valueForKey:@"result"]);
58     NSLog(@"  acl %@", [[client getACL:mailbox] valueForKey:@"acl"]);
59     
60     
61     NSLog(@"  my rights: '%@'",
62           [[client myRights:mailbox] valueForKey:@"myrights"]);
63     
64     NSLog(@"  list rights: %@",
65           [[[client listRights:mailbox uid:@"urks"] 
66              valueForKey:@"listrights"] componentsJoinedByString:@","]);
67   }  
68   [tool release];
69   
70   [pool release];
71   exit(res);
72   /* static linking */
73   [NGExtensions class];
74   return res;
75 }