Commit 7b46b5228543f33d71581201208c708179b4934c
1 parent
aa3fa2d6
Exists in
master
Correção de permissões, de templates e menssagens
Showing
8 changed files
with
66 additions
and
56 deletions
Show diff stats
wscacicneo/__init__.py
... | ... | @@ -5,6 +5,7 @@ from wscacicneo import config |
5 | 5 | from pyramid.authentication import AuthTktAuthenticationPolicy |
6 | 6 | from pyramid.authorization import ACLAuthorizationPolicy |
7 | 7 | from pyramid.config import Configurator |
8 | +from pyramid.httpexceptions import HTTPNotFound | |
8 | 9 | |
9 | 10 | |
10 | 11 | |
... | ... | @@ -31,7 +32,6 @@ def main(global_config, **settings): |
31 | 32 | |
32 | 33 | # Rotas Básicas |
33 | 34 | cfg.add_route('home', 'home') |
34 | - cfg.add_route('error', 'error') | |
35 | 35 | cfg.add_route('notifications', 'notifications') |
36 | 36 | cfg.add_route('orgao', 'orgao/cadastro') |
37 | 37 | ... | ... |
wscacicneo/models.py
... | ... | @@ -65,7 +65,7 @@ so = Table('so', Base.metadata, |
65 | 65 | mapper(SistemaOperacional, so) |
66 | 66 | |
67 | 67 | class RootFactory(object): |
68 | - __acl__ = [ (Allow, Everyone, 'view'), | |
69 | - (Allow, 'Administrador', 'edit') ] | |
68 | + __acl__ = [ (Allow, Everyone, 'user'), | |
69 | + (Allow, 'Administrador', 'admin') ] | |
70 | 70 | def __init__(self, request): |
71 | 71 | pass |
72 | 72 | \ No newline at end of file | ... | ... |
wscacicneo/templates/editarorgao.pt
... | ... | @@ -105,8 +105,8 @@ |
105 | 105 | type: "PUT", |
106 | 106 | url: "${request.route_url('root')}put_orgao", |
107 | 107 | data: data, |
108 | - success: function(){ alert('Cadastro realizado com sucesso') }, | |
109 | - error: function(){ alert('Erro ao realizar o cadastro. Todos os campos são obrigatórios') }, | |
108 | + success: function(){ alert('Alteração realizado com sucesso') }, | |
109 | + error: function(){ alert('Erro ao alterar o orgão. Todos os campos são obrigatórios') }, | |
110 | 110 | }); |
111 | 111 | }); |
112 | 112 | </script> | ... | ... |
wscacicneo/templates/editaruser.pt
... | ... | @@ -59,7 +59,7 @@ |
59 | 59 | <div class="form-group"> |
60 | 60 | <label class="col-lg-2 control-label">Senha</label> |
61 | 61 | <div class="col-lg-5"> |
62 | - <input type="text" id="senha" value="${senha}" class="form-control" placeholder="Informe novamente sua senha"> | |
62 | + <input type="text" id="senha" class="form-control" placeholder="Informe novamente sua senha"> | |
63 | 63 | </div> |
64 | 64 | </div><div class="form-group"> |
65 | 65 | <label class="col-lg-2 control-label">Confirmar Senha</label> |
... | ... | @@ -114,16 +114,30 @@ |
114 | 114 | 'permissao': permissao, |
115 | 115 | 'senha': senha |
116 | 116 | } |
117 | - if (data.email.indexOf("gov.br") > -1 == false){ | |
118 | - alert('Somente é permitido cadastro de e-mails institucionais'); | |
117 | + var emailCorreto = 0; | |
118 | + var senhaConfere = 0; | |
119 | + if (data.email.indexOf("gov.br") > -1 == true){ | |
120 | + emailCorreto = 1; | |
121 | + } | |
122 | + if(senha.value == confirmarsenha.value && senha.value != "" ){ | |
123 | + senhaConfere = 1; | |
124 | + } | |
125 | + if (emailCorreto == 0 || senhaConfere == 0){ | |
126 | + if(emailCorreto == 0){ | |
127 | + setTimeout(function() {noty({text: 'Erro: O campo "E-Mail" deve ser preenchido por um e-mail institucional',layout:'topRight',type:'error',timeout:5000});}, 100); | |
128 | + } | |
129 | + if(senhaConfere == 0){ | |
130 | + setTimeout(function() {noty({text: 'Erro: O campo "Senha" e "Confirmar Senha" estão diferentes ou em branco',layout:'topRight',type:'error',timeout:5000});}, 100); | |
131 | + } | |
119 | 132 | }else{ |
120 | - $.ajax({ | |
121 | - type: "PUT", | |
122 | - url: "${request.route_url('root')}put_user", | |
123 | - data: data, | |
124 | - success: function(){ alert('sucesso') }, | |
125 | - error: function(){ alert('erro') }, | |
126 | - });} | |
133 | + $.ajax({ | |
134 | + type: "PUT", | |
135 | + url: "${request.route_url('root')}put_user", | |
136 | + data: data, | |
137 | + success: function(){ alert('Alteração realizado com sucesso') }, | |
138 | + error: function(){ alert('Erro ao Alterar do usuário. Todos os campos são obrigatórios') }, | |
139 | + }); | |
140 | + } | |
127 | 141 | }); |
128 | 142 | </script> |
129 | 143 | </metal:content> | ... | ... |
wscacicneo/templates/home.pt
1 | 1 | <metal:main use-macro="load: master.pt"> |
2 | 2 | <metal:content fill-slot="conteudo"> |
3 | 3 | <div> |
4 | - <p><h3 align="center">Sistema Super-Gerente</h3></p> | |
4 | + <p><h2 align="center">Sistema Super-Gerente</h2></p> | |
5 | + <br> | |
6 | + <p><h3 align="center"><a href="${request.route_url('root')}login"> Faça Login </a></h3></p> | |
5 | 7 | </div> |
6 | 8 | </metal:content> |
7 | 9 | </metal:main> | ... | ... |
wscacicneo/templates/list_user.pt
... | ... | @@ -24,8 +24,7 @@ |
24 | 24 | <tr> |
25 | 25 | <th>Nome</th> |
26 | 26 | <th>Matricula</th> |
27 | - <th>Cargo</th> | |
28 | - <th>Setor</th> | |
27 | + <th>E-mail</th> | |
29 | 28 | <th>Orgão</th> |
30 | 29 | <th>Permissão</th> |
31 | 30 | <th>Opções</th> |
... | ... | @@ -35,14 +34,12 @@ |
35 | 34 | <tr tal:repeat="doc user_doc"> |
36 | 35 | <td>${doc.nome}</td> |
37 | 36 | <td>${doc.matricula}</td> |
38 | - <td>${doc.cargo}</td> | |
39 | - <td>${doc.setor}</td> | |
37 | + <td>${doc.email}</td> | |
40 | 38 | <td>${doc.orgao}</td> |
41 | 39 | <td>${doc.permissao}</td> |
42 | 40 | <td> |
43 | - <a class="btn btn-xs btn-success"><i class="fa fa-check"></i></a> | |
44 | - <a href="${request.route_url('root')}usuario/editar/${doc.matricula}" class="btn btn-xs btn-warning"><i class="fa fa-pencil"></i></a> | |
45 | - <a href="${request.route_url('root')}usuario/delete/${doc.matricula}" class="btn btn-xs btn-danger"><i class="fa fa-times"></i></a> | |
41 | + <a href="${request.route_url('root')}usuario/editar/${doc.matricula}" class="btn btn-xs btn-warning" title="Editar"><i class="fa fa-pencil"></i></a> | |
42 | + <a href="${request.route_url('root')}usuario/delete/${doc.matricula}" class="btn btn-xs btn-danger" title="Apagar"><i class="fa fa-times"></i></a> | |
46 | 43 | </td> |
47 | 44 | </tr> |
48 | 45 | </tbody> | ... | ... |
wscacicneo/templates/master.pt
... | ... | @@ -96,7 +96,7 @@ |
96 | 96 | |
97 | 97 | <!-- Page heading --> |
98 | 98 | <div class="page-head"> |
99 | - <h2 class="pull-left"><i class="fa fa-home"></i> ${request.path}</h2> | |
99 | + <h2 class="pull-left"><i class="fa fa-home"></i> Você está em: ${request.path}</h2> | |
100 | 100 | |
101 | 101 | |
102 | 102 | <div class="clearfix"></div> | ... | ... |
wscacicneo/views.py
1 | 1 | import requests |
2 | 2 | import json |
3 | 3 | from pyramid.response import Response |
4 | -from pyramid.httpexceptions import HTTPFound | |
4 | +from pyramid.httpexceptions import HTTPFound, HTTPNotFound | |
5 | 5 | from pyramid.view import view_config |
6 | 6 | from sqlalchemy.orm import sessionmaker |
7 | 7 | from sqlalchemy import create_engine, MetaData |
... | ... | @@ -50,16 +50,12 @@ def root(request): |
50 | 50 | return {'project': 'WSCacicNeo'} |
51 | 51 | |
52 | 52 | # Views básicas |
53 | -@view_config(route_name='home', renderer='templates/home.pt') | |
53 | +@view_config(route_name='home', renderer='templates/home.pt', permission="user") | |
54 | 54 | def home(request): |
55 | 55 | return {'project': 'WSCacicNeo'} |
56 | 56 | |
57 | -@view_config(route_name='error', renderer='templates/error.pt') | |
58 | -def error(request): | |
59 | - return {'project': 'WSCacicNeo'} | |
60 | - | |
61 | 57 | # Lista de Notificação |
62 | -@view_config(route_name='list_notify', renderer='templates/list_notify.pt') | |
58 | +@view_config(route_name='list_notify', renderer='templates/list_notify.pt', permission="admin") | |
63 | 59 | def list_notify(request): |
64 | 60 | notify_obj = Notify( |
65 | 61 | orgao = 'deasdsd', |
... | ... | @@ -72,11 +68,11 @@ def list_notify(request): |
72 | 68 | return {'doc': doc} |
73 | 69 | |
74 | 70 | |
75 | -@view_config(route_name='notify', renderer='templates/notify_coleta.pt') | |
71 | +@view_config(route_name='notify', renderer='templates/notify_coleta.pt', permission="admin") | |
76 | 72 | def notify(request): |
77 | 73 | return {'project': 'WSCacicNeo'} |
78 | 74 | |
79 | -@view_config(route_name='post_notify') | |
75 | +@view_config(route_name='post_notify', permission="admin") | |
80 | 76 | def post_notify(request): |
81 | 77 | requests = request.params |
82 | 78 | notify_obj = Notify( |
... | ... | @@ -89,11 +85,11 @@ def post_notify(request): |
89 | 85 | return Response(str(results)) |
90 | 86 | |
91 | 87 | # Views de Orgão |
92 | -@view_config(route_name='orgao', renderer='templates/orgao.pt') | |
88 | +@view_config(route_name='orgao', renderer='templates/orgao.pt', permission="admin") | |
93 | 89 | def orgao(request): |
94 | 90 | return {'project': 'WSCacicNeo'} |
95 | 91 | |
96 | -@view_config(route_name='listorgao', renderer='templates/list_orgao.pt') | |
92 | +@view_config(route_name='listorgao', renderer='templates/list_orgao.pt', permission="user") | |
97 | 93 | def listorgao(request): |
98 | 94 | orgao_obj = Orgao( |
99 | 95 | nome = 'sahuds', |
... | ... | @@ -108,7 +104,7 @@ def listorgao(request): |
108 | 104 | search = orgao_obj.search_list_orgaos() |
109 | 105 | return {'orgao_doc': search.results} |
110 | 106 | |
111 | -@view_config(route_name='editorgao', renderer='templates/editarorgao.pt') | |
107 | +@view_config(route_name='editorgao', renderer='templates/editarorgao.pt', permission="admin") | |
112 | 108 | def editorgao(request): |
113 | 109 | sigla = request.matchdict['sigla'] |
114 | 110 | orgao_obj = Orgao( |
... | ... | @@ -133,7 +129,7 @@ def editorgao(request): |
133 | 129 | 'url' : search.results[0].url |
134 | 130 | } |
135 | 131 | |
136 | -@view_config(route_name='post_orgao') | |
132 | +@view_config(route_name='post_orgao', permission="admin") | |
137 | 133 | def post_orgao(request): |
138 | 134 | """ |
139 | 135 | Post doc órgãos |
... | ... | @@ -156,7 +152,7 @@ def post_orgao(request): |
156 | 152 | |
157 | 153 | return Response(str(id_doc)) |
158 | 154 | |
159 | -@view_config(route_name='put_orgao') | |
155 | +@view_config(route_name='put_orgao', permission="admin") | |
160 | 156 | def put_orgao(request): |
161 | 157 | """ |
162 | 158 | Edita um doc apartir do id |
... | ... | @@ -190,7 +186,7 @@ def put_orgao(request): |
190 | 186 | |
191 | 187 | return Response(edit) |
192 | 188 | |
193 | -@view_config(route_name='delete_orgao') | |
189 | +@view_config(route_name='delete_orgao', permission="admin") | |
194 | 190 | def delete_orgao(request): |
195 | 191 | """ |
196 | 192 | Deleta doc apartir do id |
... | ... | @@ -214,7 +210,7 @@ def delete_orgao(request): |
214 | 210 | return Response(delete) |
215 | 211 | |
216 | 212 | # Views de Favoritos |
217 | -@view_config(route_name='favoritos', renderer='templates/favoritos.pt') | |
213 | +@view_config(route_name='favoritos', renderer='templates/favoritos.pt', permission="admin") | |
218 | 214 | def favoritos(request): |
219 | 215 | matricula = request.matchdict['matricula'] |
220 | 216 | user_obj = User( |
... | ... | @@ -245,7 +241,7 @@ def favoritos(request): |
245 | 241 | 'senha' : search.results[0].senha |
246 | 242 | } |
247 | 243 | |
248 | -@view_config(route_name='edit_favoritos') | |
244 | +@view_config(route_name='edit_favoritos', permission="admin") | |
249 | 245 | def edit_favoritos(request): |
250 | 246 | """ |
251 | 247 | Editar do Favoritos |
... | ... | @@ -284,7 +280,7 @@ def edit_favoritos(request): |
284 | 280 | return Response(edit) |
285 | 281 | |
286 | 282 | # Reports |
287 | -@view_config(route_name='create_orgao') | |
283 | +@view_config(route_name='create_orgao',permission="admin") | |
288 | 284 | def create_base(request): |
289 | 285 | nm_orgao = request.matchdict['nm_orgao'] |
290 | 286 | coletaManualBase = coleta_manual.ColetaManualBase(nm_orgao) |
... | ... | @@ -308,7 +304,7 @@ def conf_report(request): |
308 | 304 | search = orgao_obj.search_list_orgaos() |
309 | 305 | return {'orgao_doc': search.results} |
310 | 306 | |
311 | -@view_config(route_name='report_itens', renderer='templates/report.pt') | |
307 | +@view_config(route_name='report_itens', renderer='templates/report.pt', permission="admin") | |
312 | 308 | def report_itens(request): |
313 | 309 | nm_orgao = request.matchdict['nm_orgao'] |
314 | 310 | attr = request.matchdict['attr'] |
... | ... | @@ -318,11 +314,11 @@ def report_itens(request): |
318 | 314 | |
319 | 315 | # Users |
320 | 316 | |
321 | -@view_config(route_name='user', renderer='templates/user.pt', permission='edit') | |
317 | +@view_config(route_name='user', renderer='templates/user.pt', permission='admin') | |
322 | 318 | def user(request): |
323 | 319 | return {'project': 'WSCacicNeo'} |
324 | 320 | |
325 | -@view_config(route_name='post_user') | |
321 | +@view_config(route_name='post_user', permission="admin") | |
326 | 322 | def post_user(request): |
327 | 323 | """ |
328 | 324 | Post doc users |
... | ... | @@ -355,7 +351,7 @@ def post_user(request): |
355 | 351 | else: |
356 | 352 | return {"emailerrado":"emailerrado"} |
357 | 353 | |
358 | -@view_config(route_name='edituser', renderer='templates/editaruser.pt', permission="edit") | |
354 | +@view_config(route_name='edituser', renderer='templates/editaruser.pt', permission="admin") | |
359 | 355 | def edituser(request): |
360 | 356 | matricula = request.matchdict['matricula'] |
361 | 357 | user_obj = User( |
... | ... | @@ -382,7 +378,7 @@ def edituser(request): |
382 | 378 | 'senha' : search.results[0].senha |
383 | 379 | } |
384 | 380 | |
385 | -@view_config(route_name='put_user') | |
381 | +@view_config(route_name='put_user', permission="admin") | |
386 | 382 | def put_user(request): |
387 | 383 | """ |
388 | 384 | Edita um doc de user apartir do id |
... | ... | @@ -423,7 +419,7 @@ def put_user(request): |
423 | 419 | else: |
424 | 420 | return { } |
425 | 421 | |
426 | -@view_config(route_name='listuser', renderer='templates/list_user.pt', permission="view") | |
422 | +@view_config(route_name='listuser', renderer='templates/list_user.pt', permission="admin") | |
427 | 423 | def listuser(request): |
428 | 424 | user_obj = User( |
429 | 425 | nome = 'asdasd', |
... | ... | @@ -440,7 +436,7 @@ def listuser(request): |
440 | 436 | search = user_obj.search_list_users() |
441 | 437 | return {'user_doc': search.results} |
442 | 438 | |
443 | -@view_config(route_name='delete_user') | |
439 | +@view_config(route_name='delete_user', permission="admin") | |
444 | 440 | def delete_user(request): |
445 | 441 | """ |
446 | 442 | Deleta doc apartir do id |
... | ... | @@ -465,7 +461,7 @@ def delete_user(request): |
465 | 461 | return Response(delete) |
466 | 462 | |
467 | 463 | # Autenticação |
468 | -@view_config(route_name='login', renderer='templates/login.pt') | |
464 | +@view_config(route_name='login', renderer='templates/login.pt', permission="view") | |
469 | 465 | @forbidden_view_config(renderer='templates/login.pt') |
470 | 466 | def login(request): |
471 | 467 | user_obj = User( |
... | ... | @@ -482,10 +478,11 @@ def login(request): |
482 | 478 | ) |
483 | 479 | login_url = request.route_url('login') |
484 | 480 | referrer = request.url |
481 | + message = 'Você não tem permissão para isso. Autentique-se.' | |
485 | 482 | if referrer == login_url: |
486 | 483 | referrer = request.route_url('root') + 'home' # never use the login form itself as came_from |
484 | + message = '' | |
487 | 485 | came_from = request.params.get('came_from', referrer) |
488 | - message = '' | |
489 | 486 | email = '' |
490 | 487 | senha = '' |
491 | 488 | is_visible = 'none' |
... | ... | @@ -498,12 +495,12 @@ def login(request): |
498 | 495 | headers = remember(request, email) |
499 | 496 | return HTTPFound(location = came_from, |
500 | 497 | headers = headers) |
501 | - is_visible = "block" | |
502 | 498 | message = 'E-mail ou senha incorretos' |
503 | 499 | except: |
504 | - is_visible = "block" | |
505 | 500 | message = 'E-mail ou senha incorretos' |
506 | 501 | |
502 | + if message != '': | |
503 | + is_visible = "block" | |
507 | 504 | return dict( |
508 | 505 | message = message, |
509 | 506 | url = request.application_url + '/login', |
... | ... | @@ -513,14 +510,14 @@ def login(request): |
513 | 510 | is_visible = is_visible, |
514 | 511 | ) |
515 | 512 | |
516 | -@view_config(route_name='logout') | |
513 | +@view_config(route_name='logout', permission="admin") | |
517 | 514 | def logout(request): |
518 | 515 | headers = forget(request) |
519 | 516 | return HTTPFound(location = request.route_url('login'), |
520 | 517 | headers = headers) |
521 | 518 | |
522 | 519 | # Coleta |
523 | -@view_config(route_name='cadastro_coleta', renderer='templates/cadastro_coleta.pt') | |
520 | +@view_config(route_name='cadastro_coleta', renderer='templates/cadastro_coleta.pt', permission="admin") | |
524 | 521 | def cadastro_coleta(request): |
525 | 522 | orgao_obj = Orgao( |
526 | 523 | nome = 'teste', |
... | ... | @@ -536,7 +533,7 @@ def cadastro_coleta(request): |
536 | 533 | return {'orgao_doc': search.results} |
537 | 534 | |
538 | 535 | |
539 | -@view_config(route_name='post_coleta_manual') | |
536 | +@view_config(route_name='post_coleta_manual', permission="admin") | |
540 | 537 | def post_coleta_manual(request): |
541 | 538 | """ |
542 | 539 | Post doc ColetaManual | ... | ... |