1515from flask_oauthlib .client import OAuth
1616from six .moves .urllib .parse import urlencode
1717import requests
18-
18+ import rule_functions
1919import constants
20+ from urllib .parse import unquote
2021
2122ENV_FILE = find_dotenv ()
2223if ENV_FILE :
2728AUTH0_CLIENT_SECRET = env .get (constants .AUTH0_CLIENT_SECRET )
2829AUTH0_DOMAIN = env .get (constants .AUTH0_DOMAIN )
2930AUTH0_AUDIENCE = env .get (constants .AUTH0_AUDIENCE )
31+ AUTH0_MANAGEMENT_JWT = env .get (constants .MANAGEMENT_JWT )
32+
3033if AUTH0_AUDIENCE is '' :
3134 AUTH0_AUDIENCE = 'https://' + AUTH0_DOMAIN + '/userinfo'
3235
@@ -49,10 +52,13 @@ def handle_auth_error(ex):
4952 return response
5053
5154
52- @APP .errorhandler (Exception )
53- def handle_auth_error (ex ):
54- response = jsonify (message = ex .message )
55- return response
55+ #@APP.errorhandler(Exception)
56+ #def handle_auth_error(ex):
57+ # try :
58+ # response = jsonify(message=ex.message)
59+ # return response
60+ # except :
61+ # return "Unable to process error"
5662
5763oauth = OAuth (APP )
5864
@@ -122,9 +128,38 @@ def logout():
122128 return redirect (auth0 .base_url + '/v2/logout?' + urlencode (params ))
123129
124130
131+ @APP .route ('/get_rules' )
132+ @requires_auth
133+ def get_rules ():
134+ variable = request .args .get ('variable' )
135+ pattern = request .args .get ('pattern' )
136+
137+ pattern = unquote (pattern , 'utf-8' )
138+ variable = unquote (variable , 'utf-8' )
139+
140+ print (variable )
141+
142+ if '"' in pattern :
143+ pattern = pattern .replace ('"' , '' )
144+
145+ if variable is None or pattern is None :
146+ return redirect (url_for ("home" ))
147+
148+ try :
149+ rules = rule_functions .getRulesMatching (variable , pattern , AUTH0_DOMAIN , AUTH0_MANAGEMENT_JWT )
150+ except Exception :
151+ rules = []
152+
153+ if len (rules ) < 1 :
154+ return redirect (url_for ("dashboard" ))
155+
156+ return render_template ("list_rules.html" , rules = rules )
157+
158+
125159@APP .route ('/dashboard' )
126160@requires_auth
127161def dashboard ():
162+
128163 return render_template ('dashboard.html' ,
129164 userinfo = session [constants .PROFILE_KEY ],
130165 userinfo_pretty = json .dumps (session [constants .JWT_PAYLOAD ], indent = 4 ))
0 commit comments