def _process_variable(iwidget, svariwidget, vardef, forced_values, values_by_varname, values_by_varid): varname = vardef['name'] entry = { 'type': vardef['type'], 'secure': vardef['secure'], } if svariwidget in forced_values['iwidget'] and varname in forced_values['iwidget'][svariwidget]: fv_entry = forced_values['iwidget'][svariwidget][varname] entry['value'] = fv_entry['value'] if vardef['secure']: entry['value'] = encrypt_value(entry['value']) else: entry['value'] = parse_value_from_text(entry, entry['value']) entry['readonly'] = True entry['hidden'] = fv_entry.get('hidden', False) else: entry['value'] = iwidget.variables.get(varname, parse_value_from_text(entry, vardef['default'])) entry['readonly'] = False entry['hidden'] = False values_by_varname[iwidget.id][varname] = entry values_by_varid["%s/%s" % (iwidget.id, varname)] = entry
def _process_variable(iwidget, svariwidget, vardef, forced_values, values_by_varname, values_by_varid): varname = vardef['name'] entry = { 'type': vardef['type'], 'secure': vardef['secure'], } if svariwidget in forced_values['iwidget'] and varname in forced_values[ 'iwidget'][svariwidget]: fv_entry = forced_values['iwidget'][svariwidget][varname] entry['value'] = fv_entry['value'] if vardef['secure']: entry['value'] = encrypt_value(entry['value']) else: entry['value'] = parse_value_from_text(entry, entry['value']) entry['readonly'] = True entry['hidden'] = fv_entry.get('hidden', False) else: entry['value'] = iwidget.variables.get( varname, parse_value_from_text(entry, vardef['default'])) entry['readonly'] = False entry['hidden'] = False values_by_varname[iwidget.id][varname] = entry values_by_varid["%s/%s" % (iwidget.id, varname)] = entry
def _process_variable(component_type, component_id, vardef, value, forced_values, values_by_varname, current_user, workspace_creator): varname = vardef['name'] entry = { 'type': vardef['type'], 'secure': vardef['secure'], } if component_id in forced_values[component_type] and varname in forced_values[component_type][component_id]: fv_entry = forced_values[component_type][component_id][varname] entry['value'] = fv_entry['value'] if vardef['secure']: entry['value'] = encrypt_value(entry['value']) else: entry['value'] = parse_value_from_text(entry, entry['value']) entry['readonly'] = True entry['hidden'] = fv_entry.get('hidden', False) else: # Handle multiuser variables variable_user = current_user if vardef.get("multiuser", False) else workspace_creator if value is None or value["users"].get("%s" % variable_user.id, None) is None: value = parse_value_from_text(entry, vardef['default']) else: value = value["users"].get("%s" % variable_user.id, None) entry['value'] = value entry['readonly'] = False entry['hidden'] = False values_by_varname[component_type][component_id][varname] = entry
def _process_entry(self, entry): if entry['secure'] is True: value = decrypt_value(entry['value']) return parse_value_from_text(entry, value) else: return entry['value']
def _process_entry(self, entry): if entry['secure'] is True: value = decrypt_value(entry['value']) return parse_value_from_text(entry, value) else: return entry['value']
def forwards(self, orm): for iwidget in orm.IWidget.objects.all(): variables = {} for variable in iwidget.variable_set.all(): variables[variable.vardef.name] = parse_value_from_text({"type": TYPE_MAPPING[variable.vardef.type], "default": variable.vardef.default_value}, variable.value) iwidget.variables = variables iwidget.save()
def _process_variable(component_type, component_id, vardef, value, forced_values, values_by_varname, current_user, workspace_creator): varname = vardef['name'] entry = { 'type': vardef['type'], 'secure': vardef['secure'], } if component_id in forced_values[ component_type] and varname in forced_values[component_type][ component_id]: fv_entry = forced_values[component_type][component_id][varname] entry['value'] = fv_entry['value'] if vardef['secure']: entry['value'] = encrypt_value(entry['value']) else: entry['value'] = parse_value_from_text(entry, entry['value']) entry['readonly'] = True entry['hidden'] = fv_entry.get('hidden', False) else: # Handle multiuser variables variable_user = current_user if vardef.get( "multiuser", False) else workspace_creator if value is None or value["users"].get("%s" % variable_user.id, None) is None: value = parse_value_from_text(entry, vardef['default']) else: value = value["users"].get("%s" % variable_user.id, None) entry['value'] = value entry['readonly'] = False entry['hidden'] = False values_by_varname[component_type][component_id][varname] = entry
def _get_global_workspace_data(workspaceDAO, user): data_ret = get_workspace_data(workspaceDAO, user) # Workspace preferences preferences = get_workspace_preference_values(workspaceDAO) data_ret['preferences'] = preferences data_ret['users'] = [] for u in workspaceDAO.users.all(): try: is_organization = u.organization is not None except: is_organization = False data_ret['users'].append({ "fullname": u.get_full_name(), "username": u.username, "organization": is_organization, "accesslevel": "owner" if workspaceDAO.creator == u else "read", }) # Process forced variable values concept_values = get_context_values(workspaceDAO, user) forced_values = process_forced_values(workspaceDAO, user, concept_values, preferences) data_ret['empty_params'] = forced_values['empty_params'] data_ret['extra_prefs'] = forced_values['extra_prefs'] if len(forced_values['empty_params']) > 0: return json.dumps(data_ret, cls=LazyEncoder) cache_manager = VariableValueCacheManager(workspaceDAO, user, forced_values) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workspaceDAO).order_by('position') if tabs.count() > 0: if tabs[0].position is not None: tabs = tabs.order_by('position') else: # set default order for i in range(len(tabs)): tabs[i].position = i tabs[i].save() else: tabs = [createTab(_('Tab'), workspaceDAO)] data_ret['tabs'] = [ get_tab_data(tab, workspace=workspaceDAO, cache_manager=cache_manager, user=user) for tab in tabs ] data_ret['wiring'] = deepcopy(workspaceDAO.wiringStatus) for operator_id, operator in six.iteritems(data_ret['wiring'].get( 'operators', {})): try: (vendor, name, version) = operator['name'].split('/') except: continue try: resource = CatalogueResource.objects.get(vendor=vendor, short_name=name, version=version) operator_info = resource.get_processed_info(process_variables=True) # Check if the resource is available, if not, variables should not be retrieved if not resource.is_available_for(workspaceDAO.creator): raise CatalogueResource.DoesNotExist except CatalogueResource.DoesNotExist: operator["preferences"] = {} operator["properties"] = {} continue operator_forced_values = forced_values['ioperator'].get( operator_id, {}) # Build operator preference data for preference_name, preference in six.iteritems( operator.get('preferences', {})): vardef = operator_info['variables']['preferences'].get( preference_name) value = preference.get('value', None) # Handle multiuser variable_user = user if vardef is not None and vardef[ "multiuser"] else workspaceDAO.creator if preference_name in operator_forced_values: preference['value'] = operator_forced_values[preference_name][ 'value'] elif value is None or value["users"].get("%s" % variable_user.id, None) is None: # If not defined / not defined for the current user, take the default value preference['value'] = parse_value_from_text( vardef, vardef['default']) else: preference['value'] = value["users"].get("%s" % variable_user.id) # Secure censor if vardef is not None and vardef["secure"]: preference['value'] = "" if preference.get( 'value') is None or decrypt_value( preference.get('value')) == "" else "********" # Build operator property data for property_name, property in six.iteritems( operator.get('properties', {})): vardef = operator_info['variables']['properties'].get( property_name) value = property.get('value', None) # Handle multiuser variable_user = user if vardef is not None and vardef[ "multiuser"] else workspaceDAO.creator if property_name in operator_forced_values: property['value'] = operator_forced_values[property_name][ 'value'] elif value is None or value["users"].get("%s" % variable_user.id, None) is None: # If not defined / not defined for the current user, take the default value property['value'] = parse_value_from_text( vardef, vardef['default']) else: property['value'] = value["users"].get("%s" % variable_user.id) # Secure censor if vardef is not None and vardef["secure"]: property['value'] = "" if property.get( 'value') is None or decrypt_value( property.get('value')) == "" else "********" return json.dumps(data_ret, cls=LazyEncoder)
def _get_global_workspace_data(workspaceDAO, user): data_ret = get_workspace_data(workspaceDAO, user) # Workspace preferences preferences = get_workspace_preference_values(workspaceDAO) data_ret['preferences'] = preferences data_ret['users'] = [] for user in workspaceDAO.users.all(): try: is_organization = user.organization is not None except: is_organization = False data_ret['users'].append({ "fullname": user.get_full_name(), "username": user.username, "organization": is_organization, "accesslevel": "owner" if workspaceDAO.creator == user else "read", }) # Process forced variable values concept_values = get_context_values(workspaceDAO, user) forced_values = process_forced_values(workspaceDAO, user, concept_values, preferences) data_ret['empty_params'] = forced_values['empty_params'] data_ret['extra_prefs'] = forced_values['extra_prefs'] if len(forced_values['empty_params']) > 0: return json.dumps(data_ret, cls=LazyEncoder) cache_manager = VariableValueCacheManager(workspaceDAO, user, forced_values) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workspaceDAO).order_by('position') if tabs.count() > 0: if tabs[0].position is not None: tabs = tabs.order_by('position') else: # set default order for i in range(len(tabs)): tabs[i].position = i tabs[i].save() else: tabs = [createTab(_('Tab'), workspaceDAO)] data_ret['tabs'] = [get_tab_data(tab, workspace=workspaceDAO, cache_manager=cache_manager) for tab in tabs] data_ret['wiring'] = workspaceDAO.wiringStatus for operator_id, operator in six.iteritems(data_ret['wiring'].get('operators', {})): try: (vendor, name, version) = operator['name'].split('/') except: continue try: resource = CatalogueResource.objects.get(vendor=vendor, short_name=name, version=version) if not resource.is_available_for(workspaceDAO.creator): # The operator used by this instance is missing continue except CatalogueResource.DoesNotExist: continue operator_info = resource.get_processed_info(process_variables=True) operator_forced_values = forced_values['ioperator'].get(operator_id, {}) for preference_name, preference in six.iteritems(operator.get('preferences', {})): vardef = operator_info['variables']['preferences'].get(preference_name) if preference_name in operator_forced_values: preference['value'] = operator_forced_values[preference_name]['value'] elif preference.get('value') is None and vardef is not None: preference['value'] = parse_value_from_text(vardef, vardef['default']) return json.dumps(data_ret, cls=LazyEncoder)
def _get_global_workspace_data(workspaceDAO, user): data_ret = get_workspace_data(workspaceDAO, user) # Workspace preferences preferences = get_workspace_preference_values(workspaceDAO) data_ret['preferences'] = preferences data_ret['users'] = [] for user in workspaceDAO.users.all(): try: is_organization = user.organization is not None except: is_organization = False data_ret['users'].append({ "fullname": user.get_full_name(), "username": user.username, "organization": is_organization, "accesslevel": "owner" if workspaceDAO.creator == user else "read", }) # Process forced variable values concept_values = get_context_values(workspaceDAO, user) forced_values = process_forced_values(workspaceDAO, user, concept_values, preferences) data_ret['empty_params'] = forced_values['empty_params'] data_ret['extra_prefs'] = forced_values['extra_prefs'] if len(forced_values['empty_params']) > 0: return json.dumps(data_ret, cls=LazyEncoder) cache_manager = VariableValueCacheManager(workspaceDAO, user, forced_values) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workspaceDAO).order_by('position') if tabs.count() > 0: if tabs[0].position is not None: tabs = tabs.order_by('position') else: # set default order for i in range(len(tabs)): tabs[i].position = i tabs[i].save() else: tabs = [createTab(_('Tab'), workspaceDAO)] data_ret['tabs'] = [ get_tab_data(tab, workspace=workspaceDAO, cache_manager=cache_manager) for tab in tabs ] data_ret['wiring'] = workspaceDAO.wiringStatus for operator_id, operator in six.iteritems(data_ret['wiring'].get( 'operators', {})): try: (vendor, name, version) = operator['name'].split('/') except: continue try: resource = CatalogueResource.objects.get(vendor=vendor, short_name=name, version=version) if not resource.is_available_for(workspaceDAO.creator): # The operator used by this instance is missing continue except CatalogueResource.DoesNotExist: continue operator_info = resource.get_processed_info(process_variables=True) operator_forced_values = forced_values['ioperator'].get( operator_id, {}) for preference_name, preference in six.iteritems( operator.get('preferences', {})): vardef = operator_info['variables']['preferences'].get( preference_name) if preference_name in operator_forced_values: preference['value'] = operator_forced_values[preference_name][ 'value'] elif preference.get('value') is None and vardef is not None: preference['value'] = parse_value_from_text( vardef, vardef['default']) return json.dumps(data_ret, cls=LazyEncoder)
def _get_global_workspace_data(workspaceDAO, user): data_ret = get_workspace_data(workspaceDAO, user) # Workspace preferences preferences = get_workspace_preference_values(workspaceDAO) data_ret['preferences'] = preferences data_ret['users'] = [] for u in workspaceDAO.users.all(): try: is_organization = u.organization is not None except: is_organization = False data_ret['users'].append({ "fullname": u.get_full_name(), "username": u.username, "organization": is_organization, "accesslevel": "owner" if workspaceDAO.creator == u else "read", }) # Process forced variable values concept_values = get_context_values(workspaceDAO, user) forced_values = process_forced_values(workspaceDAO, user, concept_values, preferences) data_ret['empty_params'] = forced_values['empty_params'] data_ret['extra_prefs'] = forced_values['extra_prefs'] if len(forced_values['empty_params']) > 0: return json.dumps(data_ret, cls=LazyEncoder) cache_manager = VariableValueCacheManager(workspaceDAO, user, forced_values) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workspaceDAO).order_by('position') if tabs.count() > 0: if tabs[0].position is not None: tabs = tabs.order_by('position') else: # set default order for i in range(len(tabs)): tabs[i].position = i tabs[i].save() else: tabs = [createTab(_('Tab'), workspaceDAO)] data_ret['tabs'] = [get_tab_data(tab, workspace=workspaceDAO, cache_manager=cache_manager, user=user) for tab in tabs] data_ret['wiring'] = deepcopy(workspaceDAO.wiringStatus) for operator_id, operator in six.iteritems(data_ret['wiring'].get('operators', {})): try: (vendor, name, version) = operator['name'].split('/') except: continue try: resource = CatalogueResource.objects.get(vendor=vendor, short_name=name, version=version) operator_info = resource.get_processed_info(process_variables=True) # Check if the resource is available, if not, variables should not be retrieved if not resource.is_available_for(workspaceDAO.creator): raise CatalogueResource.DoesNotExist except CatalogueResource.DoesNotExist: operator["preferences"] = {} operator["properties"] = {} continue operator_forced_values = forced_values['ioperator'].get(operator_id, {}) # Build operator preference data for preference_name, preference in six.iteritems(operator.get('preferences', {})): vardef = operator_info['variables']['preferences'].get(preference_name) value = preference.get('value', None) # Handle multiuser variable_user = user if vardef is not None and vardef["multiuser"] else workspaceDAO.creator if preference_name in operator_forced_values: preference['value'] = operator_forced_values[preference_name]['value'] elif value is None or value["users"].get("%s" % variable_user.id, None) is None: # If not defined / not defined for the current user, take the default value preference['value'] = parse_value_from_text(vardef, vardef['default']) else: preference['value'] = value["users"].get("%s" % variable_user.id) # Secure censor if vardef is not None and vardef["secure"]: preference['value'] = "" if preference.get('value') is None or decrypt_value(preference.get('value')) == "" else "********" # Build operator property data for property_name, property in six.iteritems(operator.get('properties', {})): vardef = operator_info['variables']['properties'].get(property_name) value = property.get('value', None) # Handle multiuser variable_user = user if vardef is not None and vardef["multiuser"] else workspaceDAO.creator if property_name in operator_forced_values: property['value'] = operator_forced_values[property_name]['value'] elif value is None or value["users"].get("%s" % variable_user.id, None) is None: # If not defined / not defined for the current user, take the default value property['value'] = parse_value_from_text(vardef, vardef['default']) else: property['value'] = value["users"].get("%s" % variable_user.id) # Secure censor if vardef is not None and vardef["secure"]: property['value'] = "" if property.get('value') is None or decrypt_value(property.get('value')) == "" else "********" return json.dumps(data_ret, cls=LazyEncoder)