def obtener_acceso_modulos(token=None): config = AssistanceModel._config() perfiles = config['api']['perfiles'] for perfil in perfiles: p = perfil['perfil'] response = warden.has_all_profiles(token, [p]) if 'profile' in response and response['profile']: return perfil['funciones'] """ se chequea el modelo para controlar si es necesario asignarle ciertas funciones """ autorizador_id = token['sub'] funciones = AssistanceModel.obtener_acceso_modulos(autorizador_id) if funciones: return funciones """ si no matcheo anteriorment entonces retorno las funciones por defecto. """ pgen = (p for p in perfiles if p['perfil'] == 'default') pdefault = next(pgen) if not pdefault or pdefault['perfil'] != 'default': raise Exception('no se encuentra perfil por defecto') return pdefault['funciones']
def lugares(token=None): uid = token['sub'] search = request.args.get('q') if not search: search = '' prof = warden.has_one_profile(token, ['assistance-super-admin','assistance-admin','assistance-operator', 'assistance-user']) if prof and prof['profile'] == True: config = AssistanceModel._config() lid = config['api']['lugar_raiz'] return AssistanceModel.sublugares_por_lugar_id(lugar_id=lid, search=search) return AssistanceModel.lugares(session=None, autorizador_id=uid, search=search)
def retornar_config_ui(): config = AssistanceModel._config() return config['ui']