1 | <?php |
---|
2 | |
---|
3 | require_once ROOTPATH.'/modules/calendar/interceptors/Helpers.php'; |
---|
4 | |
---|
5 | class 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 | ?> |
---|