From 74a2e7df54820f2609cedb2a0fc49ca2468b16f9 Mon Sep 17 00:00:00 2001 From: Maxime Date: Thu, 23 Jul 2015 06:17:51 +0000 Subject: [PATCH] Managing perms for new views --- .gitignore | 1 + app.db | Bin 79872 -> 0 bytes app/views.py | 6 +++++- 3 files changed, 6 insertions(+), 1 deletion(-) delete mode 100644 app.db diff --git a/.gitignore b/.gitignore index 0dd5327aec..6e2668ab78 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.db tmp local_config.py +app.db diff --git a/app.db b/app.db deleted file mode 100644 index 5c4db1afcfce9dbcc9c4894efe7b7036c4fd6565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79872 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ɆmYn z`*SEhg~_z{skkB(6{rioL1mM|nstla<@p!Zm*`elwN7sL$UA56;`%+xI!ZB`usK#P za%29Dcb*>OR+J_1lIm%5^?!24B}4pxs9OKr>cIa0epLVed${!;UN<~WC0BKT7ziaazCxefdqs^27UBgr& zIaw0O5ItWUhzy0$d`xp5S7;e8>M)^hkQ72MV*;e?$e32ztGzBlwHhmp*qT`KxEPB% zGE#01@%X518t$m4Ae96n=8d)PT4S-kwu)8Ya%cYfTF>v;YaZ8NQJ-_ft@_~`2xFE{ z&Q3upY3n6u{i?@hR;FXWTzY`Q)(b@`TR+h{Y%qC^3Bxs>mghV!t1_*OrI%ZQH6b0D zk%H9x1c1mUQY@DJ^*`kQ3t0dE9Q=RZFuxQ2|F66^`R{CSD!e+Jmmkg-Nh%(VQ_B>C zOpx+GA(3~smo_*9UdvF}+Jm=FjSI)dSDgQ}h3kZ*7fJcZhB_fIiN z4|&)(L|msBxLi0{w2wnA;8?g&Qql%$YlAc1)uFaB?VvcNT1hEL)ehUI!S-YP>OIsq zZ?=88Xl-z&`zFvJaxrD71|7uV)zzpQghsKm)ZDN*ST6RMsi}p8TEmp}lAjx^jf40SLv#}Vk=cs8=P^kjz3Ox1O7Yp%mIEYN3;sffU6svS+7ozklUr;yOc9H zAP*q5gjSW!j8`|fs?GR4x>*4y7)f!Hj2W{6YQWp%@{EXsS%GNdQ~ufp7qHRuD2}IB z8)s-55lQmc2K(Fd0sHv#|I3E>OX5MC|MiObr{;fa7LC7eyxb@J@9IW-gERfr@yjyZ z;qjGrOj3|S{OG-KI!-PERyH{6e>@I58lWq15P8}c7K|?-m5BZ{ohi(6Ip5&r4Nm>X zkYi7lEP-8vP$Gdnz3wQTEIG%K#Eg@8!%+zql2l4)d4u!)$73(>fTmHfDD6cGdPC=o zCX|w_`}?fqPi}C!zdEx^9t=e4Nww}$5GS(AV+;1i2B-OJ*GrTxD@EnYEms^Y5<@D{ zz_8X(&0_TpPW9I-!AiM`JRa4I0f-%Q8<5SmTcpo}d9t;^iT--C344mtUUZ^6NL`98 z4PXe&COLL;d4n_k^$b8k*y@e|QcQHjXMh1#Ey@1~5`J+0XWshXasIby{vbYXy@peu zzQMWwT82YzMp>%2E3pGXlEyl7cOz8H?F~-**D6p%IJ6w12ON76{2qfPQ}S|bMjZN2{DQefle!QFmF ziTmic7W*=te9ooxc|;GDEe$5GoaUy67-WV?xGcX_SRS?*0VCYBnoJ>Ht= z&P|-|tm0&fsoumA>|A_h2|;!f!D($1_!GX01PEf-Uhcs=);oSec?evHZqWHWvI{IjEV70r5gXiY`Bj}dejpgVL{Gpw0s~4XR s=bz*g8W@{8$0zXQ(7G@De)1q67%aiUJ~}X{zy}7U(G;Y^=nAL)KQQ44ssI20 diff --git a/app/views.py b/app/views.py index 063ebe2af0..85b103d74a 100644 --- a/app/views.py +++ b/app/views.py @@ -6,6 +6,7 @@ from flask import request, redirect, flash, Response from flask.ext.appbuilder.models.sqla.interface import SQLAInterface from flask.ext.appbuilder import ModelView, CompactCRUDMixin, BaseView, expose from app import appbuilder, db, models, viz, utils +from flask.ext.appbuilder.security.decorators import has_access, permission_name import config from wtforms.fields import Field @@ -54,6 +55,8 @@ appbuilder.add_view( class Panoramix(BaseView): + @has_access + @permission_name('datasources') @expose("/datasource//") def datasource(self, datasource_name): viz_type = request.args.get("viz_type") @@ -80,7 +83,8 @@ class Panoramix(BaseView): return obj.render_no_data() return obj.render() - + @has_access + @permission_name('refresh_datasources') @expose("/refresh_datasources/") def refresh_datasources(self): import requests