source: sandbox/2.4.1-3/prototype/rest/user/UserResource.php @ 6360

Revision 6360, 5.2 KB checked in by gustavo, 12 years ago (diff)

Ticket #2768 - Melhorias na inserção de destinatários na criacao de mensagem

  • 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(array('concept' => 'user','service'=>'OpenLDAP'), false, array('filter' => array('=', 'uid', $id )));
34
35            //Se nao foi encontrado usuario na consulta
36            if($user===false){
37                $error = new Error();
38                $error->setCode(Response::NOTFOUND);
39                $error->setTitle('UserLDAP not found');
40                $error->setDescription('User not found.');
41
42                $c->setError($error);
43                $h->setCollection($c);
44
45                $response->code = Response::NOTFOUND;
46                $response->body = $h->getHypermedia($request->accept[10][0]);
47                return $response;
48            }
49
50            foreach($user as $value){
51                $d = new Data();
52                $i = new Item($request->resources, 'UserResource', $value['uid']);
53
54                $d->setName('name');
55                $d->setValue($value['name']);
56                $d->setPrompt('Nome do Usuário');
57                $d->setDataType('string');
58                $d->setMaxLength('100');
59                $d->setMinLength(null);
60                $d->setRequired(true);
61
62                $i->addData($d);
63
64                $d = new Data();
65                $d->setName('email');
66                $d->setValue($value['mail']);
67                $d->setPrompt('Email do Usuário');
68                $d->setDataType('string');
69                $d->setMaxLength('100');
70                $d->setMinLength(null);
71                $d->setRequired(true);
72
73                $i->addData($d);
74
75                $d = new Data();
76                $d->setName('telephoneNumber');
77                $d->setValue($value['telephoneNumber']);
78                $d->setPrompt('Telefone do Usuário');
79                $d->setDataType('string');
80                $d->setMaxLength('100');
81                $d->setMinLength(null);
82                $d->setRequired(true);
83
84                $i->addData($d);
85
86                $l = new Link();
87
88                $l->setHref('');
89                $l->setRel('delete');
90                $l->setAlt('Remover');
91                $l->setPrompt('Remover');
92                $l->setRender('link');
93
94                $i->addLink($l);
95
96                $l = new Link();
97                $l->setHref('');
98                $l->setRel('put');
99                $l->setAlt('Atualizar');
100                $l->setPrompt('Atualizar');
101                $l->setRender('link');
102
103                $i->addLink($l);
104
105                $l = new Link();
106                $l->setHref($i->getHref());
107                $l->setRel('get');
108                $l->setAlt('Buscar');
109                $l->setPrompt('Buscar');
110                $l->setRender('link');
111
112                $i->addLink($l);
113                $c->addItem($i);
114            }
115
116            $t = new Template();
117            $d = new Data();
118
119            $d->setName('name');
120            $d->setValue(null);
121            $d->setPrompt('Nome do Usuário');
122            $d->setDataType('string');
123            $d->setMaxLength(100);
124            $d->setMinLength(null);
125            $d->setRequired(true);
126
127            $t->addData($d);
128            $d = new Data();
129
130            $d->setName('email');
131            $d->setValue(null);
132            $d->setPrompt('Email do Usuário');
133            $d->setDataType('string');
134            $d->setMaxLength(100);
135            $d->setMinLength(null);
136            $d->setRequired(true);
137
138            $t->addData($d);
139
140            $d = new Data();
141            $d->setName('telefone');
142            $d->setValue(null);
143            $d->setPrompt('Telefone do Usuário');
144            $d->setDataType('string');
145            $d->setMaxLength(100);
146            $d->setMinLength(null);
147            $d->setRequired(true);
148
149            $t->addData($d);
150
151            $c->setTemplate($t);
152            $d = new Data();
153
154            $d->setName('Usuário LDAP');
155            $d->setValue(null);
156            $d->setPrompt('Usuário do LDAP');
157            $d->setDataType(null);
158            $d->setMaxLength(null);
159            $d->setMinLength(null);
160            $d->setRequired(null);
161
162            $c->setData($d);
163
164            $h->setCollection($c);
165
166        }catch (Exception $ex){
167                $error = new Error();
168                $error->setCode(Response::INTERNALSERVERERROR);
169                $error->setTitle('Internal Server Error');
170                $error->setDescription($ex);
171
172                $c->setError($error);
173                $h->setCollection($c);
174
175                $response->code = Response::INTERNALSERVERERROR;
176                $response->body = $h->getHypermedia($request->accept[10][0]);
177                return $response;
178        }
179
180        $response->body = $h->getHypermedia($request->accept[10][0]);
181        return $response;
182  }
183}
184?>
Note: See TracBrowser for help on using the repository browser.