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

Revision 5341, 3.9 KB checked in by wmerlotto, 12 years ago (diff)

Ticket #2434 - Commit inicial do novo módulo de agenda do Expresso - expressoCalendar

Line 
1<?php
2
3require_once ROOTPATH.'/modules/calendar/interceptors/Helpers.php';
4
5class LDAPMapping extends Helpers {
6       
7       //externalUser
8          static $usertMap = array(     'id'   => 'uidnumber',
9                                        'name' => 'cn',
10                                        'mail' => 'mail',
11                                        'mailAlternateAddress' => 'mailalternateaddress');
12   
13   
14    public function decodeReadUser( &$uri , &$result , &$criteria , $original  ){
15        $result = self::parseConcept( $result , self::$usertMap , true );
16    }
17
18   public function encodeFindUser( &$uri , &$params , &$criteria , $original ){
19            if(isset($criteria['filter']))
20            {
21                if($criteria['filter'][0] === '*' && $criteria['filter'][1] === 'name') //Busca pelo nome usar DFD00032
22                    $criteria['filter'] = array('AND',
23                                                array('AND' ,
24                                                            array('=' , 'objectClass' , 'phpgwAccount'),
25                                                            array('OR' ,
26                                                                        array('=' , 'phpgwAccountType' , 'i'),
27                                                                        array('=' , 'phpgwAccountType' , 'u'),
28                                                                        array('=' , 'phpgwAccountType' , 's')
29                                                                 )
30                                                    ),
31                                                 array('AND' , 
32                                                                array('!','phpgwAccountVisible','-1'),
33                                                                array('OR',
34                                                                        array('=','phpgwAccountStatus','A'),
35                                                                        array('=','accountStatus','active'),
36                                                                        array('=','objectClass','posixGroup')
37                                                                    ),
38                                                                array('OR',
39                                                                        array('*','cn',$criteria['filter'][2]),
40                                                                        array('*','givenName',$criteria['filter'][2]),
41                                                                        array('*','uid',$criteria['filter'][2]),
42                                                                        array('*','sn',$criteria['filter'][2]),
43                                                                        array('*','displayName',$criteria['filter'][2]),
44                                                                        array('*','mail',$criteria['filter'][2]),
45                                                                        array('*','mailAlternateAddress',$criteria['filter'][2]),
46                                                                    )
47                                                          )
48                                                );
49                else
50                    $criteria['filter'] = self::parseFilter($criteria['filter'], self::$usertMap);
51            }
52         
53    } 
54   
55       /*
56                  * ex: array   (
57                  *               [0] 'OR',
58                  *               [1] array( 'OR', array( array( '=', 'campo', 'valor' ) ),
59                  *               [2] array( '=', 'campo' , 'valor' ),
60                  *               [3] array( 'IN', 'campo', array( '1' , '2' , '3' ) )
61                  *             )
62                  * OR
63                  *         array( '=' , 'campo' , 'valor' )
64                */
65   
66    public function decodeFindUser( &$uri , &$result , &$criteria , $original ){       
67        foreach ($result as $i => $v)
68            $result[$i] = self::parseConcept( $v , self::$usertMap , true );
69       
70    } 
71       
72}
73
74?>
Note: See TracBrowser for help on using the repository browser.