source: trunk/prototype/modules/calendar/interceptors/LDAPMapping.php @ 5804

Revision 5804, 6.1 KB checked in by acoutinho, 12 years ago (diff)

Ticket #2434 - Implementada funcionalidade de criacao de agenda para contas compartilhadas e imposicao de agendas

Line 
1<?php
2
3require_once ROOTPATH.'/modules/calendar/interceptors/Helpers.php';
4
5class LDAPMapping extends Helpers {
6
7   public function encodeFindUser( &$uri , &$params , &$criteria , $original ){
8            if(isset($criteria['filter']))
9            {
10                if($criteria['filter'][0] === '*' && $criteria['filter'][1] === 'name') //Busca pelo nome usar DFD00032
11                    $criteria['filter'] = array('AND',
12                                                array('AND' ,
13                                                            array('=' , 'objectClass' , 'phpgwAccount'),
14                                                            array('OR' ,
15                                                                        array('=' , 'phpgwAccountType' , 'i'),
16                                                                        array('=' , 'phpgwAccountType' , 'u'),
17                                                                        array('=' , 'phpgwAccountType' , 's')
18                                                                 )
19                                                    ),
20                                                 array('AND' , 
21                                                                array('!','phpgwAccountVisible','-1'),
22                                                                array('OR',
23                                                                        array('=','phpgwAccountStatus','A'),
24                                                                        array('=','accountStatus','active'),
25                                                                        array('=','objectClass','posixGroup')
26                                                                    ),
27                                                                array('OR',
28                                                                        array('*','name',$criteria['filter'][2]),
29                                                                        array('*','givenName',$criteria['filter'][2]),
30                                                                        array('*','uid',$criteria['filter'][2]),
31                                                                        array('*','sn',$criteria['filter'][2]),
32                                                                        array('*','displayName',$criteria['filter'][2]),
33                                                                        array('*','mail',$criteria['filter'][2]),
34                                                                        array('*','mailAlternateAddress',$criteria['filter'][2]),
35                                                                    )
36                                                          )
37                                                );
38           
39                else
40                     $criteria['filter'] = array('AND',
41                                                array('AND' ,
42                                                            array('=' , 'objectClass' , 'phpgwAccount'),
43                                                            array('OR' ,
44                                                                        array('=' , 'phpgwAccountType' , 'i'),
45                                                                        array('=' , 'phpgwAccountType' , 'u'),
46                                                                        array('=' , 'phpgwAccountType' , 's')
47                                                                 )
48                                                     ),$criteria['filter']
49                                                );                     
50            }
51         
52    } 
53   
54
55       public function encodeFindGroup( &$uri , &$params , &$criteria , $original ){
56            if(isset($criteria['filter']))
57            {
58                if($criteria['filter'][0] === '*' && $criteria['filter'][1] === 'name') //Busca pelo nome group DFD00032
59                    $criteria['filter'] = array('AND',
60                                                array('AND' ,
61                                                            array('=' , 'objectClass' , 'phpgwAccount'),
62                                                            array('=' , 'phpgwAccountType' , 'g')
63                                                                 
64                                                    ),
65                                                 array('AND' , 
66                                                                array('!','phpgwAccountVisible','-1'),
67                                                                array('OR',
68                                                                        array('=','accountStatus','active'),
69                                                                        array('=','objectClass','posixGroup')
70                                                                    ),
71                                                                array('OR',
72                                                                        array('*','name',$criteria['filter'][2]),
73                                                                        array('*','id',$criteria['filter'][2]),
74                                                                        array('*','mail',$criteria['filter'][2]),
75                                                                        array('*','mailAlternateAddress',$criteria['filter'][2]),
76                                                                    )
77                                                          )
78                                                );
79               
80               
81                    else
82                        $criteria['filter'] = array('AND',
83                            array('AND' ,
84                                        array('=' , 'objectClass' , 'phpgwAccount'),
85                                        array('=' , 'phpgwAccountType' , 'g')
86                                    ),$criteria['filter']
87                            );                     
88            }
89         
90    } 
91     
92   
93   
94}
95
96?>
Note: See TracBrowser for help on using the repository browser.