source: trunk/prototype/rest/user/UserResource.php @ 6578

Revision 6578, 3.7 KB checked in by tezza, 12 years ago (diff)

Ticket #2766 - Acrescentado/corrigindo recursos de contatos/grupos compartilhados.

  • Property svn:executable set to *
Line 
1<?php
2
3if( !defined( 'ROOTPATH' ) )
4    define( 'ROOTPATH', dirname(__FILE__).'/..' );
5
6require_once(ROOTPATH.'/rest/hypermedia/hypermedia.php');
7
8class UserResource extends Resource {
9
10    /**
11     * Retorna uma lista de usuários
12     *
13     * @license    http://www.gnu.org/copyleft/gpl.html GPL
14     * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br)
15     * @sponsor    Caixa Econômica Federal
16     * @author     José Vicente Tezza Jr.
17     * @return     Retorna um usuário do LDAP filtrado pelo atributo 'uid'
18     * @access     public
19     * */
20    function get($request, $id) {
21
22        $response = new Response($request);
23        $response->addHeader('Content-type', 'aplication/json');
24        $response->code = Response::OK;
25
26        $h = new Hypermedia();
27        $c = new Collection($request->resources, 'UserResource');
28
29        try {
30
31            $this->secured();
32
33            $user = Controller::find(
34                                        array('concept' => 'user','service'=>'OpenLDAP'),
35                                        false,
36                                        array('filter' => array('=', 'uid', $id ),
37                                              'notExternal' => true)
38            );
39
40            //Se nao foi encontrado usuario na consulta
41            if($user===false){
42                        $error = new Error();
43                        $error->setCode(Response::NOTFOUND);
44                        $error->setTitle('UserLDAP not found');
45                        $error->setDescription('User not found.');
46
47                        $c->setError($error);
48                        $h->setCollection($c);
49
50                        $response->code = Response::NOTFOUND;
51                        $response->body = $h->getHypermedia($request->accept[10][0]);
52                        return $response;
53            }
54
55                $t = new Template();
56                $d = new Data();
57
58                $d->setName('name');
59                $d->setValue(null);
60                $d->setPrompt('Nome do Usuário');
61                $d->setDataType('string');
62                $d->setMaxLength(100);
63                $d->setMinLength(null);
64                $d->setRequired(true);
65
66                $t->addData($d);
67                $d = new Data();
68
69                $d->setName('email');
70                $d->setValue(null);
71                $d->setPrompt('Email do Usuário');
72                $d->setDataType('string');
73                $d->setMaxLength(100);
74                $d->setMinLength(null);
75                $d->setRequired(true);
76
77                $t->addData($d);
78
79                $d = new Data();
80                $d->setName('telefone');
81                $d->setValue(null);
82                $d->setPrompt('Telefone do Usuário');
83                $d->setDataType('string');
84                $d->setMaxLength(100);
85                $d->setMinLength(null);
86                $d->setRequired(true);
87
88                $t->addData($d);
89
90                $c->setTemplate($t);
91               
92                $d = new Data();
93                $d->setName('name');
94                $d->setValue($user[0]['name']);
95                $d->setPrompt('Nome do Usuário');
96                $d->setDataType('string');
97                $d->setMaxLength('100');
98                $d->setMinLength(null);
99                $d->setRequired(true);
100
101                $c->addData($d);
102               
103                $d = new Data();
104                $d->setName('email');
105                $d->setValue($user[0]['mail']);
106                $d->setPrompt('Email do Usuário');
107                $d->setDataType('string');
108                $d->setMaxLength('100');
109                $d->setMinLength(null);
110                $d->setRequired(true);
111               
112                $c->addData($d);
113               
114                $d = new Data();
115                $d->setName('telephoneNumber');
116                $d->setValue($user[0]['telephoneNumber']);
117                $d->setPrompt('Telefone do Usuário');
118                $d->setDataType('string');
119                $d->setMaxLength('100');
120                $d->setMinLength(null);
121                $d->setRequired(true);
122                       
123                $c->addData($d);
124               
125                $l = new Link();
126                $l->setHref('');
127                $l->setRel('delete');
128                $l->setAlt('Remover');
129                $l->setPrompt('Remover');
130                $l->setRender('link');
131
132                $c->addLink($l);
133
134                $l = new Link();
135                $l->setHref('');
136                $l->setRel('put');
137                $l->setAlt('Atualizar');
138                $l->setPrompt('Atualizar');
139                $l->setRender('link');
140
141                $c->addLink($l);
142
143                $h->setCollection($c);
144
145        }catch (Exception $ex){
146                $error = new Error();
147                $error->setCode(Response::INTERNALSERVERERROR);
148                $error->setTitle('Internal Server Error');
149                $error->setDescription($ex);
150
151                $c->setError($error);
152                $h->setCollection($c);
153
154                $response->code = Response::INTERNALSERVERERROR;
155                $response->body = $h->getHypermedia($request->accept[10][0]);
156                return $response;
157        }
158
159        $response->body = $h->getHypermedia($request->accept[10][0]);
160        return $response;
161  }
162}
163?>
Note: See TracBrowser for help on using the repository browser.